Alibaba Cloudは、分散アプリケーションの開発者に、トレースマッピング、リクエスト統計、トレーストポロジなどのさまざまな機能を提供するTracing Analysisサービスを提供しています。 Tracing Analysisサービスは、分散アプリケーションアーキテクチャのパフォーマンスのボトルネックを迅速に分析および診断するのに役立ち、マイクロサービスアプリケーションの開発と診断の効率を向上させます。 Application Load Balancer (ALB) Ingressコントローラーをインストールし、クラスターでXtrace機能を有効にすることができます。 Xtrace機能を有効にすると、トレースデータを表示できます。
前提条件
ALB Ingressコントローラーはクラスターにインストールされており、コンポーネントのバージョンは2.11.1以降です。
クラスターを作成するときは、[コンポーネントの設定] ページの [Ingress] フィールドの右側にある [ALB Ingress] を選択します。 詳細については、「ACKマネージドクラスターの作成」「ACK専用クラスターの作成」または「ACKサーバーレスクラスターの作成」をご参照ください。
既存のクラスターのALB Ingressコントローラーをインストールおよび更新する方法の詳細については、「コンポーネントの管理」をご参照ください。
ALB Ingressを使用してACK専用クラスターにデプロイされたサービスにアクセスする場合は、まずクラスターにALB Ingressコントローラーへのアクセスを許可する必要があります。 詳細については、「ACK専用クラスターにALB Ingressコントローラーへのアクセスを許可する」をご参照ください。
kubectlクライアントがContainer Service for Kubernetes (ACK) クラスターに接続されていること。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
Managed Service for OpenTelemetryは
activatedを実行します。
AlbConfigのトレース分析の有効化
手順1: クラスターのLogtailを有効にする
Simple Log Serviceを有効にすると、クラスターは自動的にSimple Log Serviceプロジェクトを作成します。 詳細については、「手順1: Logtailのインストール」をご参照ください。
手順2: Simple Log ServiceプロジェクトのIDを取得します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。
[クラスター情報] ページで、[基本情報] タブをクリックし、[Log Serviceプロジェクト] パラメーターの横にあるIDをコピーします。
ステップ3: AlbConfigの作成
AlbConfigを使用して、ALBインスタンスとリスナーを作成します。 ALBインスタンスのSimple Log Serviceを有効にして、アクセスログを収集します。 AlbConfigでXtrace機能に関連するパラメーターを設定します。Xtrace機能を有効にして、サンプリングアルゴリズムとサンプリングレートを設定します。
次の内容をalb-test.yamlファイルにコピーします。 ファイルは、AlbConfigを作成するために使用されます。
apiVersion: alibabacloud.com/v1 kind: AlbConfig metadata: name: alb-demo spec: config: name: alb-test addressType: Intranet zoneMappings: # The specified vSwitch must be in a zone supported by the ALB instance and in the same virtual private cloud (VPC) as the cluster. To ensure the high availability of services, select at least two vSwitches in different zones. -vSwitchId: vsw-2vc82nndnoo********** # Specify the IDs of the vSwitches that are used by the ALB instance. - vSwitchId: vsw-2vc30f5mlhs********** accessLogConfig: logProject: "k8s-log-xz92lvykqj1siwvif****" # Specify the ID of the Simple Log Service project that you obtained. logStore: The name of the alb_xz92lvykqj1siwvif****# The Logstore name must start with alb_. If the specified Logstore does not exist, the system automatically creates one. listeners: - port: 80 protocol: HTTP logConfig: accessLogRecordCustomizedHeadersEnabled: false accessLogTracingConfig: # The parameters related to the Xtrace feature. tracingEnabled: true # Specify whether to enable or disable the Xtrace feature. The default value is false. To enable Xtrace, set this parameter to true. tracingSample: 9999 # The sampling rate of the Xtrace feature. Valid values: 1 to 10000. This parameter takes effect only if you set tracingEnabled to true. tracingType: Zipkin # The sampling algorithm of the Xtrace feature. Set the value to Zipkin. This parameter takes effect only if you set tracingEnabled to true.
説明vSwitchの作成方法の詳細については、「vSwitchの作成と管理」をご参照ください。
Xtrace設定は、ALBインスタンスに対してSimple log Serviceのアクセスログ機能を有効にしている場合にのみ変更できます。
次のコマンドを実行して、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という名前のDeploymentとcoffeeという名前のServiceを作成するために使用されます。
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
次のコマンドを実行して、Deployment and Serviceをデプロイします。
kubectl apply -f cafe-service.yaml
期待される出力:
deployment.apps/coffee created service/coffee-svc created
cafe-ingress.yamlという名前のファイルを作成し、次の内容をファイルにコピーします。 このファイルは、サービスを公開するALB Ingressの転送ルールを設定するために使用されます。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: cafe-ingress spec: ingressClassName: alb rules: - host: demo.domain.ingress.top http: paths: # Specify a context path. - path: /coffee pathType: ImplementationSpecific backend: service: name: coffee-svc port: number: 80
次のコマンドを実行して、coffee Serviceのパブリックアクセス可能なドメイン名とパスを設定します。
kubectl apply -f cafe-ingress.yaml
期待される出力:
ingress.networking.k8s.io/cafe-ingress created
ステップ6: ドメイン名解決の設定
Ingressの作成時にspec.ru les.host
パラメーターをカスタムドメイン名に設定した場合、CNAMEレコードを追加して、ドメイン名をALBインスタンスのドメイン名にマップする必要があります。 その後、カスタムドメイン名を使用してサービスにアクセスできます。 詳細については、「 (オプション) 手順5: ドメイン名解決の設定」をご参照ください。
手順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ページです。
トレース分析の検証
Simple Log ServiceでALBインスタンスに送信されたリクエストを確認して、Xtraceデータがマークされていることを確認します。
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。
[クラスター情報] ページで、[基本情報] タブをクリックし、[Log Serviceプロジェクト] の横にあるリンクをクリックして、Simple Log Serviceコンソールに移動します。 左側のナビゲーションウィンドウで、名前が
alb_
で始まるLogstore (この例ではalb_xz92lvykqj1siwvif **** など) をクリックします。 次に、現在のページでxtrace
を検索します。
ログインして
OpenTelemetryコンソールのマネージドサービス。On theアプリケーションページで、上部のナビゲーションバーでリージョンを選択し、アプリケーションの名前をクリックします。
左側のナビゲーションウィンドウで、[インターフェイスコール] をクリックし、[トレース] タブをクリックしてトレースデータを表示します。
[トレース] タブでは、アプリケーションの持続時間が最も長いトレースを最大100個表示できます。 トレースデータの詳細については、「API呼び出し」をご参照ください。
関連ドキュメント
NGINX Ingressのトレース分析を有効にする方法の詳細については、「NGINX Ingressのトレース分析の有効化」をご参照ください。
ALBを使用しているときにエラーが発生した場合は、「ALB Ingressコントローラーのトラブルシューティング」および「ALB Ingress FAQ」をご参照ください。