Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Enable Xtrace for ALB Ingress with an AlbConfig

Dernière mise à jour :Sep 21, 2026

Activez Xtrace dans l'AlbConfig pour associer des ID de trace au niveau de l'ALB Ingress et corréler les journaux d'accès avec les traces distribuées, sans instrumentation par service.

Prérequis

Assurez-vous de disposer des éléments suivants :

Fonctionnement

Lorsqu'une requête atteint l'écouteur ALB, celui-ci génère un ID de trace à l'aide de l'algorithme d'échantillonnage Zipkin et l'injecte dans les en-têtes de la requête. L'ALB transfère la requête au backend avec l'ID de trace joint. Les journaux d'accès, incluant l'ID de trace, sont écrits dans un Logstore Simple Log Service (SLS). Le service Managed Service for OpenTelemetry lit ces journaux, reconstruit la trace et l'affiche dans la console OpenTelemetry.

Configurez Xtrace au niveau de l'écouteur dans l'AlbConfig. Le taux d'échantillonnage s'applique à tout le trafic sur cet écouteur.

Activer Xtrace pour ALB Ingress

Étape 1 : Activer Simple Log Service pour le cluster

Activez Simple Log Service pour votre cluster afin de créer automatiquement un projet SLS. Consultez la rubrique Collecter les journaux des conteneurs du cluster ACK.

Étape 2 : Obtenir l'ID du projet SLS

  1. Connectez-vous à la console ACK et cliquez sur Clusters.

  2. Cliquez sur le nom de votre cluster, puis sur Cluster Information.

  3. Dans l'onglet Basic Information, copiez la valeur du champ Simple Log Service Project pour l'étape 3.

Étape 3 : Créer un AlbConfig

L'AlbConfig crée une instance ALB avec les journaux d'accès Simple Log Service et Xtrace activés sur l'écouteur.

  1. Créez le fichier alb-test.yaml :

    Modifiez les paramètres Xtrace uniquement après avoir activé les journaux d'accès Simple Log Service sur l'instance ALB. Pour réutiliser une instance ALB existante, définissez forceOverride: true sous spec.config afin d'écraser les propriétés existantes. Consultez la rubrique Réutiliser une instance ALB existante .
    Consultez la rubrique Créer et gérer des vSwitches .

    Paramètres Xtrace

    Paramètre

    Description

    Valeur par défaut

    Plage

    tracingEnabled

    Active Xtrace pour l'écouteur

    false

    true / false

    tracingSample

    Taux d'échantillonnage. 10000 = 100 %, 5000 = 50 %, 1 = 0,01 %

    —

    1–10000

    tracingType

    Algorithme d'échantillonnage

    —

    Zipkin

    apiVersion: alibabacloud.com/v1
    kind: AlbConfig
    metadata:
      name: alb-demo
    spec:
      config:
        name: alb-test
        addressType: Intranet
        zoneMappings: # The vSwitch must be in an ALB-supported zone and the same VPC as the cluster. Select at least two vSwitches in different zones for high availability.
        - vSwitchId: vsw-2vc82nndnoo**********  # Replace with your vSwitch ID.
        - vSwitchId: vsw-2vc30f5mlhs**********
        accessLogConfig:
          logProject: "k8s-log-xz92lvykqj1siwvif****"  # Replace with your SLS project ID from Step 2.
          logStore: alb_xz92lvykqj1siwvif****           # Must start with "alb_". Created automatically if it does not exist.
      listeners:
      - port: 80
        protocol: HTTP
        logConfig:
          accessLogRecordCustomizedHeadersEnabled: false
          accessLogTracingConfig:
            tracingEnabled: true    # Set to true to enable Xtrace. Default: false.
            tracingSample: 9999     # Sampling rate. Range: 1-10000, where 10000 = 100%. Example: 9999 = 99.99%.
            tracingType: Zipkin     # Sampling algorithm. Only takes effect when tracingEnabled is true.
  2. Appliquez l'AlbConfig :

    kubectl apply -f alb-test.yaml

    Résultat attendu :

    albconfig.alibabacloud.com/alb-demo created

Étape 4 : Créer une IngressClass

  1. Créez le fichier 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. Appliquez l'IngressClass :

    kubectl apply -f alb.yaml

    Résultat attendu :

    ingressclass.networking.k8s.io/alb created

Étape 5 : Déployer un service et configurer le routage Ingress

  1. Créez le fichier cafe-service.yaml pour déployer un déploiement coffee et un service 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. Déployez le service :

    kubectl apply -f cafe-service.yaml

    Résultat attendu :

    deployment.apps/coffee created
    service/coffee-svc created
  3. Créez le fichier cafe-ingress.yaml avec les règles de routage 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
  4. Appliquez l'Ingress :

    kubectl apply -f cafe-ingress.yaml

    Résultat attendu :

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

Étape 6 : Configurer la résolution de noms de domaine

Si vous avez défini un domaine personnalisé dans spec.rules.host, ajoutez un enregistrement CNAME pointant vers le nom DNS de l'ALB. Consultez la rubrique Créer et utiliser un ALB Ingress pour exposer des services au trafic externe.

Étape 7 : Envoyer des requêtes pour générer des données de trace

  1. Obtenez l'adresse de l'ALB :

    kubectl get ing

    Résultat attendu :

    NAME           CLASS   HOSTS                     ADDRESS                                              PORTS   AGE
    cafe-ingress   alb     demo.domain.ingress.top   alb-u53i28ewt580*****.cn-<Region>.alb.aliyuncs.com   80      16m
  2. Envoyez une requête :

    Les traces apparaissent dans la console après qu'un nombre suffisant de requêtes a été échantillonné. Avec tracingSample: 9999 (99,99 %), une seule requête suffit. Avec un taux plus faible, par exemple tracingSample: 100 (1 %), envoyez au moins 100 requêtes.
    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

    La réponse est une page HTML intitulée Hello World.

Vérifier le traçage

Vérifier les journaux d'accès SLS

  1. Connectez-vous à la console ACK et cliquez sur Clusters.

  2. Cliquez sur le nom de votre cluster, puis sur Cluster Information.

  3. Dans l'onglet Basic Information, cliquez sur le lien Simple Log Service Project pour ouvrir la console SLS. Sélectionnez le Logstore dont le nom commence par alb_ (par exemple, alb_xz92lvykqj1siwvif****). La recherche xtrace doit correspondre à slb_xtrace (ID de trace) et à xtrace_type (valeur zipkin), ce qui confirme que les journaux d'accès enregistrent les données de traçage.

    image

Afficher les traces dans la console OpenTelemetry

  1. Connectez-vous à la console Managed Service for OpenTelemetry.

  2. Sur la page Applications, sélectionnez votre région et cliquez sur le nom de votre application.

  3. Cliquez sur API Calls > Trace pour afficher les données de trace. L'onglet affiche jusqu'à 100 traces ayant la durée la plus longue. Consultez la rubrique Appels d'interface.

Étapes suivantes