Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Installer l'agent Java ARMS dans les clusters ACK et ACS

Dernière mise à jour :Aug 24, 2026

Application Real-Time Monitoring Service (ARMS) instrumente automatiquement les applications Java exécutées sur Container Service for Kubernetes (ACK) et Container Compute Service (ACS). Installez le composant ack-onepilot dans votre cluster et ajoutez trois libellés à votre Deployment. ARMS collecte alors les traces, la topologie de l'application, les métriques d'appels API ainsi que les données d'erreurs et de latence, sans aucune modification du code.

Remarque

Les étapes d'installation pour ACK et ACS sont identiques. Ce guide utilise ACK comme exemple.

Fonctionnement

Le composant ack-onepilot (ARMS Agent Onboarding Assistant) s'exécute en tant que contrôleur dans votre cluster. Lorsqu'un pod portant les libellés appropriés démarre, ack-onepilot injecte automatiquement l'agent Java ARMS dans ce pod. Lors de la publication d'une nouvelle version de l'agent, ack-onepilot met à jour l'agent au prochain redémarrage de l'application. Pour figer une version spécifique, consultez la rubrique Contrôler manuellement les versions de l'agent.

Pour plus de détails sur le mécanisme d'injection, consultez la rubrique Fonctionnement de ack-onepilot.

Important

L'ancien composant arms-pilot n'est plus maintenu. ack-onepilot le remplace et est entièrement compatible : la migration ne nécessite aucune modification de la configuration de votre application. Pour connaître les étapes de migration, consultez la rubrique Désinstaller arms-pilot et installer ack-onepilot.

Vue d'ensemble du processus

La configuration de la surveillance ARMS s'effectue en trois étapes :

  1. Installez ack-onepilot : déployez le composant de surveillance via la console ACK.

  2. Grant ARMS permissions : configurez l'authentification du cluster pour ARMS (la procédure varie selon le type de cluster).

  3. Ajoutez des libellés à votre Deployment : ajoutez trois libellés au modèle de pod pour activer l'instrumentation automatique.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

Étape 1 : Installer ack-onepilot

  1. Connectez-vous à la console ACK. Sur la page Clusters, cliquez sur le nom du cluster.

  2. Dans le volet de navigation de gauche, cliquez sur Add-ons. Recherchez ack-onepilot.

  3. Sur la carte ack-onepilot, cliquez sur Install.

  4. Dans la boîte de dialogue, conservez les valeurs de paramètres par défaut et cliquez sur OK.

Remarque

Par défaut, ack-onepilot prend en charge jusqu'à 1 000 pods. Pour chaque tranche supplémentaire de 1 000 pods, allouez 0,5 cœur de CPU et 512 Mo de mémoire au composant.

Après l'installation, mettez à jour, configurez ou désinstallez ack-onepilot depuis la page Add-ons.

Étape 2 : Accorder des autorisations ARMS

Les autorisations requises dépendent du type de votre cluster. Identifiez votre type de cluster et suivez les instructions correspondantes.

Clusters ACK managés

Les clusters ACK managés dotés d'un jeton ARMS Addon Token sont automatiquement autorisés. Vérifiez l'existence du jeton avant de poursuivre.

Vérifier la présence du jeton ARMS Addon Token :

  1. Connectez-vous à la console ACK. Cliquez sur Clusters, puis sur le nom du cluster.

  2. Dans le volet de navigation de gauche, choisissez Configurations > Secrets. Sélectionnez kube-system dans la liste déroulante Namespace.

  3. Recherchez le secret nommé addon.arms.token sur la page Secrets.

  • Si addon.arms.token existe : le cluster est déjà autorisé. Passez directement à l'Étape 3.

  • Si addon.arms.token n'existe pas : ajoutez manuellement les stratégies d'autorisation requises (voir ci-dessous).

Remarque

Si un cluster dispose d'un jeton ARMS Addon Token, ARMS effectue une autorisation sans mot de passe sur ce cluster. Le jeton ARMS Addon Token peut être absent de certains clusters ACK managés. Nous vous recommandons de vérifier si un cluster ACK managé possède un jeton ARMS Addon Token avant d'utiliser ARMS pour surveiller les applications du cluster.

Ajouter manuellement des stratégies d'autorisation :

  1. Sur la page Clusters, cliquez sur le nom du cluster.

  2. Sous l'onglet Basic Information de la page Cluster Information, cliquez sur le lien situé à côté de Worker RAM Role dans la section Cluster Resources.

  3. Sur la page qui s'affiche, cliquez sur Grant Permission sous l'onglet Permissions.

  4. Dans le panneau Grant Permission, ajoutez les deux stratégies suivantes, puis cliquez sur Grant permissions :

    Policy

    Access scope

    AliyunTracingAnalysisFullAccess

    Accès complet à Managed Service for OpenTelemetry

    AliyunARMSFullAccess

    Accès complet à ARMS

Clusters ACK dédiés et clusters enregistrés

Les clusters ACK dédiés et les clusters enregistrés ACK One nécessitent deux éléments :

  • Votre compte Alibaba Cloud doit disposer des autorisations AliyunARMSFullAccess et AliyunSTSAssumeRoleAccess. Consultez la rubrique Gérer les autorisations des utilisateurs RAM.

  • Le composant ack-onepilot doit disposer d'une paire de clés AccessKey avec des autorisations ARMS.

Fournissez la paire de clés AccessKey à ack-onepilot en utilisant l'une des méthodes suivantes.

Méthode 1 : Spécifier la paire de clés AccessKey dans Helm

  1. Connectez-vous à la console ACK. Cliquez sur Clusters, puis sur le nom du cluster.

  2. Dans le volet de navigation de gauche, choisissez Applications > Helm. Cliquez sur Update à côté de ack-onepilot.

  3. Remplacez les valeurs accessKey et accessKeySecret par votre ID de clé AccessKey et votre secret AccessKey. Cliquez sur OK.

    Remarque

    Pour obtenir une paire de clés AccessKey, consultez la rubrique Créer une paire de clés AccessKey.

    Helm AccessKey configuration

  4. Redémarrez le Deployment de l'application.

Méthode 2 : Utiliser un Secret Kubernetes

  1. Connectez-vous à la console ACK. Cliquez sur Clusters, puis sur le nom du cluster.

  2. Dans le volet de navigation de gauche, choisissez Configurations > Secrets. Sélectionnez le namespace ack-onepilot et créez un Secret pour stocker votre ID de clé AccessKey et votre secret AccessKey.

    Remarque

    Pour obtenir une paire de clés AccessKey, consultez la rubrique Créer une paire de clés AccessKey.

    Secret creation for AccessKey

  3. Dans le volet de navigation de gauche, choisissez Workloads > Deployments. Cliquez sur le composant ack-onepilot (généralement nommé ack-onepilot-ack-onepilot dans le namespace ack-onepilot).

  4. Dans le coin supérieur droit, cliquez sur Edit. Dans la section Environment Variables, ajoutez les deux variables suivantes et référencez les valeurs du Secret. Cliquez sur OK.

    Environment variable

    Description

    ONE_PILOT_ACCESSKEY

    Référence l'ID de clé AccessKey stocké dans le Secret

    ONE_PILOT_ACCESSKEY_SECRET

    Référence le secret AccessKey stocké dans le Secret

    Environment variables configuration

Clusters ACK serverless (ASK) et clusters intégrés à ECI

Effectuez l'autorisation complète sur la page Autorisation d'accès aux ressources, puis redémarrez tous les pods du composant ack-onepilot.

Étape 3 : Ajouter des libellés à votre Deployment

Ajoutez trois libellés à la section spec.template.metadata.labels du fichier YAML de votre Deployment pour activer la surveillance ARMS :

labels:
  armsPilotAutoEnable: "on"
  armsPilotCreateAppName: "<your-deployment-name>"    # Replace <your-deployment-name> with your application name.
  aliyun.com/app-language: java

Label

Value

Description

armsPilotAutoEnable

"on"

Active l'injection automatique de l'agent pour le pod

armsPilotCreateAppName

"<your-deployment-name>"

Nom de l'application affiché dans la console ARMS. Remplacez cette valeur par le nom de votre application.

aliyun.com/app-language

java

Spécifie la langue de l'application pour l'agent

Remarque

Les libellés doivent se trouver dans spec.template.metadata.labels (le modèle de pod), et non dans metadata.labels (les métadonnées du Deployment). Le placement des libellés au mauvais endroit est une cause fréquente d'absence de données de surveillance.

Appliquer les libellés à un Deployment existant

  1. Connectez-vous à la console ACK. Cliquez sur Clusters, puis sur le nom du cluster.

  2. Dans le volet de navigation de gauche, choisissez Workloads > Deployments.

  3. Sur la page Stateless, cliquez sur more icon > YAML Edit à côté de l'application cible.

  4. Ajoutez les trois libellés à spec.template.metadata.labels et cliquez sur Update.

Remarque

Pour plus d'informations sur la sécurité des applications, consultez la rubrique Qu'est-ce que la sécurité des applications ?.

Pour plus d'informations sur la facturation de la sécurité des applications, consultez la rubrique Présentation de la facturation.

YAML Example

Créer un nouveau Deployment avec la surveillance activée

Sur la page Stateless, cliquez sur Create from YAML et incluez les libellés dans la définition de votre Deployment.

Développer pour afficher l'exemple YAML complet (Java)

apiVersion: v1
kind: Namespace
metadata:
  name: arms-demo
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: arms-springboot-demo
  namespace: arms-demo
  labels:
    app: arms-springboot-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo
  template:
    metadata:
      labels:
        app: arms-springboot-demo
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo"
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo
          env:
            - name: SELF_INVOKE_SWITCH
              value: "true"
            - name: COMPONENT_HOST
              value: "arms-demo-component"
            - name: COMPONENT_PORT
              value: "6666"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: arms-springboot-demo-subcomponent
  namespace: arms-demo
  labels:
    app: arms-springboot-demo-subcomponent
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo-subcomponent
  template:
    metadata:
      labels:
        app: arms-springboot-demo-subcomponent
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo-subcomponent
          env:
            - name: SELF_INVOKE_SWITCH
              value: "false"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: arms-demo-component
  name: arms-demo-component
  namespace: arms-demo
spec:
  ports:
    - name: arms-demo-component-svc
      port: 6666
      targetPort: 8888
  selector:
    app: arms-springboot-demo-subcomponent
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: arms-demo-mysql
  namespace: arms-demo
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1
          name: mysql
          ports:
            - containerPort: 3306
              name: mysql
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: mysql
  name: arms-demo-mysql
  namespace: arms-demo
spec:
  ports:
    - name: arms-mysql-svc
      port: 3306
      targetPort: 3306
  selector:
    app: mysql

Vérifier les données de surveillance

Sur la page Stateless, cliquez sur more icon > ARMS Console dans la colonne Actions de l'application cible pour afficher les détails de la surveillance de l'application.

ARMS Console link

FAQ