Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Instale o agente automaticamente em um ambiente Kubernetes de uso geral

Última atualização: Jul 15, 2026

Conecte aplicações Java em um ambiente Kubernetes de uso geral ao Application Monitoring do ARMS para monitorar a topologia da aplicação, chamadas de API, transações lentas e anômalas e consultas SQL.

Nota

Se o cluster Kubernetes estiver em execução no Container Service for Kubernetes (ACK), este tópico não se aplica. Para conectar um cluster ACK ao ARMS, consulte Instale o agente Java para ACK e ACS usando o componente ack-onepilot.

Pré-requisitos

  • O cluster Kubernetes executa a versão 1.18 ou posterior.

  • Se o cluster Kubernetes não estiver implantado na Alibaba Cloud, garanta que ele tenha acesso à internet pública ou esteja conectado a uma VPC da Alibaba Cloud por meio da Cloud Enterprise Network (CEN) ou outros métodos.

  • A versão do JDK é compatível com o Application Monitoring

  • A memória heap máxima da JVM (-Xmx) é de pelo menos 256 MB

Método 1: Conectar com um cluster registrado no ACK One

Vantagens de usar um cluster registrado no ACK One:

  • Suporte de O&M mais eficiente.

  • Acesso a mais recursos de extensão de cluster do Container Service for Kubernetes (ACK), incluindo monitoramento, logs, backup e restauração, segurança e recursos elásticos de cloud. Para obter mais informações, consulte Visão geral dos clusters registrados.

  1. Registre o cluster Kubernetes no ACK One. Para obter mais informações, consulte Crie um cluster registrado no ACK One.

  2. Instale o componente ack-onepilot no cluster registrado. Para obter mais informações, consulte Conectar um cluster registrado ao Application Monitoring do ARMS.

Método 2: Conectar diretamente ao ARMS

Importante

Este método não usa um cluster registrado. Após conectar a aplicação, não é possível correlacionar ou exibir informações relacionadas ao contêiner, como uso de CPU, memória, disco e rede. Como resultado, a página Application Instances exibe apenas os dados do ambiente de contêiner coletados pelo ARMS. Também não é possível visualizar dados de contêiner dos agentes do Prometheus ao conectar-se ao Managed Service for Prometheus. Para obter mais informações, consulte Monitoramento de instâncias de aplicação Java.

Etapa 1: Instale o Helm 3

Etapa 2: Instale o agente

O Application Monitoring do ARMS suporta apenas aplicações stateless (Deployment) e stateful (StatefulSet). O método de conexão é o mesmo para ambos os tipos. O exemplo a seguir usa uma aplicação stateless (Deployment).

  1. Execute o comando wget a seguir para baixe o pacote de instalação do ack-onepilot.

     wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-5.2.1.tgz'
  2. Execute o comando a seguir para extrair o pacote de instalação do ack-onepilot.

    tar xvf ack-onepilot-5.2.1.tgz                 
  3. Modifique os parâmetros a seguir no arquivo values.yaml conforme necessário e salve o arquivo.

    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: O registro de imagens do ack-onepilot.

    • cluster_id: Um ID personalizado para o cluster Kubernetes. Esse ID deve ser único dentro do cluster. O formato recomendado é <uid>-<clusterid>.

    • accessKey e accessKeySecret: O AccessKey ID e o AccessKey Secret da sua conta Alibaba Cloud. Para saber como obtê-los, consulte Crie um par de AccessKey.

      Importante
    • uid: O ID da sua conta Alibaba Cloud. Para localizá-lo, passe o mouse sobre a foto de perfil no canto superior direito do console da Alibaba Cloud.

    • region_id: O ID da região da Alibaba Cloud. Para ver a lista de regiões onde o Application Monitoring está disponível, consulte Regiões suportadas.

    Nota

    Se o cluster de destino for um cluster de borda, adicione uma anotação nodeSelector para agendar o componente ack-onepilot em nós da cloud. Isso garante o funcionamento correto do 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. Execute o comando a seguir para instale o ack-onepilot.

    Execute este comando fora do diretório do pacote de instalação do ack-onepilot.

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

Etapa 3: Modifique o arquivo YAML da aplicação

  1. Execute o comando a seguir para visualize o arquivo YAML da aplicação stateless (Deployment) de destino.

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

    Se você não souber o {deployment-name}, execute o comando a seguir para listar todas as aplicações stateless (Deployment). Encontre a aplicação desejada na saída e visualize seu arquivo YAML.

    kubectl get deployments --all-namespaces                
  2. Execute o comando a seguir para edite o arquivo YAML da aplicação stateless (Deployment) de destino.

    kubectl edit deployment {deployment-name} -o yaml                        
  3. Adicione o conteúdo a seguir na seção spec.template.metadata do arquivo YAML.

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

    Para obter mais informações sobre segurança de aplicações, consulte O que é segurança de aplicações?.

    Para obter mais informações sobre o faturamento de segurança de aplicações, consulte Visão geral do faturamento.

    O arquivo YAML de exemplo a seguir cria e conecta uma nova aplicação stateless (Deployment) ao ARMS:

    Exemplo completo de YAML para um novo deployment

    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. Após salve a configuração, a aplicação reinicia automaticamente para aplicar as alterações.

    Após 2 a 5 minutos, se a aplicação aparecer na página Application Monitoring > Application List no console do ARMS e começar a reportar dados, a conexão foi bem-sucedida.