全部产品
Search
文档中心

Application Real-Time Monitoring Service:Gunakan mode cache citra lokal untuk mempercepat integrasi ack-onepilot

更新时间:Nov 10, 2025

Dokumen ini menjelaskan cara menggunakan mode cache citra lokal untuk mempercepat integrasi ack-onepilot pada aplikasi Java.

Latar Belakang

Secara default, init-container yang disuntikkan oleh komponen ack-onepilot menarik paket agen secara dinamis berdasarkan aturan tertentu. Pendekatan ini menjaga fleksibilitas integrasi aplikasi. Namun, dalam beberapa skenario, penarikan paket agen secara dinamis dapat menimbulkan masalah:

  • Pada skenario edge dengan kualitas jaringan buruk, waktu yang dibutuhkan untuk menarik paket agen dapat meningkat secara signifikan. Operasi penarikan bahkan bisa gagal karena masalah seperti timeout.

  • Mengintegrasikan banyak aplikasi secara bersamaan dapat meningkatkan operasi input/output per detik (IOPS) mesin, sehingga mengonsumsi sejumlah besar sumber daya I/O dalam periode waktu singkat.

Prasyarat

  • ack-onepilot versi 5.1.0 atau lebih baru.

  • Aplikasi ditulis dalam bahasa Java.

  • Versi agen adalah 4.2.5 atau lebih baru.

Prosedur

Contoh file YAML berikut menunjukkan cara menggunakan mode cache citra lokal untuk mempercepat integrasi ack-onepilot pada aplikasi Java sederhana di Kubernetes.

Contoh YAML aplikasi

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. Instal ack-onepilot dan berikan izin akses sumber daya yang diperlukan. Untuk informasi selengkapnya, lihat Instal asisten agen ARMS (ack-onepilot).

  2. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  3. Pada halaman Clusters, temukan kluster yang ingin Anda kelola lalu klik namanya. Di panel navigasi kiri, pilih Workloads > Deployments.

  4. Pada halaman Stateless, untuk aplikasi target, pilih image > Edit YAML.

    Klik Create From YAML untuk membuat aplikasi baru.

  5. Pada file YAML, tambahkan label berikut di tingkat spec.template.metadata, lalu klik 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. Pada halaman Stateless, klik image > ARMS Console di kolom Actions untuk aplikasi tersebut guna melihat detail pemantauannya.

    image