すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:AlbConfig を使用した Tracing Analysis への Xtrace の有効化

最終更新日:Mar 26, 2026

OpenTelemetry 向けマネージドサービスは、マイクロサービス間を流れるリクエストのエンドツーエンド可視性を提供します。AlbConfig で Xtrace を有効化すると、ALB はイングレスレイヤーで各リクエストにトレース ID をアタッチします。これにより、個々のサービスにトレース機能を手動で導入することなく、アクセスログと分散トレースを関連付けることができます。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

仕組み

リクエストが ALB リスナーに到達すると、ALB は Zipkin サンプリングアルゴリズムを用いてトレース ID を生成し、リクエストヘッダーに挿入します。トレース ID を含むリクエストはバックエンドサービスに転送されます。各リクエストのアクセスログ(トレース ID を含む)は Simple Log Service (SLS) の Logstore に書き込まれます。OpenTelemetry 向けマネージドサービスはこれらのログを読み取り、完全なトレースを再構築します。再構築されたトレースは OpenTelemetry コンソールで確認できます。

Xtrace は AlbConfig のリスナーレベルで設定されます。サンプリング率は、そのリスナー上のすべてのトラフィックに一様に適用されます。

ALB Ingress への Xtrace の有効化

ステップ 1:クラスター向け Simple Log Service の有効化

クラスター向けに Simple Log Service を有効化します。有効化後、クラスターは自動的に SLS プロジェクトを作成します。手順については、「ACK クラスターのコンテナからログを収集する」をご参照ください。

ステップ 2:SLS プロジェクト ID の取得

  1. ACK コンソール にログインし、左側ナビゲーションウィンドウで クラスター をクリックします。

  2. ご利用のクラスター名をクリックし、左側ナビゲーションウィンドウで クラスター情報 をクリックします。

  3. 基本情報 タブで、Simple Log Service プロジェクト フィールドの値をコピーします。次のステップでこの ID を使用します。

ステップ 3:AlbConfig の作成

AlbConfig は、Simple Log Service のアクセスログが有効化された ALB インスタンスを作成し、リスナー上で Xtrace を設定します。

  1. 以下の内容で alb-test.yaml を作成します。

    ALB インスタンスで Simple Log Service アクセスログが有効化された後のみ、Xtrace 設定を変更できます。既存の ALB インスタンスを再利用する場合は、forceOverride: truespec.config の下に設定して、既存のプロパティを上書きします。「既存の ALB インスタンスの再利用」をご参照ください。
    vSwitch の作成方法については、「vSwitch の作成と管理」をご参照ください。

    Xtrace パラメーター リファレンス

    パラメーター説明デフォルト値有効範囲
    tracingEnabledリスナーでの Xtrace の有効化falsetrue / false
    tracingSampleサンプリング率(10000 = 100 %、5000 = 50 %、1 = 0.01 %)1~10000
    tracingTypeサンプリングアルゴリズムZipkin
    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**********  # ご利用の vSwitch ID に置き換えてください。
        - vSwitchId: vsw-2vc30f5mlhs**********
        accessLogConfig:
          logProject: "k8s-log-xz92lvykqj1siwvif****"  # ステップ 2 で取得した SLS プロジェクト ID に置き換えてください。
          logStore: alb_xz92lvykqj1siwvif****           # 「alb_」で始まる必要があります。存在しない場合は自動的に作成されます。
      listeners:
      - port: 80
        protocol: HTTP
        logConfig:
          accessLogRecordCustomizedHeadersEnabled: false
          accessLogTracingConfig:
            tracingEnabled: true    # Xtrace を有効化するには true を設定します。デフォルト値:false。
            tracingSample: 9999     # サンプリング率。範囲:1~10000(10000 = 100 %)。例:9999 = 99.99 %。
            tracingType: Zipkin     # サンプリングアルゴリズム。tracingEnabled が true の場合のみ有効です。
  2. AlbConfig を適用します。

    kubectl apply -f alb-test.yaml

    期待される出力:

    albconfig.alibabacloud.com/alb-demo created

ステップ 4:IngressClass の作成

  1. 以下の内容で alb.yaml を作成します。

    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
  2. IngressClass を適用します。

    kubectl apply -f alb.yaml

    期待される出力:

    ingressclass.networking.k8s.io/alb created

ステップ 5:サービスのデプロイと Ingress ルーティングの設定

  1. cafe-service.yaml を以下の内容で作成し、coffee Deployment および 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
  2. Deployment およびサービスをデプロイします。

    kubectl apply -f cafe-service.yaml

    期待される出力:

    deployment.apps/coffee created
    service/coffee-svc created
  3. Ingress ルーティングルールを設定するため、cafe-ingress.yaml を作成します。

    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
  4. Ingress を適用します。

    kubectl apply -f cafe-ingress.yaml

    期待される出力:

    ingress.networking.k8s.io/cafe-ingress created

ステップ 6:ドメイン名の名前解決の設定

spec.rules.host でカスタムドメインを設定した場合、ALB の DNS 名を指す CNAME レコードを追加します。手順については、「ALB Ingress を使用してサービスを外部トラフィックに公開する」をご参照ください。

ステップ 7:トレースデータを生成するためのリクエスト送信

  1. ALB インスタンスのアドレスを取得します。

    kubectl get ing

    期待される出力:

    NAME           CLASS   HOSTS                     ADDRESS                                              PORTS   AGE
    cafe-ingress   alb     demo.domain.ingress.top   alb-u53i28ewt580*****.cn-<リージョン>.alb.aliyuncs.com   80      16m
  2. サービスにリクエストを送信します。

    コンソールにトレースが表示されるまでに必要なリクエスト数は、サンプリング率によって異なります。tracingSample: 9999(99.99 %)の場合は、1 回のリクエストで十分です。一方、tracingSample: 100(1 %)などの低い率では、トレースが確実にキャプチャされるよう、少なくとも 100 回のリクエストを送信してください:bash for i in $(seq 1 100); do curl -s -o /dev/null -H Host:demo.domain.ingress.top http://alb-u53i28ewt580*****.cn-<リージョン>.alb.aliyuncs.com/coffee; done
    curl -H Host:demo.domain.ingress.top http://alb-u53i28ewt580*****.cn-<リージョン>.alb.aliyuncs.com/coffee

    応答は、タイトルが Hello World の HTML ページです。

トレーシングの検証

SLS アクセスログの確認

  1. ACK コンソール にログインし、左側ナビゲーションウィンドウで クラスター をクリックします。

  2. ご利用のクラスター名をクリックし、クラスター情報 をクリックします。

  3. 基本情報 タブで、Simple Log Service プロジェクト フィールドのリンクをクリックして SLS コンソールを開きます。左側ナビゲーションウィンドウで、alb_ で始まる名前の Logstore(例:alb_xz92lvykqj1siwvif****)を選択します。xtrace を検索し、リクエストに Xtrace データが含まれていることを確認します。

    image

OpenTelemetry コンソールでのトレースの表示

  1. OpenTelemetry 向けマネージドサービス コンソール にログインします。

  2. アプリケーション ページで、上部ナビゲーションバーからリージョンを選択し、ご利用のアプリケーション名をクリックします。

  3. 左側ナビゲーションウィンドウで API 呼び出し をクリックし、トレース タブをクリックしてトレースデータを表示します。このタブには、持続時間が最も長い上位 100 件のトレースが表示されます。詳細については、「インターフェイス呼び出し」をご参照ください。

次のステップ