Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Java application monitoring

Última actualización: Sep 18, 2026

Application Real-Time Monitoring Service (ARMS) monitorea las aplicaciones Java que se ejecutan en clústeres de Container Service for Kubernetes (ACK) mediante el complemento ack-onepilot. Instale y autorice este complemento para diagnosticar problemas en producción con mucha mayor rapidez.

Contexto

Application Real-Time Monitoring Service (ARMS) es un producto de administración del rendimiento de aplicaciones (APM) de Alibaba Cloud. En Container Service for Kubernetes (ACK), instale y autorice el complemento ack-onepilot para monitorear aplicaciones Java de extremo a extremo sin modificar código alguno.

El complemento descubre automáticamente la topología y las interfaces de la aplicación, y genera mapas de topología en 3D. Además, monitorea las interfaces y captura transacciones anómalas o lentas. Utilice estos datos de monitoreo para localizar rápidamente las interfaces defectuosas o lentas, reproducir los parámetros de llamada, detectar fugas de memoria e identificar cuellos de botella del sistema. Para obtener más información sobre el monitoreo de aplicaciones de ARMS, consulte What is application monitoring?¿Qué es el monitoreo de aplicaciones?

Requisitos previos

  • Se creó un namespace. Para obtener más información, consulte Manage namespaces and resource quotas. Este tema utiliza el namespace arms-demo como ejemplo.

  • La versión del JDK es compatible con Application Monitoring. ARMS admite las siguientes versiones de JDK:

    • JDK 1.7.0+

      Importante

      El agente de ARMS V3.0.X y versiones posteriores ya no será compatible con Java 7. Si aún usa Java 7, le recomendamos actualizar su versión de Java. Para obtener más información, consulte Application Monitoring no longer supports Java 7.

    • JDK 1.8.0_25+

      Nota
      • Si despliega aplicaciones en clústeres de Kubernetes, le recomendamos usar JDK V1.8.0_191 o una versión posterior.

      • Compruebe que la versión de JDK no sea 1.8.0_25 ni 1.8.0_31. De lo contrario, podría fallar la instalación del agente de ARMS. En ese caso, le recomendamos actualizar JDK a la versión 1.8.X más reciente.

    • JDK 11.0.8+

    • JDK 17

  • ARMS is activated.

Paso 1: instalar el complemento de monitoreo de aplicaciones de ARMS

Importante

El componente heredado arms-pilot ya no recibe mantenimiento. Su reemplazo es ack-onepilot, el cual es totalmente compatible; por lo tanto, la migración no requiere cambios en la configuración de su aplicación. Para consultar los pasos de migración, vea Uninstall arms-pilot and install ack-onepilot.

Nota

De forma predeterminada, el complemento ack-onepilot admite hasta 1,000 pods. Por cada 1,000 pods adicionales en el clúster, aumente los recursos de CPU del complemento en 0.5 núcleos y la memoria en 512 MB.

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Components and Add-ons .

  3. En la sección Logs and Monitoring, busque el complemento ack-onepilot y haga clic en Install dentro de la tarjeta del complemento.

  4. Configure los parámetros del complemento en el cuadro de diálogo. Se recomienda conservar los valores predeterminados. Haga clic en OK para completar la instalación.

Una vez finalizada la instalación, puede actualizar, configurar o desinstalar el complemento ack-onepilot desde la página Add-ons.

Paso 2: otorgar permisos para acceder a los recursos de ARMS

La necesidad de otorgar permisos manualmente depende de si existe el Secret addon.arms.token en el clúster. Si el Secret existe, no se requiere autorización y puede pasar directamente al paso 3. Si no existe, otorgue manualmente al clúster los permisos para acceder a los recursos de ARMS, de modo que este servicio pueda monitorear las aplicaciones del clúster.

Nota

Cuando un clúster contiene el Secret addon.arms.token, ARMS le otorga automáticamente los permisos para acceder a sus recursos, sin necesidad de credenciales. La mayoría de los clústeres administrados de ACK incluyen este Secret de forma predeterminada, pero los clústeres administrados de ACK creados anteriormente podrían no tenerlo.

Comprobar si existe el Secret addon.arms.token

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Configurations > Secrets.

  3. En la página Secrets, seleccione kube-system en la lista desplegable Namespace y compruebe si aparece el Secret addon.arms.token.

Otorgar permisos manualmente para acceder a los recursos de ARMS

Siga estos pasos únicamente si el Secret addon.arms.token no existe en el clúster.

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Cluster Information.

  3. En la pestaña Basic Information, busque la sección Cluster Resources y haga clic en el enlace ubicado a la derecha de Worker RAM Role.

  4. En la página Role, haga clic en la pestaña Permissions y luego en Add Permissions.

  5. Establezca el permiso en AliyunARMSFullAccess y haga clic en OK.

Otorgar permisos para clústeres integrados con Elastic Container Instance (ECI)

Para monitorear aplicaciones en un clúster administrado de ACK integrado con ECI, otorgue los permisos en la página de autorización rápida de RAM y, a continuación, reinicie todos los pods del complemento ack-onepilot.

Paso 3: habilitar el monitoreo de aplicaciones de ARMS para una aplicación Java

Habilite el monitoreo de aplicaciones de ARMS cuando cree una aplicación Java. A continuación se muestra cómo crear un Deployment a partir de una plantilla YAML en la consola de ACK.

  1. Inicie sesión en la consola de ACK. En el panel de navegación izquierdo, haga clic en Clusters.

  2. En la página Clusters, haga clic en el nombre de su clúster. En el panel de navegación izquierdo, haga clic en Workloads > Deployments.

  3. En la página Deployments, haga clic en Create from YAML.

  4. Seleccione Sample Template y agregue las siguientes labels a la sección spec.template.metadata en el campo Template (formato YAML):

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    # Replace <your-deployment-name> with the actual application name.
      # armsSecAutoEnable: "on"    # If you want to connect the application to Application Security, you must configure this parameter.

Las etiquetas armsPilotAutoEnable: "on" y armsPilotCreateAppName: "arms-k8s-demo" incluidas en la plantilla de pod del Deployment habilitan el monitoreo de aplicaciones de ARMS. El siguiente fragmento de YAML muestra dónde se agregan estas etiquetas en la plantilla de pod:

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:
              # ...

El siguiente archivo YAML de ejemplo completo crea un Deployment y habilita el monitoreo de aplicaciones de ARMS:

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"
        one-agent.jdk.version: "OpenJDK11"
    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"
        one-agent.jdk.version: "OpenJDK11"
    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
---
Nota
  • Para obtener más información sobre la seguridad de aplicaciones, consulte What is application security?.

  • Para conocer los detalles de facturación de la seguridad de aplicaciones, consulte Billing.

Al completar los pasos anteriores, el monitoreo de aplicaciones de ARMS queda habilitado para la aplicación desplegada en el clúster de ACK.

Pasos siguientes

Para consultar los detalles del monitoreo de la aplicación, vaya a la página Deployments y busque la aplicación. En la columna Actions, haga clic en el icono image y elija ARMS Console. Para obtener más información, consulte application overview.

Preguntas frecuentes

Los siguientes temas responden preguntas frecuentes sobre el monitoreo de aplicaciones: