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

Container Service for Kubernetes:AlbConfig を使用した ALB イングレスの Xtrace の有効化

最終更新日:Jun 23, 2026

AlbConfig で Xtrace を有効にすると、ALB イングレスでトレース ID を付与し、アクセスログを分散トレースと関連付けられます。サービスごとの計装は不要です。

前提条件

次の条件を満たしていることを確認してください:

仕組み

リクエストが ALB リスナーに到達すると、ALB は Zipkin のサンプリングアルゴリズムでトレース ID を生成し、リクエストヘッダーに挿入します。ALB はトレース ID を付与したままリクエストをバックエンドに転送します。トレース ID を含むアクセスログは、Simple Log Service (SLS) の Logstore に書き込まれます。Managed Service for OpenTelemetry がこれらのログを読み取り、トレースを再構築して OpenTelemetry コンソールに表示します。

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

ALB イングレスの Xtrace の有効化

手順 1:クラスターでの Simple Log Service の有効化

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

手順 2:SLS プロジェクト ID の取得

  1. ACK コンソールにログインし、[クラスター] をクリックします。

  2. クラスター名をクリックし、[クラスター情報] をクリックします。

  3. [基本情報] タブで、手順 3 で使用する [Simple Log Service プロジェクト] の値をコピーします。

手順 3:AlbConfig の作成

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

  1. alb-test.yaml を作成します:

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

    Xtrace パラメーター

    パラメーター

    説明

    デフォルト

    範囲

    tracingEnabled

    リスナーで Xtrace を有効にします

    false

    true / 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    # true に設定して Xtrace を有効にします。デフォルト: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 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
  2. サービスをデプロイします:

    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 イングレスの作成と使用による Service の外部トラフィックへの公開」をご参照ください。

手順 7:リクエスト送信によるトレースデータの生成

  1. ALB アドレスを取得します:

    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
  2. リクエストを送信します:

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

    Nginx サーバーの情報を含む HTML ページが返されます。

トレーシングの検証

SLS アクセスログの確認

  1. ACK コンソールにログインし、[クラスター] をクリックします。

  2. クラスター名をクリックし、[クラスター情報] をクリックします。

  3. [基本情報] タブで [Simple Log Service プロジェクト] リンクをクリックして SLS コンソールを開きます。名前が alb_ で始まる Logstore (例:alb_xz92lvykqj1siwvif****) を選択します。ログに slb_xtrace (トレース ID) と xtrace_type (値 zipkin) が含まれていれば、アクセスログにトレーシングデータが記録されていることを確認できます。

    image

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

  1. Managed Service for OpenTelemetry コンソールにログインします。

  2. [アプリケーション] ページでリージョンを選択し、アプリケーション名をクリックします。

  3. [API コール] > [トレース] をクリックしてトレースデータを表示します。このタブには、所要時間が最も長いトレースが最大 100 件表示されます。詳細については、「Interface Calls」をご参照ください。

次のステップ