All Products
Search
Document Center

Container Service for Kubernetes:Pantau kluster ACK Edge dengan Pemantauan Prometheus untuk Alibaba Cloud

Last Updated:Mar 26, 2026

Kluster ACK Edge menempatkan node di pusat data offline tempat VPC dan node edge berada pada bidang jaringan yang berbeda. Agen Prometheus standar tidak dapat langsung mengakses titik akhir Node Exporter atau GPU Exporter di node edge. Managed Service for Prometheus mengatasi hal ini dengan memanfaatkan saluran data cloud-native bawaan dalam kluster ACK Edge untuk secara otomatis menjembatani kesenjangan antara cloud dan edge. Topik ini menjelaskan cara menghubungkan Managed Service for Prometheus ke kluster ACK Edge, melihat dasbor yang telah ditentukan sebelumnya, serta mengonfigurasi aturan peringatan.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Menggunakan kluster ACK Edge versi 1.18.8-aliyunedge.1 atau lebih baru. Untuk informasi selengkapnya, lihat Buat kluster ACK Edge.

  • Menginstal add-on ack-arms-prometheus versi 1.1.4 atau lebih baru di kluster ACK Edge. Untuk memeriksa atau meningkatkan versi, lihat Periksa versi ack-arms-prometheus.

  • Untuk kluster yang menjalankan Kubernetes versi sebelum 1.26: mengaktifkan penerusan port dalam ConfigMap kube-system/edge-tunnel-server-cfg untuk port Node Exporter 9100 dan port GPU Exporter 9445:

    http-proxy-ports: 9445
    https-proxy-ports: 9100

Cara kerja pemantauan di kluster edge

Karena VPC di cloud dan node edge berada pada bidang jaringan yang berbeda, Agen Prometheus di cloud tidak dapat langsung mengakses titik akhir Node Exporter dan GPU Exporter di node edge.

Mulai dari versi 1.1.4, add-on ack-arms-prometheus menggunakan saluran data komunikasi O&M cloud-native bawaan (Tunnel) dalam kluster ACK Edge untuk secara otomatis membuat tautan pengumpulan data antara cloud dan edge.

Kluster ACK Edge mendukung Edisi Dasar Pemantauan Kontainer.

Lihat dasbor Grafana

  1. Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, pilih Operations > Prometheus Monitoring.

    Jika ini pertama kalinya Anda mengakses halaman ini, ikuti petunjuk di layar dan klik Install. Konsol akan menginstal add-on secara otomatis dan mengarahkan Anda ke halaman detail Pemantauan Prometheus setelah instalasi selesai.
  3. Di halaman Prometheus Monitoring, lihat data pemantauan untuk node, aplikasi, dan GPU pada dasbor yang telah ditentukan sebelumnya.

Konfigurasi aturan peringatan Prometheus

Aturan peringatan memicu notifikasi ketika metrik melewati ambang batas yang telah ditentukan. Saat peringatan dipicu, Managed Service for Prometheus mengirimkan notifikasi kepada kontak dalam kelompok kontak yang ditentukan. Saluran notifikasi yang didukung mencakup panggilan telepon, pesan teks, email, DingTalk, WeCom, dan webhook.

Konfigurasi peringatan mencakup dua langkah: buat kontak untuk menerima notifikasi, lalu buat aturan peringatan. Untuk informasi tentang penyiapan saluran notifikasi DingTalk dan WeCom, lihat DingTalk Robot dan WeCom Robot.

Langkah 1: Buat kontak

  1. Login ke Konsol ARMS. Di panel navigasi kiri, pilih Alert Management > Notification Objects.

  2. Di tab Contacts, klik Create Contact.

  3. Di kotak dialog Create Contact, konfigurasikan parameter dan klik OK.

    Penting

    Maksimal 100 kontak dapat dibuat.

    ParameterDeskripsi
    NameNama kontak.
    Phone NumberNomor ponsel kontak. Digunakan untuk notifikasi panggilan telepon dan pesan teks. Hanya nomor ponsel yang telah diverifikasi yang dapat digunakan dalam kebijakan notifikasi. Untuk informasi selengkapnya, lihat Verifikasi nomor ponsel.
    EmailAlamat email kontak. Digunakan untuk notifikasi email.

Langkah 2: Buat aturan peringatan Prometheus

Aturan peringatan Prometheus mendukung dua jenis pemeriksaan:

Jenis pemeriksaanKapan digunakan
Static ThresholdPantau metrik yang telah ditentukan dengan kondisi ambang batas sederhana.
Custom PromQLPantau metrik yang tidak tersedia dalam daftar preset Static Threshold, menggunakan ekspresi PromQL kustom.

Buat aturan peringatan berdasarkan ambang batas statis

  1. Login ke Konsol ARMS.

  2. Di panel navigasi kiri, pilih Managed Service for Prometheus > Prometheus Alert Rules.

  3. Di halaman Prometheus Alert Rules, klik Create Prometheus Alert Rule.

  4. Di halaman Create Prometheus Alert Rule, konfigurasikan parameter berikut dan klik Save.

    Kondisi filter dibatasi hingga 300 karakter.
    ParameterDeskripsiContoh
    Alert Rule NameNama aturan peringatan.Kluster produksi - peringatan penggunaan CPU kontainer
    Check TypePilih Static Threshold.Static Threshold
    Prometheus InstanceInstans Prometheus yang akan dipantau.Kluster produksi
    Alert Contact GroupKelompok kontak yang akan diberi notifikasi saat peringatan dipicu. Kelompok yang tersedia bervariasi tergantung jenis instans Prometheus.Beban Kubernetes
    Alert MetricMetrik yang akan dipantau. Metrik yang tersedia bervariasi tergantung kelompok kontak.Penggunaan CPU Kontainer
    Alert ConditionKondisi yang memicu event peringatan.Utilisasi CPU lebih besar dari 80%
    Filter ConditionsCakupan sumber daya yang diterapkan oleh aturan peringatan. Lihat jenis kondisi filter di bawah ini.Traverse
    Data PreviewMenampilkan pernyataan PromQL untuk kondisi peringatan dan graf deret waktu. Ambang batas ditampilkan sebagai garis merah; data di atasnya ditampilkan dalam warna merah tua. Tersedia setelah Anda menetapkan kondisi filter.
    DurationKapan event peringatan dihasilkan: segera saat titik data mencapai ambang batas, atau hanya setelah kondisi terpenuhi terus-menerus selama N menit.1
    Alert LevelTingkat keparahan peringatan. Nilai yang valid: Default (terendah), P4, P3, P2, P1 (tertinggi).Default
    Alert MessagePesan yang dikirim ke kontak saat peringatan dipicu. Mendukung variabel templat Go.Namespace: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / Container: {{$labels.container}} Utilisasi CPU: {{$labels.metrics_params_opt_label_value}} {{$labels.metrics_params_value}}%. Nilai saat ini: {{ printf "%.2f" $value }}%
    Alert NotificationSimple Mode: Atur Notification Objects, Notification Period, dan apakah akan mengirim ulang notifikasi. Standard Mode: Tetapkan kebijakan notifikasi, atau buat nanti di halaman Notification Policy. Untuk informasi selengkapnya, lihat Buat dan kelola kebijakan notifikasi.Do Not Specify Notification Policy
    Alert Check Cycle (Advanced Settings)Seberapa sering aturan mengevaluasi kondisi peringatan, dalam satuan menit. Default: 1. Minimum: 1.1
    Check When Data Is Complete (Advanced Settings)Apakah menunggu data lengkap sebelum mengevaluasi kondisi.Yes
    Tags (Advanced Settings)Tag untuk aturan peringatan, digunakan untuk mencocokkan kebijakan notifikasi.
    Annotations (Advanced Settings)Anotasi untuk aturan peringatan.

    Jenis kondisi filter:

    TipeDeskripsi
    TraverseBerlaku untuk semua sumber daya dalam instans Prometheus. Dipilih secara default.
    EqualBerlaku untuk satu nama sumber daya yang Anda tentukan.
    Not EqualBerlaku untuk semua sumber daya kecuali yang Anda tentukan.
    Regex matchBerlaku untuk semua sumber daya yang namanya sesuai dengan ekspresi reguler.
    Regex not matchBerlaku untuk semua sumber daya yang namanya tidak sesuai dengan ekspresi reguler.

Buat aturan peringatan menggunakan pernyataan PromQL kustom

Gunakan jenis pemeriksaan Custom PromQL untuk memantau metrik yang tidak tersedia dalam daftar preset Static Threshold.

Di halaman Create Prometheus Alert Rule, atur Check Type ke Custom PromQL, konfigurasikan parameter berikut, dan klik Save.

ParameterDeskripsiContoh
Alert Rule NameNama aturan peringatan.Utilisasi CPU Pod melebihi 8%
Check TypePilih Custom PromQL.Custom PromQL
Prometheus InstanceInstans Prometheus yang akan dipantau.
Reference Alert Contact GroupKelompok kontak yang akan diberi notifikasi. Kelompok yang tersedia bervariasi tergantung jenis instans Prometheus.Beban Kubernetes
Reference Metrics(Opsional) Pilih metrik preset untuk mengisi bidang Custom PromQL Statements dengan ekspresi PromQL-nya. Modifikasi ekspresi sesuai kebutuhan.Peringatan penggunaan disk Pod
Custom PromQL StatementsEkspresi PromQL yang menentukan kondisi peringatan.max(container_fs_usage_bytes{pod!="", namespace!="arms-prom",namespace!="monitoring"}) by (pod_name, namespace, device)/max(container_fs_limit_bytes{pod!=""}) by (pod_name,namespace, device) * 100 > 90
Data PreviewMenampilkan graf deret waktu metrik. Arahkan penunjuk ke kurva untuk melihat detail pada titik tertentu; pilih periode waktu untuk memperbesar tampilan.
DurationKapan event peringatan dihasilkan: segera saat titik data mencapai ambang batas, atau hanya setelah kondisi terpenuhi selama N menit.1
Alert LevelTingkat keparahan peringatan. Nilai yang valid: Default (terendah), P4, P3, P2, P1 (tertinggi).Default
Alert MessagePesan notifikasi. Mendukung variabel templat Go.Namespace: {{$labels.namespace}} / Pod: {{$labels.pod_name}} / Utilisasi disk {{$labels.device}} melebihi 90%. Nilai saat ini: {{ printf "%.2f" $value }}%
Alert NotificationSimple Mode atau Standard Mode. Lihat bagian Static Threshold untuk detailnya.Do Not Specify Notification Policy
Alert Check Cycle (Advanced Settings)Frekuensi evaluasi dalam satuan menit. Default: 1. Minimum: 1.1
Check When Data Is Complete (Advanced Settings)Apakah menunggu data lengkap sebelum mengevaluasi.Yes
Tags (Advanced Settings)Tag untuk mencocokkan kebijakan notifikasi.
Annotations (Advanced Settings)Anotasi untuk aturan peringatan.

FAQ

Periksa versi ack-arms-prometheus

  1. Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Klik nama kluster Anda. Di panel navigasi kiri, klik Add-ons.

  3. Di halaman Add-ons, klik tab Logs and Monitoring dan temukan ack-arms-prometheus.

Nomor versi ditampilkan pada kartu komponen. Jika tersedia versi yang lebih baru, tombol Upgrade akan muncul pada kartu—klik untuk memperbarui.

Mengapa pemantauan GPU tidak dapat diterapkan?

Penerapan pemantauan GPU gagal ketika node GPU memiliki taint yang mencegah penjadwalan pod. Jalankan perintah berikut untuk memeriksa:

kubectl describe node cn-beijing.47.100.***.***

Jika Anda melihat taint dalam output (misalnya, Taints: test-key=test-value:NoSchedule), atasi dengan salah satu pendekatan berikut:

  • Hapus taint dari node:

    kubectl taint node cn-beijing.47.100.***.*** test-key=test-value:NoSchedule-
  • Tambahkan toleransi ke DaemonSet GPU exporter agar pod dapat dijadwalkan ke node yang memiliki taint:

    # Edit DaemonSet ack-prometheus-gpu-exporter
    kubectl edit daemonset -n arms-prom ack-prometheus-gpu-exporter

    Dalam file YAML, tambahkan bidang tolerations pada level yang sama dengan containers:

    tolerations:
    - key: "test-key"
      operator: "Equal"
      value: "test-value"
      effect: "NoSchedule"
    containers:
      # Bidang lain dihilangkan

Bagaimana cara menghapus sepenuhnya konfigurasi ARMS-Prometheus jika instalasi ulang gagal?

Jika Anda hanya menghapus namespace arms-prom, sumber daya tingkat kluster yang tersisa tetap ada dan menghalangi instalasi ulang. Jalankan perintah berikut untuk menghapus semua sumber daya ARMS-Prometheus:

  1. Hapus namespace:

    kubectl delete namespace arms-prom
  2. Hapus ClusterRole:

    kubectl delete ClusterRole arms-kube-state-metrics
    kubectl delete ClusterRole arms-node-exporter
    kubectl delete ClusterRole arms-prom-ack-arms-prometheus-role
    kubectl delete ClusterRole arms-prometheus-oper3
    kubectl delete ClusterRole arms-prometheus-ack-arms-prometheus-role
    kubectl delete ClusterRole arms-pilot-prom-k8s
    kubectl delete ClusterRole gpu-prometheus-exporter
    kubectl delete ClusterRole o11y:addon-controller:role
    kubectl delete ClusterRole arms-aliyunserviceroleforarms-clusterrole
  3. Hapus ClusterRoleBinding:

    kubectl delete ClusterRoleBinding arms-node-exporter
    kubectl delete ClusterRoleBinding arms-prom-ack-arms-prometheus-role-binding
    kubectl delete ClusterRoleBinding arms-prometheus-oper-bind2
    kubectl delete ClusterRoleBinding arms-kube-state-metrics
    kubectl delete ClusterRoleBinding arms-pilot-prom-k8s
    kubectl delete ClusterRoleBinding arms-prometheus-ack-arms-prometheus-role-binding
    kubectl delete ClusterRoleBinding gpu-prometheus-exporter
    kubectl delete ClusterRoleBinding o11y:addon-controller:rolebinding
    kubectl delete ClusterRoleBinding arms-kube-state-metrics-agent
    kubectl delete ClusterRoleBinding arms-node-exporter-agent
    kubectl delete ClusterRoleBinding arms-aliyunserviceroleforarms-clusterrolebinding
  4. Hapus Role dan RoleBinding:

    kubectl delete Role arms-pilot-prom-spec-ns-k8s
    kubectl delete Role arms-pilot-prom-spec-ns-k8s -n kube-system
    kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s
    kubectl delete RoleBinding arms-pilot-prom-spec-ns-k8s -n kube-system

Setelah menghapus sumber daya tersebut, buka Konsol Container Service for Kubernetes (ACK)Konsol Container Service, pilih Operations > Add-ons, lalu instal ulang ack-arms-prometheus.