全部产品
Search
文档中心

Application Real-Time Monitoring Service:Instal agen secara otomatis di lingkungan Kubernetes tujuan umum

更新时间:Mar 10, 2026

Application Real-Time Monitoring Service (ARMS) memungkinkan Anda memantau topologi aplikasi, panggilan API, transaksi abnormal dan lambat, serta kueri SQL untuk aplikasi di lingkungan Kubernetes tujuan umum. Topik ini menjelaskan cara menghubungkan aplikasi Java di lingkungan tersebut ke Pemantauan Aplikasi ARMS.

Catatan

Jika kluster Kubernetes Anda disediakan oleh Container Service for Kubernetes (ACK), topik ini tidak berlaku. Untuk informasi tentang cara menghubungkan kluster ACK ke ARMS, lihat Instal agen Java untuk Container Service for Kubernetes (ACK) dan Container Compute Service (ACS) menggunakan komponen ack-onepilot.

Prasyarat

  • Pastikan versi kluster Kubernetes Anda adalah 1.18 atau lebih baru.

  • Jika kluster Kubernetes Anda tidak dideploy di Alibaba Cloud, pastikan kluster tersebut dapat terhubung ke jaringan publik. Anda juga dapat menggunakan layanan seperti Cloud Enterprise Network (CEN) untuk menghubungkan kluster ke VPC Alibaba Cloud.

  • Periksa versi JDK Anda. Untuk informasi selengkapnya, lihat Versi JDK yang didukung.

  • Pastikan memori heap maksimum untuk proses lebih besar dari 256 MB.

(Direkomendasikan) Metode 1: Hubungkan ke ARMS melalui kluster ACK terdaftar

Manfaat menggunakan kluster ACK terdaftar:

  • Dukungan O&M yang lebih efisien.

  • Akses ke ekstensi kluster ACK tambahan, termasuk pemantauan, logging, backup dan restore, keamanan, serta sumber daya cloud elastis. Untuk informasi selengkapnya, lihat Ikhtisar kluster terdaftar.

  1. Hubungkan kluster Kubernetes Anda ke ACK One. Untuk informasi selengkapnya, lihat Buat kluster terdaftar ACK One.

  2. Instal komponen ack-onepilot untuk kluster terdaftar. Untuk informasi selengkapnya, lihat Hubungkan Application Real-Time Monitoring Service (ARMS) ke kluster terdaftar.

Metode 2: Hubungkan langsung ke ARMS

Penting

Metode ini tidak menggunakan kluster ACK terdaftar. Setelah terhubung ke ARMS, informasi kontainer seperti penggunaan CPU, memori, disk, dan jaringan tidak dapat ditampilkan. Di halaman Application Instances, hanya data kontainer yang dikumpulkan oleh ARMS yang ditampilkan. Anda tidak dapat melihat data kontainer dari agen Prometheus dengan menghubungkan ke Managed Service for Prometheus. Untuk informasi selengkapnya, lihat Pemantauan instans aplikasi Java.

Langkah 1: Instal Helm 3

Langkah 2: Instal agen

Pemantauan Aplikasi ARMS mendukung penghubungan aplikasi tanpa status (deployment) dan stateful (StatefulSet). Metode penghubungan sama untuk kedua jenis tersebut. Bagian ini menggunakan contoh aplikasi tanpa status (deployment) di lingkungan Kubernetes.

  1. Jalankan perintah wget berikut untuk mengunduh paket instalasi ack-onepilot.

     wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-5.1.1.tgz'
  2. Jalankan perintah berikut untuk mengekstrak paket instalasi ack-onepilot.

    tar xvf ack-onepilot-5.1.1.tgz                 
  3. Edit file values.yaml dalam paket instalasi. Ubah parameter berikut sesuai kebutuhan dan simpan file tersebut.

    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: Alamat registri ack-onepilot.

    • cluster_id: ID kustom untuk kluster Kubernetes. ID harus unik. Format yang direkomendasikan adalah <uid>-<clusterid>.

    • accessKey dan accessKeySecret: ID AccessKey dan Rahasia AccessKey akun Alibaba Cloud Anda. Untuk informasi tentang cara memperoleh pasangan Kunci Akses, lihat Buat pasangan Kunci Akses.

      Penting
      • Pastikan akun Alibaba Cloud memiliki izin AliyunARMSFullAccess dan AliyunSTSAssumeRoleAccess.

      • Jika Anda menggunakan Pengguna Resource Access Management (RAM), pastikan pengguna RAM tersebut juga memiliki izin AliyunARMSFullAccess dan AliyunSTSAssumeRoleAccess. Untuk informasi selengkapnya, lihat Kelola izin pengguna RAM.

      • Untuk memastikan keamanan pasangan Kunci Akses Anda, Anda dapat menyembunyikan ID AccessKey dan Rahasia AccessKey menggunakan Kubernetes Secret. Untuk informasi selengkapnya, lihat Metode 2: Gunakan Kubernetes Secret untuk mengimpor pasangan Kunci Akses.

    • uid: ID akun Alibaba Cloud Anda. Untuk memperoleh ID tersebut, arahkan penunjuk ke gambar profil Anda di pojok kanan atas Konsol Manajemen Alibaba Cloud.

    • region_id: ID wilayah Alibaba Cloud. Untuk informasi tentang wilayah yang didukung oleh Pemantauan Aplikasi, lihat Wilayah dan zona.

    Catatan

    Jika kluster tujuan adalah kluster edge, tambahkan anotasi nodeSelector untuk menjadwalkan komponen ack-onepilot ke cloud. Hal ini memastikan ack-onepilot berfungsi sebagaimana mestinya.

    kind: Deployment
    apiVersion: apps/v1
    metadata:
      name: xxx
      namespace: xxx
    spec:
      template:
        spec:
          nodeSelector:
            # Ganti dengan node selector aktual.
            alibabacloud.com/is-edge-worker: "false"
  4. Jalankan perintah berikut untuk menginstal ack-onepilot.

    Jalankan perintah ini di luar paket instalasi ack-onepilot.

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

Langkah 3: Modifikasi file YAML aplikasi

  1. Jalankan perintah berikut untuk melihat file YAML aplikasi tanpa status (deployment) tujuan.

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

    Jika Anda tidak mengetahui {deployment-name}, jalankan perintah berikut untuk melihat semua aplikasi tanpa status (deployment). Temukan aplikasi tujuan di output, lalu lihat file YAML-nya.

    kubectl get deployments --all-namespaces                
  2. Jalankan perintah berikut untuk mengedit file YAML aplikasi tanpa status (deployment) tujuan.

    kubectl edit deployment {deployment-name} -o yaml                        
  3. Di file YAML, tambahkan konten berikut di bawah level spec.template.metadata.

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    // Ganti <your-deployment-name> dengan nama aplikasi Anda.
      aliyun.com/app-language: java
    Catatan

    Jika Anda ingin membuat aplikasi tanpa status (deployment) baru di lingkungan Kubernetes dan menghubungkannya ke ARMS, gunakan file YAML lengkap berikut:

    Klik untuk melihat contoh file YAML lengkap

    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:
        # port yang harus dilayani oleh service ini
        - name: arms-mysql-svc
          port: 3306
          targetPort: 3306
      # label key dan value yang harus cocok untuk menerima traffic bagi service ini
      selector:
        app: mysql
    ---
  4. Setelah Anda menyimpan konfigurasi, aplikasi akan otomatis restart agar perubahan diterapkan.

    Setelah 2 hingga 5 menit, jika aplikasi Anda muncul di halaman Application Monitoring > Applications di Konsol ARMS dan data dilaporkan, koneksi berhasil.