全部产品
Search
文档中心

Container Service for Kubernetes:Praktik terbaik untuk mengonfigurasi aturan peringatan menggunakan Prometheus

更新时间:Nov 11, 2025

Kluster ACK kompatibel secara default dengan Prometheus Alibaba Cloud maupun Prometheus open source. Jika metrik Prometheus yang telah dikonfigurasi sebelumnya tidak memenuhi kebutuhan bisnis Anda, Anda dapat menggunakan Prometheus Query Language (PromQL) kustom untuk membuat aturan peringatan. Aturan ini membantu Anda memantau kesehatan sumber daya seperti node kluster, host, replika kontainer, dan beban kerja. Aturan peringatan dapat memicu peringatan dan mengirimkan notifikasi ketika metrik tertentu mencapai ambang batas atau kondisi tertentu terpenuhi.

Prasyarat

Pemantauan Prometheus diaktifkan untuk kluster ACK Anda. Untuk informasi selengkapnya, lihat Gunakan Pemantauan Prometheus Alibaba Cloud (disarankan) atau Gunakan pemantauan Prometheus open source.

Konfigurasi aturan peringatan Prometheus menggunakan PromQL kustom

Kluster ACK kompatibel secara default dengan Prometheus Alibaba Cloud maupun Prometheus open source. Anda dapat menggunakan PromQL kustom untuk mengonfigurasi aturan peringatan berdasarkan data pemantauan Prometheus. Ketika kondisi suatu aturan peringatan terpenuhi, sistem akan menghasilkan event peringatan yang sesuai dan mengirimkan notifikasi.

Pemantauan Prometheus Alibaba Cloud

Untuk informasi selengkapnya tentang cara mengonfigurasi aturan peringatan menggunakan PromQL kustom dalam Pemantauan Prometheus Alibaba Cloud, lihat Buat aturan peringatan Prometheus.

Pemantauan Prometheus open source

  1. Konfigurasikan kebijakan notifikasi peringatan.

    Pemantauan Prometheus open source mendukung metode notifikasi seperti webhook, robot DingTalk, dan email. Anda dapat mengatur metode notifikasi untuk peringatan Prometheus dengan mengonfigurasi parameter receiver dalam aplikasi ack-prometheus-operator. Untuk informasi selengkapnya, lihat Konfigurasi Peringatan.

  2. Buat aturan peringatan.

    Terapkan Custom Resource Definition (CRD) PrometheusRule di kluster untuk menentukan aturan peringatan. Untuk informasi selengkapnya, lihat Deploying Prometheus Rules.

    apiVersion: monitoring.coreos.com/v1
    kind: PrometheusRule
    metadata:
      labels:
        # Label harus konsisten dengan ruleSelector.matchLabels dari CRD Prometheus.
        prometheus: example
        role: alert-rules
      name: prometheus-example-rules
    spec:
      groups:
      - name: example.rules
        rules:
        - alert: ExampleAlert
          # expr menentukan kueri PromQL dan kondisi pemicu. Untuk parameter ini, Anda dapat merujuk pada kolom konfigurasi PromQL dalam deskripsi aturan peringatan di topik ini.
          expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) > 90
  3. Periksa apakah aturan peringatan sudah berlaku.

    1. Jalankan perintah berikut untuk memetakan layanan Prometheus di kluster ke port 9090 pada mesin lokal Anda.

      kubectl port-forward svc/ack-prometheus-operator-prometheus 9090:9090 -n monitoring
    2. Di browser Anda, masukkan localhost:9090 untuk melihat konsol server Prometheus.

    3. Di bagian atas halaman Prometheus open source, pilih Status > Rules.

      Di halaman Rules, Anda dapat melihat aturan peringatan. Jika aturan peringatan target ditampilkan, berarti aturan tersebut sudah berlaku.

Deskripsi aturan peringatan

Berdasarkan pengalaman operasi dan pemeliharaan (O&M) yang luas terhadap kluster dan aplikasi, ACK menyediakan konfigurasi aturan peringatan Prometheus yang direkomendasikan berikut ini. Aturan ini mencakup berbagai aspek seperti stabilitas kluster, anomali node, penggunaan sumber daya node, anomali replika kontainer aplikasi, anomali beban kerja, pengecualian penyimpanan, dan pengecualian jaringan.

Aturan peringatan yang mencakup isu seperti anomali replika kontainer dan anomali beban kerja dikategorikan ke dalam tingkat keparahan berikut.

  • Critical: Masalah ini memengaruhi kluster, aplikasi, atau bahkan bisnis Anda. Memerlukan penanganan segera.

  • Warning: Masalah ini memengaruhi kluster, aplikasi, atau bahkan bisnis Anda. Memerlukan investigasi sesegera mungkin.

  • Normal: Peringatan ini terkait dengan perubahan fitur penting.

Catatan

Titik masuk operasi yang disebutkan dalam kolom Rule Description adalah tab Alert Rule Management pada halaman Alerting. Untuk memperbarui aturan peringatan, masuk ke Konsol Container Service for Kubernetes (ACK). Di daftar Clusters, klik nama kluster target. Di panel navigasi sebelah kiri, pilih Operations > Alerting. Di halaman Alerting, klik tab Alert Rule Management untuk memperbarui aturan peringatan yang sesuai.

Anomali replika kontainer

Deskripsi

Tingkat Keparahan

Konfigurasi PromQL

Deskripsi aturan

Prosedur pemecahan masalah umum

Status pod abnormal

Kritis

min_over_time(sum by (namespace, pod, phase) (kube_pod_status_phase{phase=~"Pending|Unknown|Failed"})[5m:1m]) > 0

Memicu peringatan jika sebuah pod memiliki status tidak normal dalam 5 menit terakhir.

Di titik masuk operasi, klik Cluster Container Replica Anomaly Alert Rule Set dan konfigurasikan aturan peringatan Pod Status Anomaly. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

Untuk informasi selengkapnya tentang cara memecahkan masalah status pod yang tidak normal, lihat Pecahkan masalah pengecualian pod.

Gagal memulai Pod

Kritis

sum_over_time(increase(kube_pod_container_status_restarts_total{}[1m])[5m:1m]) > 3

Memicu peringatan jika sebuah pod gagal memulai lebih dari 3 kali dalam 5 menit terakhir.

Di titik masuk operasi, klik Cluster Container Replica Anomaly Alert Rule Set dan konfigurasikan aturan peringatan Pod Startup Failed. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

Untuk informasi selengkapnya tentang cara memecahkan masalah kegagalan memulai pod, lihat Pecahkan masalah pengecualian pod.

Lebih dari 1.000 pod gagal dijadwalkan

Kritis

sum(sum(max_over_time(kube_pod_status_phase{ phase=~"Pending"}[5m])) by (pod)) > 1000

Memicu peringatan jika total 1.000 pod berada dalam status Pending karena kegagalan penjadwalan dalam 5 menit terakhir.

Masalah ini mungkin disebabkan oleh tekanan tugas yang berlebihan dalam skenario penjadwalan kluster berskala besar. Edisi Pro kluster ACK yang dikelola menyediakan fitur inti yang ditingkatkan seperti penjadwalan kluster dan menawarkan Perjanjian Tingkat Layanan (SLA). Kami merekomendasikan Anda menggunakan Edisi Pro kluster ACK yang dikelola. Untuk informasi selengkapnya, lihat Ikhtisar Edisi Pro kluster ACK yang dikelola.

Pengendalian aliran CPU kontainer sering terjadi

Peringatan

rate(container_cpu_cfs_throttled_seconds_total[3m]) * 100 > 25

Memicu peringatan jika CPU kontainer sering dikendalikan alirannya. Hal ini terjadi ketika waktu CPU yang dikendalikan alirannya melebihi 25% dari total waktu CPU dalam 3 menit terakhir.

Pengendalian aliran CPU mengurangi alokasi irisan waktu CPU untuk proses dalam kontainer. Hal ini dapat meningkatkan waktu proses dan memperlambat logika bisnis aplikasi berkontainer.

Dalam kasus ini, periksa apakah batas sumber daya CPU untuk pod diatur terlalu rendah. Kami merekomendasikan Anda menggunakan kebijakan CPU Burst untuk mengoptimalkan pengendalian aliran CPU. Untuk informasi selengkapnya, lihat Aktifkan kebijakan CPU Burst. Jika node kluster adalah server multi-core, kami merekomendasikan Anda menggunakan penjadwalan sadar topologi CPU untuk memaksimalkan penggunaan sumber daya CPU terfragmentasi. Untuk informasi selengkapnya, lihat Aktifkan penjadwalan sadar topologi CPU.

Penggunaan CPU pod replika kontainer lebih dari 85%

Peringatan

(sum(irate(container_cpu_usage_seconds_total{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}[1m])) by (namespace,pod) / sum(container_spec_cpu_quota{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container!="",container!="POD"}/100000) by (namespace,pod) * 100 <= 100 or on() vector(0)) >= 85

Memicu peringatan ketika penggunaan CPU pod replika kontainer melebihi 85% dari batas pod-nya di namespace tertentu atau untuk pod tertentu.

Jika pod tidak memiliki batas yang dikonfigurasi, aturan peringatan ini tidak berlaku.

Ambang batas default 85% adalah nilai yang direkomendasikan. Anda dapat menyesuaikannya sesuai kebutuhan.

Untuk memfilter data untuk pod atau namespace tertentu, ganti pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*" dengan nilai aktual. Untuk mengkueri data semua pod di kluster, hapus kondisi filter ini.

Penggunaan CPU yang tinggi dalam pod dapat menyebabkan pengendalian aliran CPU dan alokasi irisan waktu CPU yang tidak mencukupi, sehingga memengaruhi eksekusi proses dalam pod.

Dalam kasus ini, periksa apakah batas sumber daya CPU untuk pod diatur terlalu rendah. Kami merekomendasikan Anda menggunakan kebijakan CPU Burst untuk mengoptimalkan pengendalian aliran CPU. Untuk informasi selengkapnya, lihat Aktifkan kebijakan CPU Burst. Jika node kluster adalah server multi-core, kami merekomendasikan Anda menggunakan penjadwalan sadar topologi CPU untuk memaksimalkan penggunaan sumber daya CPU terfragmentasi. Untuk informasi selengkapnya, lihat Aktifkan penjadwalan sadar topologi CPU.

Penggunaan memori pod replika kontainer lebih dari 85%

Peringatan

((sum(container_memory_working_set_bytes{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container !="",container!="POD"}) by (pod,namespace)/ sum(container_spec_memory_limit_bytes{pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*",container !="",container!="POD"}) by (pod, namespace) * 100) <= 100 or on() vector(0)) >= 85

Memicu peringatan ketika penggunaan memori pod replika kontainer melebihi 85% dari batas pod-nya.

Jika pod tidak memiliki batas yang dikonfigurasi, aturan peringatan ini tidak berlaku.

Ambang batas default 85% adalah nilai yang direkomendasikan. Anda dapat menyesuaikannya sesuai kebutuhan.

Untuk memfilter data untuk pod atau namespace tertentu, ganti pod=~"{{PodName}}.*",namespace=~"{{Namespace}}.*" dengan nilai aktual. Untuk mengkueri data semua pod di kluster, hapus kondisi filter ini.

Penggunaan memori yang tinggi dalam pod dapat menyebabkan pod dihentikan oleh pembunuh kehabisan memori (OOM), sehingga memicu restart pod.

Dalam kasus ini, periksa apakah batas sumber daya memori untuk pod diatur terlalu rendah. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi batas memori pod. Untuk informasi selengkapnya, lihat Profiling sumber daya.

Anomali beban kerja

Deskripsi

Tingkat Keparahan

Konfigurasi PromQL

Deskripsi aturan

Prosedur pemecahan masalah umum

Status replika Deployment yang tersedia tidak normal

Kritis

kube_deployment_spec_replicas{} != kube_deployment_status_replicas_available{}

Memicu peringatan ketika jumlah replika yang tersedia untuk Deployment tidak sesuai dengan jumlah yang diinginkan.

Di titik masuk operasi, klik Cluster Application Workload Anomaly Alert Rule Set dan atur aturan peringatan Deployment Available Replica Status Anomaly. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

Jika pod gagal memulai atau memiliki status tidak normal, lihat Pecahkan masalah pengecualian pod.

Status replika DaemonSet tidak normal

Kritis

((100 - kube_daemonset_status_number_ready{} / kube_daemonset_status_desired_number_scheduled{} * 100) or (kube_daemonset_status_desired_number_scheduled{} - kube_daemonset_status_current_number_scheduled{})) > 0

Memicu peringatan ketika jumlah replika yang tersedia untuk DaemonSet tidak sesuai dengan jumlah yang diinginkan.

Di titik masuk operasi, klik Cluster Application Workload Anomaly Alert Rule Set dan atur aturan peringatan Deployment Available Replica Status Anomaly. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

Jika pod gagal memulai atau memiliki status tidak normal, lihat Pecahkan masalah pengecualian pod.

Penjadwalan replika DaemonSet tidak normal

Kritis

kube_daemonset_status_number_misscheduled{job} > 0

Memicu peringatan ketika replika DaemonSet dijadwalkan secara tidak normal.

Di titik masuk operasi, klik Cluster Application Workload Anomaly Alert Rule Set dan atur aturan peringatan Daemonset Replica Scheduling Anomaly. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

Jika pod gagal memulai atau memiliki status tidak normal, lihat Pecahkan masalah pengecualian pod.

Job gagal

Kritis

kube_job_status_failed{} > 0

Memicu peringatan ketika Job gagal dieksekusi.

Di titik masuk operasi, klik Cluster Application Workload Anomaly Alert Rule Set dan atur aturan peringatan Job Execution Failed. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

  • Periksa log pod yang gagal di bawah Job terkait untuk mendapatkan informasi kesalahan detail.

  • Jika pod gagal memulai atau memiliki status tidak normal, lihat Pecahkan masalah pengecualian pod.

Pengecualian penyimpanan

Deskripsi

Tingkat Keparahan

Konfigurasi PromQL

Deskripsi aturan

Prosedur pemecahan masalah umum

Status PersistentVolume tidak normal

Kritis

kube_persistentvolume_status_phase{phase=~"Failed|Pending"} > 0

Memicu peringatan ketika volume persisten (PV) memiliki status tidak normal.

Di titik masuk operasi, klik Cluster Storage Anomaly Event Alert Rule Set dan atur aturan peringatan PersistentVolume Status Anomaly. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

Untuk informasi selengkapnya tentang cara memecahkan masalah status PV yang tidak normal, lihat bagian pemasangan disk dalam FAQ tentang PV disk.

Ruang disk node kurang dari 10%

Kritis

((node_filesystem_avail_bytes * 100) / node_filesystem_size_bytes) < 10

Memicu peringatan ketika ruang kosong pada perangkat blok disk node kurang dari 10%.

Di titik masuk operasi, klik Cluster Resource Anomaly Alert Rule Set dan atur aturan peringatan Cluster Node - Disk Usage >= 85%. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

Kami merekomendasikan Anda melakukan penskalaan keluar node atau memperluas disk-nya. Untuk informasi selengkapnya, lihat bagian pemasangan disk dalam FAQ tentang PV disk.

Status node tidak normal

Deskripsi

Tingkat Keparahan

Konfigurasi PromQL

Deskripsi aturan

Prosedur pemecahan masalah umum

Node tetap dalam status NotReady selama 3 menit

Kritis

(sum(max_over_time(kube_node_status_condition{condition="Ready",status="true"}[3m]) <= 0) by (node)) or (absent(kube_node_status_condition{condition="Ready",status="true"})) > 0

Memicu peringatan ketika node kluster tetap dalam status NotReady selama 3 menit.

Di titik masuk operasi, klik Cluster Node Anomaly Alert Rule Set dan atur aturan peringatan Cluster Node Offline. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

  • Tentukan apakah status NotReady tersebut diharapkan. Misalnya, Anda dapat mengabaikan peringatan ini jika sedang mengganti node, mengambilnya offline, atau mengaturnya secara manual ke status tidak tersedia.

    Jika status tersebut tidak diharapkan, evaluasi apakah pod aplikasi pada node tersebut terpengaruh dan evakuasi pod jika perlu.

  • Node dapat menjadi tidak tersedia karena berbagai alasan. Periksa kondisi node untuk mengidentifikasi masalah umum, seperti tekanan memori berlebihan atau disk penuh.

Penggunaan sumber daya host tidak normal

Catatan

Bagian berikut menjelaskan perbedaan antara metrik sumber daya host dan metrik sumber daya node:

  • Metrik sumber daya host mengukur sumber daya mesin fisik atau mesin virtual tempat node berjalan.

  • Dalam rumus penggunaan, pembilang adalah penggunaan sumber daya semua proses pada host, dan penyebut adalah kapasitas maksimum host.

Deskripsi

Tingkat Keparahan

Konfigurasi PromQL

Deskripsi aturan

Prosedur pemecahan masalah umum

Penggunaan memori host lebih dari 85%

Peringatan

(100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 85

Memicu peringatan ketika penggunaan memori host kluster lebih dari 85%.

Di titik masuk operasi, klik Cluster Resource Anomaly Alert Rule Set dan konfigurasikan aturan peringatan Cluster Node - Memory Usage >= 85%. Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

Catatan

Aturan dalam konfigurasi peringatan ACK disediakan oleh Cloud Monitor, dan metriknya konsisten dengan metrik aturan Prometheus yang sesuai.

Ambang batas default 85% adalah nilai yang direkomendasikan. Anda dapat menyesuaikannya sesuai kebutuhan.

  • Lepaskan sumber daya.

    Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan memori pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan memori pod. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Penggunaan memori host lebih dari 90%

Kritis

(100 - node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100) >= 90

Penggunaan memori host di kluster melebihi 90%.

  • Lepaskan sumber daya.

    Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan memori pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan memori pod. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Penggunaan CPU host lebih dari 85%

Peringatan

100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 85

Memicu peringatan ketika penggunaan CPU host kluster lebih dari 85%.

Di titik masuk operasi, klik Cluster Resource Anomaly Alert Rule Set dan konfigurasikan aturan peringatan Cluster Node - CPU Utilization >= 85%.

Catatan

Aturan dalam konfigurasi peringatan ACK disediakan oleh pemantauan ECS CloudMonitor. Metrik dalam aturan ini setara dengan metrik dalam aturan Prometheus ini.

Ambang batas default 85% adalah nilai yang direkomendasikan. Anda dapat menyesuaikannya sesuai kebutuhan.

Untuk informasi selengkapnya, lihat Kelola peringatan di ACK.

  • Lepaskan sumber daya.

    Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan CPU pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan CPU pod. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Penggunaan CPU host lebih dari 90%

Kritis

100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m])) * 100) >= 90

Memicu peringatan ketika penggunaan CPU host kluster lebih dari 90%.

  • Lepaskan sumber daya. Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan CPU pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan CPU pod. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Sumber daya node tidak normal

Catatan

Bagian berikut menjelaskan perbedaan antara metrik sumber daya node dan metrik sumber daya host:

  • Metrik sumber daya node mengukur konsumsi sumber daya pada node relatif terhadap kapasitas yang dapat dialokasikan. Metrik ini adalah rasio sumber daya yang dikonsumsi oleh kontainer pada node (pembilang) terhadap sumber daya yang dapat dialokasikan pada node (penyebut).

    Ambil contoh memori:

    • Sumber daya yang dikonsumsi: Total sumber daya memori yang digunakan oleh node. Ini termasuk memori working set semua kontainer yang berjalan pada node. Memori working set mencakup memori yang dialokasikan dan digunakan oleh kontainer, cache halaman yang dialokasikan ke kontainer, dan lainnya.

    • Sumber daya yang dapat dialokasikan: Jumlah sumber daya yang dapat dialokasikan ke kontainer. Ini mengecualikan sumber daya yang dikonsumsi oleh lapisan mesin kontainer pada host, yaitu sumber daya yang dicadangkan untuk node di ACK. Untuk informasi selengkapnya, lihat Kebijakan pemesanan sumber daya node.

  • Dalam rumus penggunaan, pembilang adalah penggunaan sumber daya semua kontainer pada node, dan penyebut adalah jumlah sumber daya yang dapat dialokasikan node ke kontainer (Allocatable).

    Penjadwalan Pod didasarkan pada permintaan sumber daya, bukan penggunaan aktual.

Deskripsi

Tingkat Keparahan

Konfigurasi PromQL

Deskripsi aturan

Prosedur pemecahan masalah umum

Penggunaan CPU node lebih dari 85%

Peringatan

sum(irate(container_cpu_usage_seconds_total{pod!=""}[1m])) by (node) / sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100 >= 85

Memicu peringatan ketika penggunaan CPU node kluster lebih dari 85%.

Rumusnya adalah

Penggunaan sumber daya node / Total sumber daya yang dapat dialokasikan pada node.

  • Lepaskan sumber daya.

    Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan CPU pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan CPU pod agar mendistribusikan pod ke node yang berbeda dan menyeimbangkan penggunaan sumber daya di antara node. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Tingkat alokasi sumber daya CPU node lebih dari 85%

Normal

(sum(sum(kube_pod_container_resource_requests{resource="cpu"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100 >= 85

Memicu peringatan ketika tingkat alokasi sumber daya CPU node kluster lebih dari 85%.

Rumusnya adalah Total permintaan sumber daya pod yang dijadwalkan pada node / Total sumber daya yang dapat dialokasikan pada node.

  • Node memiliki sumber daya yang tidak mencukupi untuk menjadwalkan lebih banyak pod. Pod yang memerlukan lebih banyak sumber daya daripada yang tersedia harus dijadwalkan ke node lain.

  • Periksa adanya pemborosan sumber daya pada pod di node ini, yang dapat terjadi jika penggunaan sumber daya aktual jauh lebih rendah daripada permintaan sumber daya. Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan memori pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan CPU pod. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Tingkat oversold CPU node lebih dari 300%

Peringatan

(sum(sum(kube_pod_container_resource_limits{resource="cpu"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="cpu"}) by (node) * 100 >= 300

Memicu peringatan ketika tingkat oversold CPU node kluster lebih dari 300%.

Rumusnya adalah Total batas sumber daya pod yang dijadwalkan pada node / Total sumber daya yang dapat dialokasikan pada node.

Ambang batas default 300% adalah nilai yang direkomendasikan. Anda dapat menyesuaikannya sesuai kebutuhan.

  • Total batas sumber daya pod yang dijadwalkan pada node jauh melebihi total sumber daya yang dapat dialokasikan node. Selama puncak bisnis, lonjakan penggunaan sumber daya dapat menyebabkan alokasi irisan waktu CPU yang tidak mencukupi. Hal ini menyebabkan konflik sumber daya dan pengendalian aliran, yang dapat memperlambat respons proses.

  • Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan memori pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan dan batas CPU pod. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Penggunaan memori node lebih dari 85%

Peringatan

sum(container_memory_working_set_bytes{pod!=""}) by (node) / sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100 >= 85

Memicu peringatan ketika penggunaan memori node kluster lebih dari 85%.

Rumusnya adalah

Penggunaan sumber daya node / Total sumber daya yang dapat dialokasikan pada node.

  • Lepaskan sumber daya.

    Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan memori pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan memori pod agar mendistribusikan pod ke node yang berbeda dan menyeimbangkan penggunaan sumber daya di antara node. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Tingkat alokasi sumber daya memori node lebih dari 85%

Normal

(sum(sum(kube_pod_container_resource_requests{resource="memory"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100 >= 85

Memicu peringatan ketika tingkat alokasi sumber daya memori node kluster lebih dari 85%.

Rumusnya adalah Total permintaan sumber daya pod yang dijadwalkan pada node / Total sumber daya yang dapat dialokasikan pada node.

  • Node memiliki sumber daya yang tidak mencukupi untuk menjadwalkan lebih banyak pod. Pod yang memerlukan lebih banyak sumber daya daripada yang tersedia harus dijadwalkan ke node lain.

  • Periksa adanya pemborosan sumber daya pada pod di node ini, yang dapat terjadi jika penggunaan sumber daya aktual jauh lebih rendah daripada permintaan sumber daya. Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan memori pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan memori pod. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Tingkat oversold memori node lebih dari 300%

Peringatan

(sum(sum(kube_pod_container_resource_limits{resource="memory"}) by (pod, node) * on (pod) group_left max(kube_pod_status_ready{condition="true"}) by (pod, node)) by (node)) / sum(kube_node_status_allocatable{resource="memory"}) by (node) * 100 >= 300

Memicu peringatan ketika tingkat oversold memori node kluster lebih dari 300%.

Rumusnya adalah Total batas sumber daya pod yang dijadwalkan pada node / Total sumber daya yang dapat dialokasikan pada node.

Ambang batas default 300% adalah nilai yang direkomendasikan. Anda dapat menyesuaikannya sesuai kebutuhan.

  • Total batas sumber daya pod yang dijadwalkan pada node jauh melebihi total sumber daya yang dapat dialokasikan node. Selama puncak bisnis, lonjakan penggunaan sumber daya dapat menyebabkan memori mencapai batas node. Hal ini dapat menyebabkan event OOM pada node, yang mungkin menyebabkan proses dihentikan oleh pembunuh OOM dan memengaruhi operasi bisnis.

  • Kami merekomendasikan Anda menggunakan fitur analisis biaya untuk memeriksa apakah ada pod yang menempati sumber daya yang dapat dijadwalkan dan apakah permintaan memori pod di kluster masuk akal. Untuk informasi selengkapnya, lihat Aktifkan fitur analisis biaya. Kami merekomendasikan Anda menggunakan fitur profiling sumber daya untuk mengonfigurasi permintaan dan batas memori pod. Untuk informasi selengkapnya, lihat Profiling sumber daya.

  • Rencanakan kapasitas dan lakukan penskalaan keluar node. Untuk informasi selengkapnya, lihat Skala node di kluster ACK.

Pengecualian jaringan

Deskripsi

Tingkat Keparahan

Konfigurasi PromQL

Deskripsi aturan

Prosedur pemecahan masalah umum

Ketersediaan CoreDNS kluster tidak normal - jumlah permintaan turun menjadi nol

Kritis

(sum(rate(coredns_dns_request_count_total{}[1m]))by(server,zone)<=0) or (sum(rate(coredns_dns_requests_total{}[1m]))by(server,zone)<=0)

Pengecualian ini hanya dapat dideteksi di kluster ACK yang dikelola (edisi Pro dan Basic).

Periksa apakah pod CoreDNS di kluster berjalan normal.

Ketersediaan CoreDNS kluster tidak normal - pengecualian panic

Kritis

sum(rate(coredns_panic_count_total{}[3m])) > 0

Pengecualian ini hanya dapat dideteksi di kluster ACK yang dikelola (edisi Pro dan Basic).

Periksa apakah pod CoreDNS di kluster berjalan normal.

Sertifikat controller Ingress kluster akan segera kedaluwarsa

Peringatan

((nginx_ingress_controller_ssl_expire_time_seconds - time()) / 24 / 3600) < 14

Anda harus menginstal dan menerapkan komponen controller Ingress ACK serta mengaktifkan fitur Ingress.

Terbitkan ulang sertifikat controller Ingress.

Pengecualian Penyesuaian Skala Otomatis

Deskripsi

Tingkat Keparahan

Konfigurasi PromQL

Deskripsi aturan

Prosedur pemecahan masalah umum

Jumlah replika HPA saat ini telah mencapai maksimum

Peringatan

max(kube_horizontalpodautoscaler_spec_max_replicas) by (namespace, horizontalpodautoscaler) - max(kube_horizontalpodautoscaler_status_current_replicas) by (namespace, horizontalpodautoscaler) <= 0

Anda harus mengaktifkan metrik terkait horizontalpodautoscaler di Prometheus Alibaba Cloud. Metrik ini dinonaktifkan secara default dan tidak dikenai biaya.弹性伸缩

Periksa apakah kebijakan Horizontal Pod Autoscaler (HPA) sesuai dengan ekspektasi Anda. Jika beban kerja bisnis tetap tinggi, Anda mungkin perlu menambah nilai maxReplicas HPA atau mengoptimalkan kinerja aplikasi

Referensi