Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Installer automatiquement l'agent dans un environnement Kubernetes standard

Dernière mise à jour :Aug 10, 2026

Connectez vos applications Java exécutées dans un environnement Kubernetes standard à ARMS Application Monitoring afin de surveiller la topologie des applications, les appels d'API, les transactions lentes ou anormales, ainsi que les requêtes SQL.

Remarque

Si votre cluster Kubernetes s'exécute sur Container Service for Kubernetes (ACK), cette rubrique ne s'applique pas. Pour connecter un cluster ACK à ARMS, consultez Installer l'agent Java pour ACK et ACS à l'aide du composant ack-onepilot.

Prérequis

  • Votre cluster Kubernetes utilise la version 1.18 ou ultérieure.

  • Si votre cluster Kubernetes n'est pas déployé sur Alibaba Cloud, assurez-vous qu'il peut accéder à Internet public ou qu'il est connecté à un VPC Alibaba Cloud via Cloud Enterprise Network (CEN) ou par d'autres méthodes.

  • La version de votre JDK est prise en charge par Application Monitoring

  • La mémoire maximale du tas JVM (-Xmx) est d'au moins 256 Mo.

Méthode 1 : Se connecter avec un cluster enregistré dans ACK One

Avantages de l'utilisation d'un cluster enregistré dans ACK One :

  • Prise en charge O&M plus efficace.

  • Accès à davantage de fonctionnalités d'extension de cluster offertes par Container Service for Kubernetes (ACK), notamment la surveillance, la journalisation, la sauvegarde et la restauration, la sécurité et les ressources cloud élastiques. Pour plus d'informations, consultez Présentation des clusters enregistrés.

  1. Enregistrez votre cluster Kubernetes auprès d'ACK One. Pour plus d'informations, consultez Créer un cluster enregistré dans ACK One.

  2. Installez le composant ack-onepilot pour le cluster enregistré. Pour plus d'informations, consultez Connecter un cluster enregistré à ARMS Application Monitoring.

Méthode 2 : Se connecter directement à ARMS

Important

Cette méthode n'utilise pas de cluster enregistré. Après la connexion de votre application, les informations liées aux conteneurs, telles que l'utilisation du processeur, de la mémoire, du disque et du réseau, ne peuvent pas être corrélées ni affichées. Par conséquent, la page Application Instances affiche uniquement les données d'environnement de conteneur collectées par ARMS. Vous ne pouvez pas non plus afficher les données des conteneurs provenant des agents Prometheus en vous connectant à Managed Service for Prometheus. Pour plus d'informations, consultez Surveillance des instances d'applications Java.

Étape 1 : Installer Helm 3

Étape 2 : Installer l'agent

ARMS Application Monitoring prend uniquement en charge les applications sans état (Deployment) et avec état (StatefulSet). La méthode de connexion est identique pour les deux types. L'exemple suivant utilise une application sans état (Deployment).

  1. Exécutez la commande wget suivante pour télécharger le package d'installation ack-onepilot.

     wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-5.2.1.tgz'
  2. Exécutez la commande suivante pour extraire le package d'installation ack-onepilot.

    tar xvf ack-onepilot-5.2.1.tgz                 
  3. Modifiez les paramètres suivants dans le fichier values.yaml selon vos besoins, puis enregistrez le fichier.

    registry: registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/
    cluster_id: __ACK_CLUSTER_ID__
    accessKey: __ACCESSKEY__
    accessKeySecret: __ACCESSKEY_SECRET__
    uid: "__ACK_UID__"
    region_id: __ACK_REGION_ID__
    • registry : Registre d'images ack-onepilot.

    • cluster_id : ID personnalisé du cluster Kubernetes. Cet ID doit être unique au sein du cluster. Le format recommandé est <uid>-<clusterid>.

    • accessKey et accessKeySecret : ID de clé d'accès (AccessKey ID) et secret de clé d'accès (AccessKey Secret) de votre compte Alibaba Cloud. Pour savoir comment les obtenir, consultez Créer une paire de clés AccessKey.

      Important
    • uid : ID de votre compte Alibaba Cloud. Pour trouver cet ID, survolez l'image de votre profil dans le coin supérieur droit de la console Alibaba Cloud.

    • region_id : ID de la région Alibaba Cloud. Pour obtenir la liste des régions où Application Monitoring est disponible, consultez Régions prises en charge.

    Remarque

    Si le cluster cible est un cluster Edge, ajoutez une annotation nodeSelector pour planifier le composant ack-onepilot sur les nœuds cloud. Cela garantit le bon fonctionnement d'ack-onepilot.

    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: xxx
      namespace: xxx
    spec:
      template:
        spec:
          nodeSelector:
            # Replace with the actual node selector.
            alibabacloud.com/is-edge-worker: "false"
  4. Exécutez la commande suivante pour installer ack-onepilot.

    Exécutez cette commande depuis l'extérieur du répertoire du package d'installation ack-onepilot.

    helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace

Étape 3 : Modifier le fichier YAML de l'application

  1. Exécutez la commande suivante pour afficher le fichier YAML de l'application sans état (Deployment) cible.

    kubectl get deployment {deployment-name} -o yaml                            
    Remarque

    Si vous ne connaissez pas le paramètre {deployment-name}, exécutez la commande suivante pour afficher toutes les applications sans état (Deployment). Identifiez l'application cible dans la sortie, puis consultez son fichier YAML.

    kubectl get deployments --all-namespaces                
  2. Exécutez la commande suivante pour modifier le fichier YAML de l'application sans état (Deployment) cible.

    kubectl edit deployment {deployment-name} -o yaml                        
  3. Ajoutez le contenu suivant sous la section spec.template.metadata du fichier YAML.

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

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

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

    L'exemple de fichier YAML suivant crée une nouvelle application sans état (Deployment) et la connecte à ARMS :

    Exemple complet de fichier YAML pour un nouveau déploiement

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: arms-springboot-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: MYSQL_SERVICE_HOST
                  value: "arms-demo-mysql"
                - name: MYSQL_SERVICE_PORT
                  value: "3306"
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: arms-demo-mysql
      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
    spec:
      ports:
        # the port that this service should serve on
        - name: arms-mysql-svc
          port: 3306
          targetPort: 3306
      # label keys and values that must match in order to receive traffic for this service
      selector:
        app: mysql
    ---
  4. Après avoir enregistré la configuration, l'application redémarre automatiquement pour appliquer les modifications.

    Au bout de 2 à 5 minutes, si votre application apparaît sur la page Application Monitoring > Application List de la console ARMS et commence à envoyer des données, la connexion est réussie.