Tous les produits
Search
Centre de documentation

Application Real-Time Monitoring Service:Utilisez le mode de cache d'image local pour accélérer l'intégration d'ack-onepilot

Dernière mise à jour :Aug 10, 2026

Ce document explique comment utiliser le mode de cache d'image local pour accélérer l'intégration d'ack-onepilot pour les applications Java.

Contexte

Par défaut, l'init-container injecté par le composant ack-onepilot extrait dynamiquement les packages d'agent en fonction de règles. Cette approche offre une grande flexibilité pour l'intégration des applications. Toutefois, dans certains scénarios, l'extraction dynamique des packages d'agent à la volée peut poser des problèmes :

  • Dans les scénarios de périphérie (edge) où la qualité du réseau est médiocre, le temps nécessaire pour extraire le package d'agent peut augmenter considérablement. L'opération d'extraction peut même échouer en raison de problèmes tels que des délais d'expiration.

  • L'intégration simultanée de nombreuses applications peut augmenter les opérations d'entrée/sortie par seconde (IOPS) de la machine. Cela consomme une grande quantité de ressources d'E/S de la machine sur une courte période.

Prérequis

  • ack-onepilot version 5.1.0 ou ultérieure.

  • L'application est écrite en Java.

  • La version de l'agent est 4.2.5 ou ultérieure.

Procédure

Le fichier YAML d'exemple suivant montre comment utiliser le mode de cache d'image local pour accélérer l'intégration d'ack-onepilot pour une application Java simple dans Kubernetes.

Exemple de fichier YAML d'application

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"
        # Enable the local image cache mode. This is required.
        apsara.apm/enable-cached-agent: 'true'
        # In local image cache mode, specify the agent version. Replace this with the required agent version.
        aliyun.com/agent-version: 4.2.5
    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 
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"
        # Enable the local image cache mode. This is required.
        apsara.apm/enable-cached-agent: 'true'
        # In local image cache mode, specify the agent version. Replace this with the required agent version.
        aliyun.com/agent-version: 4.2.5
    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:
    # the port that this service should serve on
    - name: arms-demo-component-svc
      port: 6666
      targetPort: 8888
  # label keys and values that must match to receive traffic for this service
  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:
    # the port that this service should serve on
    - name: arms-mysql-svc
      port: 3306
      targetPort: 3306
  # label keys and values that must match to receive traffic for this service
  selector:
    app: mysql
---
  1. Installez ack-onepilot et accordez-lui les permissions d'accès aux ressources requises. Pour plus d'informations, consultez Installation de l'assistant d'agent ARMS (ack-onepilot).

  2. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  3. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Deployments.

  4. Sur la page Deployments, pour l'application cible, choisissez image > Edit YAML.

    Cliquez sur Create From YAML pour créer une nouvelle application.

  5. Dans le fichier YAML, ajoutez les labels suivantes au niveau spec.template.metadata, puis cliquez sur Update.

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
      # Enable the local image cache mode. This is required.
      apsara.apm/enable-cached-agent: 'true'
      # In local image cache mode, specify the agent version. You can replace this with the required agent version. For a list of released agent versions, see the agent management documentation.
      aliyun.com/agent-version: 4.2.5
  6. Sur la page Deployments, cliquez sur image > ARMS Console dans la colonne Actions pour afficher les détails de surveillance de l'application.

    image