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

Container Service for Kubernetes:AlbConfigsを使用したXtraceに基づくTracing Analysisの有効化

最終更新日:Dec 10, 2024

Alibaba Cloudは、分散アプリケーションの開発者に、トレースマッピング、リクエスト統計、トレーストポロジなどのさまざまな機能を提供するTracing Analysisサービスを提供しています。 Tracing Analysisサービスは、分散アプリケーションアーキテクチャのパフォーマンスのボトルネックを迅速に分析および診断するのに役立ち、マイクロサービスアプリケーションの開発と診断の効率を向上させます。 Application Load Balancer (ALB) Ingressコントローラーをインストールし、クラスターでXtrace機能を有効にすることができます。 Xtrace機能を有効にすると、トレースデータを表示できます。

前提条件

AlbConfigのトレース分析の有効化

手順1: クラスターのLogtailを有効にする

Simple Log Serviceを有効にすると、クラスターは自動的にSimple Log Serviceプロジェクトを作成します。 詳細については、「手順1: Logtailのインストール」をご参照ください。

手順2: Simple Log ServiceプロジェクトのIDを取得します。

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。

  3. [クラスター情報] ページで、[基本情報] タブをクリックし、[Log Serviceプロジェクト] パラメーターの横にあるIDをコピーします。

ステップ3: AlbConfigの作成

AlbConfigを使用して、ALBインスタンスとリスナーを作成します。 ALBインスタンスのSimple Log Serviceを有効にして、アクセスログを収集します。 AlbConfigでXtrace機能に関連するパラメーターを設定します。Xtrace機能を有効にして、サンプリングアルゴリズムとサンプリングレートを設定します。

  1. 次の内容を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のアクセスログ機能を有効にしている場合にのみ変更できます。

  2. 次のコマンドを実行して、AlbConfigを作成します。

    kubectl apply -f alb-test.yaml

    期待される出力:

    albconfig.alibabacloud.com/alb-demo created

ステップ4: IngressClassの作成

  1. 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
  2. 次のコマンドを実行してIngressClassを作成します。

    kubectl apply -f alb.yaml

    期待される出力:

    ingressclass.networking.k8s.io/alb created

手順5: サービスの作成とIngressの転送ルールの設定

  1. 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
  2. 次のコマンドを実行して、Deployment and Serviceをデプロイします。

    kubectl apply -f cafe-service.yaml

    期待される出力:

    deployment.apps/coffee created
    service/coffee-svc created
  3. 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
  4. 次のコマンドを実行して、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が含まれます。

  1. 次のコマンドを実行して、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
  2. 次のコマンドを実行して、サービスにアクセスします。

    curl -H Host:demo.domain.ingress.top http://alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com/coffee

    予想される出力は、Hello WorldというタイトルのHTMLページです。

トレース分析の検証

  1. Simple Log ServiceでALBインスタンスに送信されたリクエストを確認して、Xtraceデータがマークされていることを確認します。

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

    2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。

    3. [クラスター情報] ページで、[基本情報] タブをクリックし、[Log Serviceプロジェクト] の横にあるリンクをクリックして、Simple Log Serviceコンソールに移動します。 左側のナビゲーションウィンドウで、名前がalb_ で始まるLogstore (この例ではalb_xz92lvykqj1siwvif **** など) をクリックします。 次に、現在のページでxtraceを検索します。

      image

  2. ログインして

    OpenTelemetryコンソールのマネージドサービス

  3. On theアプリケーションページで、上部のナビゲーションバーでリージョンを選択し、アプリケーションの名前をクリックします。

  4. 左側のナビゲーションウィンドウで、[インターフェイスコール] をクリックし、[トレース] タブをクリックしてトレースデータを表示します。

    [トレース] タブでは、アプリケーションの持続時間が最も長いトレースを最大100個表示できます。 トレースデータの詳細については、「API呼び出し」をご参照ください。

関連ドキュメント