Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Acelere a integração do ack-onepilot com o cache de imagem local

Última atualização: Sep 06, 2026

Este documento descreve como usar o modo de cache de imagem local para acelerar a integração do ack-onepilot em aplicações Java.

Contexto

Por padrão, para garantir uma integração flexível das aplicações, o init-container injetado pelo componente ack-onepilot baixa dinamicamente a versão necessária do pacote do agente com base em regras específicas. No entanto, baixar o pacote do agente em tempo real pode causar problemas em alguns cenários:

  • Em cenários de edge computing com conectividade de rede limitada, o download do pacote do agente pode demorar muito mais ou até falhar devido a timeouts.

  • A integração simultânea de muitas aplicações aumenta o IOPS do host e consome recursos significativos de I/O em um curto período.

Pré-requisitos

  • ack-onepilot versão 5.1.0 ou posterior.

  • Aplicação escrita em Java.

  • Agente versão 4.2.5 ou superior.

Procedimento

O manifesto YAML de exemplo abaixo demonstra como uma aplicação Java simples no Kubernetes pode usar o modo de cache de imagem local para acelerar a integração do ack-onepilot.

YAML da aplicação de exemplo

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"
        # Required. Enable local image cache mode.
        apsara.apm/enable-cached-agent: 'true'
        # Required for local image cache mode. Specify the agent version. You can replace this with the version you need.
        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"
        # Required. Enable local image cache mode.
        apsara.apm/enable-cached-agent: 'true'
        # Required for local image cache mode. Specify the agent version. You can replace this with the version you need.
        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 in order 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 in order to receive traffic for this service
  selector:
    app: mysql
---
  1. Instale o ack-onepilot e conceda as permissões de acesso aos recursos necessárias. Para obter instruções detalhadas, consulte Instale o assistente de agente ARMS (ack-onepilot).

  2. Faça login no ACK console. No painel de navegação à esquerda, clique em Clusters.

  3. Na página Clusters, clique no nome do cluster. No painel de navegação à esquerda, clique em Workloads > Deployments.

  4. Na página Stateless, localize a aplicação e, na coluna Actions, escolha image > Edit YAML.

    Para criar uma nova aplicação, clique em Create From YAML.

  5. No editor YAML, adicione os seguintes labels em spec.template.metadata e clique em Update.

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
      # Required. Enable local image cache mode.
      apsara.apm/enable-cached-agent: 'true'
      # Required for local image cache mode. Specify the agent version. You can replace this with the version you need. For a list of released agent versions, see the agent management documentation.
      aliyun.com/agent-version: 4.2.5
      aliyun.com/app-language: java
  6. De volta à página Stateless, localize a aplicação e clique em image > ARMS Console na coluna Actions para visualizar os detalhes de monitoramento.