Alibaba Cloud は、分散アプリケーションの開発者向けに、完全なトレースの再構築、呼び出し量の統計、およびトレースのトポロジーを提供するサービスであるトレーシング分析を提供しています。トレーシング分析は、分散アプリケーションアーキテクチャのパフォーマンスボトルネックを迅速に分析および診断し、マイクロサービスの開発効率と診断効率を向上させるのに役立ちます。トレースデータを表示するには、ご利用のクラスターに ALB Ingress Controller コンポーネントをインストールし、Xtrace 機能を有効化する必要があります。
前提条件
ご利用のクラスターに ALB Ingress Controller コンポーネントがインストールされていること。コンポーネントのバージョンは 2.11.1 以降である必要があります。
クラスターを作成する際、[コンポーネント設定] ページで、[Ingress] フィールドに [ALB Ingress] を選択します。詳細については、「ACK マネージドクラスターの作成」、「ACK 専用クラスターの作成 (新規クラスター作成は終了)」、または「ACK サーバーレスクラスターの作成」をご参照ください。
既存のクラスターに ALB Ingress Controller コンポーネントをインストールまたはアップグレードする方法については、「コンポーネントの管理」をご参照ください。
ALB Ingress を使用して ACK 専用クラスター 内のサービスにアクセスする場合は、サービスをデプロイする前に ALB Ingress Controller に権限を付与する必要があります。詳細については、「ACK 専用クラスターへの ALB Ingress Controller のアクセス権限の付与」をご参照ください。
有効化Managed Service for OpenTelemetry を有効化していること。
AlbConfig でのトレーシング分析の有効化
ステップ 1:クラスターでの Simple Log Service の有効化
Simple Log Service を有効化すると、クラスターは自動的に Simple Log Service プロジェクトを作成します。詳細については、「ACK クラスターのコンテナーからのログ収集」をご参照ください。
手順 2: 今後の使用のために [Simple Log Service プロジェクト] の ID を取得します
ACK コンソールにログインします。ACK コンソール。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター情報] ページで、[基本情報] タブをクリックします。次に、[Simple Log Service プロジェクト] フィールドから ID をコピーして保存します。
ステップ 3:AlbConfig の作成
AlbConfig を使用して ALB インスタンスとリスナーを作成します。AlbConfig で、ALB インスタンスの Simple Log Service とアクセスログを有効化します。次に、リスナーで Xtrace 設定を行い、Xtrace を有効化し、サンプリングアルゴリズムとサンプルレートを設定します。
`alb-test.yaml` という名前のファイルを作成し、次の内容をコピーして AlbConfig を作成します。
説明既存の ALB インスタンスを再利用し、AlbConfig を介して Simple Log Service を有効化する場合、ALB インスタンスのプロパティを強制的に上書きするには、
forceOverrideフィールドをtrueに設定する必要があります。詳細については、「既存の ALB インスタンスの再利用」をご参照ください。apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb-demo spec: config: name: alb-test addressType: Intranet zoneMappings: # 指定された vSwitch は、ALB がサポートするゾーンにあり、クラスターと同じ VPC にある必要があります。高可用性を実現するには、異なるゾーンにある少なくとも 2 つの vSwitch を選択してください。 - vSwitchId: vsw-2vc82nndnoo********** # 必要に応じて ALB の vSwitch ID を設定します。 - vSwitchId: vsw-2vc30f5mlhs********** accessLogConfig: logProject: "k8s-log-xz92lvykqj1siwvif****" # 取得した実際の Simple Log Service プロジェクトを使用します。 logStore: alb_xz92lvykqj1siwvif**** # LogStore 名は "alb_" (アンダースコアを使用) で始まる必要があります。指定された LogStore が存在しない場合、システムは自動的に作成します。 listeners: - port: 80 protocol: HTTP logConfig: accessLogRecordCustomizedHeadersEnabled: false accessLogTracingConfig: # Xtrace 設定パラメーター。 tracingEnabled: true # リスナーの Xtrace スイッチ。デフォルト値は false です。Xtrace を有効化するには、このパラメーターを true に設定します。 tracingSample: 9999 # リスナーの Xtrace サンプルレート。有効値の範囲:1~10000。このパラメーターは、tracingEnabled が true の場合にのみ有効です。 tracingType: Zipkin # リスナーの Xtrace サンプリングアルゴリズム。Zipkin に設定します。このパラメーターは、tracingEnabled が true の場合にのみ有効です。説明vSwitch の作成方法については、「vSwitch の作成と管理」をご参照ください。
インスタンスの Simple Log Service アクセスログを有効化した後にのみ、Xtrace 設定を変更できます。
次のコマンドを実行して AlbConfig を作成します。
kubectl apply -f alb-test.yaml期待される出力:
albconfig.alibabacloud.com/alb-demo created
ステップ 4:IngressClass の作成
`alb.yaml` という名前のファイルを作成し、次の内容をコピーして IngressClass を作成します。
apiVersion: networking.k8s.io/v1 kind: IngressClass metadata: name: alb spec: controller: ingress.k8s.alibabacloud/alb parameters: apiGroup: alibabacloud.com kind: AlbConfig name: alb-demo次のコマンドを実行して IngressClass を作成します。
kubectl apply -f alb.yaml期待される出力:
ingressclass.networking.k8s.io/alb created
ステップ 5:サービスのデプロイと Ingress 転送ルールの設定
`cafe-service.yaml` という名前のファイルを作成し、次の内容をコピーして `coffee` という名前のデプロイメントと `coffee-svc` という名前のサービスをデプロイします。
apiVersion: apps/v1 kind: Deployment metadata: name: coffee spec: replicas: 2 selector: matchLabels: app: coffee template: metadata: labels: app: coffee spec: containers: - name: coffee image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginxdemos:latest ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: coffee-svc spec: ports: - port: 80 targetPort: 80 protocol: TCP selector: app: coffee type: NodePort次のコマンドを実行して、デプロイメントとサービスをデプロイします。
kubectl apply -f cafe-service.yaml期待される出力:
deployment.apps/coffee created service/coffee-svc created`cafe-ingress.yaml` という名前のファイルを作成し、次の内容をコピーして Ingress ルールを設定し、サービスを公開します。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cafe-ingress spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: # コンテキストパスを設定 - path: /coffee pathType: ImplementationSpecific backend: service: name: coffee-svc port: number: 80次のコマンドを実行して、`coffee` サービスを公開するためのドメイン名とパスを設定します。
kubectl apply -f cafe-ingress.yaml期待される出力:
ingress.networking.k8s.io/cafe-ingress created
ステップ 6:ドメイン名の解決の設定
Ingress の作成時に spec.rules.host フィールドにご利用のカスタムドメイン名を設定した場合、ALB の DNS 名に解決されるように、ご利用のドメイン名に CNAME レコードを追加する必要があります。これにより、カスタムドメイン名を使用してサービスにアクセスできるようになります。詳細については、「ALB Ingress を作成して外部トラフィックにサービスを公開する」をご参照ください。
ステップ 7:サービスへのアクセス
サービスにアクセスして、Xtrace ID を持つリクエストを生成します。
次のコマンドを実行して、ALB インスタンスのアドレス (ADDRESS) を取得します。
kubectl get ing期待される出力:
NAME CLASS HOSTS ADDRESS PORTS AGE cafe-ingress alb demo.domain.ingress.top alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com 80 16m次のコマンドを実行してサービスにアクセスします。
curl -H Host:demo.domain.ingress.top http://alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com/coffee期待される出力は、タイトルが
Hello Worldの HTML ページです。
トレーシング分析の効果の検証
ALB インスタンスの Simple Log Service アクセスログをチェックして、リクエストにタグ付けされた Xtrace データが含まれていることを確認します。
ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター情報] ページで、[基本情報] タブをクリックします。次に、[Simple Log Serviceプロジェクト] フィールド内のリンクをクリックして、Simple Log Serviceコンソールに移動します。左側のナビゲーションウィンドウで、名前が
alb_で始まるLogStore(例:`alb_xz92lvykqj1siwvif****`)をクリックします。現在のページで、xtraceを検索します。
-
[アプリケーション] ページで、上部のナビゲーションバーでリージョンを選択し、アプリケーションの名前をクリックします。
アプリケーション詳細ページの左側にあるナビゲーションウィンドウで、[API 呼び出し] をクリックします。次に、[トレース] タブをクリックしてトレースデータを表示します。
[トレース] タブでは、アプリケーションで最も期間が長いトレースを最大 100 件表示できます。トレースデータの詳細については、「インターフェイス呼び出し」をご参照ください。
参考文献
Nginx Ingress を使用してトレーシング分析を実装する方法については、「Nginx Ingress Controller コンポーネントのトレーシング分析の実装」をご参照ください。
ALB Ingress の使用中に問題が発生した場合は、「ALB Ingress の問題のトラブルシューティング」および「ALB Ingress に関するよくある質問」をご参照ください。