Aturan pemberitahuan yang direkomendasikan untuk kluster Kubernetes

Pemberitahuan di Azure Monitor secara proaktif mengidentifikasi masalah yang terkait dengan kesehatan dan performa sumber daya Azure Anda. Artikel ini menjelaskan cara mengaktifkan dan mengedit sekumpulan aturan pemberitahuan metrik yang direkomendasikan yang telah ditentukan sebelumnya untuk kluster Kubernetes Anda.

Gunakan salah satu metode berikut untuk mengaktifkan aturan pemberitahuan yang direkomendasikan untuk kluster Anda. Anda dapat mengaktifkan aturan pemberitahuan metrik Prometheus dan platform untuk kluster yang sama.

Catatan

Kluster Kubernetes dengan dukungan Arc tidak mendukung aturan pemberitahuan yang direkomendasikan metrik Platform. Sebaliknya, aturan pemberitahuan berbasis Prometheus yang setara disediakan untuk kluster ini.

Dengan menggunakan portal Azure, grup aturan Prometheus akan dibuat di wilayah yang sama dengan kluster.

  1. Dari menu Pemberitahuan untuk kluster Anda, pilih Siapkan rekomendasi.

    Cuplikan layar kluster AKS memperlihatkan tombol Siapkan rekomendasi.

  2. Aturan pemberitahuan Prometheus dan platform yang tersedia ditampilkan dengan aturan Prometheus yang diatur oleh tingkat pod, kluster, dan node. Alihkan sekelompok aturan Prometheus untuk mengaktifkan kelompok aturan tersebut. Perluas grup untuk melihat aturan individual. Anda dapat membiarkan default atau menonaktifkan aturan individual dan mengedit nama dan tingkat keparahannya.

    Cuplikan layar mengaktifkan aturan pemberitahuan Prometheus.

  3. Ubah aturan metrik platform untuk mengaktifkan aturan tersebut. Anda dapat memperluas aturan untuk mengubah detailnya seperti nama, tingkat keparahan, dan ambang batas.

    Cuplikan layar mengaktifkan aturan pemberitahuan metrik platform.

  4. Pilih satu atau beberapa metode pemberitahuan untuk membuat grup tindakan baru, atau pilih grup tindakan yang sudah ada dengan detail pemberitahuan untuk sekumpulan aturan pemberitahuan ini.

  5. Klik Simpan untuk menyimpan grup aturan.

Petunjuk / Saran

Sebaiknya Anda juga mengaktifkan pemberitahuan rekomendasi untuk Ruang Kerja Azure Monitor tempat metrik Prometheus diproses. Pemberitahuan ini memungkinkan Anda memantau batas dan kuota penyerapan, dan menghindari pembatasan metrik. Untuk mengaktifkan pemberitahuan yang direkomendasikan ini, lihat Menyiapkan pemberitahuan yang direkomendasikan untuk Ruang Kerja Azure Monitor.

Setelah grup aturan dibuat, Anda tidak dapat menggunakan halaman yang sama di portal untuk mengedit aturan. Untuk metrik Prometheus, Anda harus mengedit grup aturan untuk mengubah aturan apa pun di dalamnya, termasuk mengaktifkan aturan apa pun yang belum diaktifkan. Untuk metrik platform, Anda dapat mengedit setiap aturan pemberitahuan.

  1. Dari menu Pemberitahuan untuk kluster Anda, pilih Siapkan rekomendasi. Aturan atau grup aturan apa pun yang telah dibuat akan diberi label sebagai Sudah dibuat.

  2. Perluas aturan atau grup aturan. Klik Tampilkan grup aturan untuk Prometheus dan Lihat aturan peringatan untuk metrik platform.

    Cuplikan layar opsi tampilkan grup aturan.

  3. Untuk grup aturan Prometheus:

    1. pilih Aturan untuk melihat aturan pemberitahuan dalam grup.

    2. Klik ikon Edit di samping aturan yang ingin Anda ubah. Gunakan panduan di Buat aturan pemberitahuan untuk mengubah aturan.

      Cuplikan layar opsi untuk mengedit aturan pemberitahuan Prometheus.

    3. Setelah selesai mengedit aturan dalam grup, klik Simpan untuk menyimpan grup aturan.

  4. Untuk metrik platform:

    1. klik Edit untuk membuka detail aturan pemberitahuan. Gunakan panduan di Buat aturan pemberitahuan untuk mengubah aturan.

      Cuplikan layar opsi untuk mengedit aturan metrik platform.

Menonaktifkan grup aturan pemberitahuan

Nonaktifkan grup aturan untuk berhenti menerima pemberitahuan dari aturan di dalamnya.

  1. Lihat grup aturan pemberitahuan Prometheus atau aturan pemberitahuan metrik platform seperti yang dijelaskan dalam Ubah aturan pemberitahuan yang direkomendasikan.

  2. Dari menu Gambaran Umum , pilih Nonaktifkan.

    Cuplikan layar opsi untuk menonaktifkan grup aturan.

Tabel berikut ini mencantumkan detail setiap aturan pemberitahuan yang direkomendasikan. Kode sumber untuk masing-masing tersedia di GitHub bersama dengan panduan pemecahan masalah dari komunitas Prometheus.

Aturan pemberitahuan komunitas Prometheus

Pemberitahuan tingkat kluster

Nama pemberitahuan Deskripsi Ambang batas default Jangka waktu (menit)
KubeCPUQuotaOvercommit Kuota sumber daya CPU yang dialokasikan untuk namespace melebihi sumber daya CPU yang tersedia pada node kluster lebih dari 50% selama 5 menit terakhir. >1.5 5
KubeMemoryQuotaOvercommit (Pengalokasian Berlebih Kuota Memori pada Kube) Kuota sumber daya memori yang dialokasikan untuk namespace melebihi sumber daya memori yang tersedia pada node kluster lebih dari 50% selama 5 menit terakhir. >1.5 5
KubeContainerOOMKilledCount Satu atau beberapa kontainer dalam pod telah dimatikan karena kekurangan memori (OOM) selama 5 menit terakhir. >0 5
KubeClientErrors Tingkat kesalahan klien (kode status HTTP yang dimulai dengan 5xx) dalam permintaan API Kubernetes melebihi 1% dari total tingkat permintaan API selama 15 menit terakhir. >0.01 15
KubePersistentVolumeFillingUp Volume persisten terus terisi dan diperkirakan akan kehabisan ruang. Evaluasi didasarkan pada rasio ruang yang tersedia, penggunaan ruang saat ini, dan tren linier yang diprediksi dari ruang yang tersedia selama 6 jam terakhir. Kondisi ini dievaluasi selama 60 menit terakhir. Tidak Berlaku 60 (enam puluh)
KubePersistentVolumeInodesFillingUp Kurang dari 3% inode dalam volume persisten tersedia selama 15 menit terakhir. <0.03 15
KubePersistentVolumeErrors Satu atau beberapa volume persisten berada dalam fase gagal atau tertunda selama 5 menit terakhir. >0 5
Kube Container Menunggu Satu atau beberapa kontainer dalam pod Kubernetes berada dalam status tunggu selama 60 menit terakhir. >0 60 (enam puluh)
SetDaemonKubeTidakDijadwalkan Satu atau beberapa pod tidak dijadwalkan pada simpul apa pun selama 15 menit terakhir. >0 15
Penjadwalan KubeDaemonSet Salah Satu atau beberapa pod salah dijadwalkan dalam kluster selama 15 menit terakhir. >0 15
KubeQuotaHampirPenuh Pemanfaatan kuota sumber daya Kubernetes adalah antara 90% dan 100% dari batas maksimum selama 15 menit terakhir. >0,9 <1 15

Pemberitahuan tingkat simpul

Nama pemberitahuan Deskripsi Ambang batas default Jangka waktu (menit)
KubeNodeTidakTerjangkau Simpul telah tidak dapat dijangkau selama 15 menit terakhir. 1 15
Kesiapan KubeNode Tidak Stabil Status kesiapan simpul telah berubah lebih dari 2 kali selama 15 menit terakhir. 2 15

Pemberitahuan tingkat pod

Nama pemberitahuan Deskripsi Ambang batas default Jangka waktu (menit)
KubePVUsageHigh Penggunaan rata-rata Volume Persisten (PV) pada pod melebihi 80% selama 15 menit terakhir. >0.8 15
KubeDeploymentReplicasTidakCocok Ada ketidakcocokan antara jumlah replika yang diinginkan dan jumlah replika yang tersedia selama 10 menit terakhir. Tidak Berlaku 10
KetidakcocokanReplikaKubeStatefulSet Jumlah replika siap di StatefulSet tidak cocok dengan jumlah total replika di StatefulSet selama 15 menit terakhir. Tidak Berlaku 15
Ketidakcocokan Replika KubeHpa Autoscaler Pod Horizontal dalam kluster belum cocok dengan jumlah replika yang diinginkan selama 15 menit terakhir. Tidak Berlaku 15
Kube HPA mencapai batas maksimum Horizontal Pod Autoscaler (HPA) dalam kluster telah berjalan pada jumlah replika maksimum selama 15 menit terakhir. Tidak Berlaku 15
KubePodCrashLooping Satu atau beberapa pod berada dalam kondisi CrashLoopBackOff, di mana pod terus crash setelah startup dan gagal pulih dengan sukses selama 15 menit terakhir. >=1 15
KubeJobStale Selama 6 jam terakhir, setidaknya satu instance pekerjaan tidak selesai dengan sukses. >0 360
Mulai Ulang Kontainer Pod Kube Satu atau beberapa kontainer dalam pod di kluster Kubernetes telah dimulai ulang setidaknya sekali dalam satu jam terakhir. >0 15
KubePodReadyStateLow Persentase pod dalam status siap berada di bawah 80% untuk setiap penyebaran atau daemonset di kluster Kubernetes selama 5 menit terakhir. <0.8 5
KubePodFailedState Satu atau beberapa pod telah mengalami kegagalan selama 5 menit terakhir. >0 5
KubePodTidakSiapOlehPengendali Satu atau beberapa pod tidak dalam keadaan siap (yaitu, dalam fase "Tertunda" atau "Tidak Diketahui") selama 15 menit terakhir. >0 15
KetidakcocokanGenerasiKubeStatefulSet Generasi yang diamati dari Kubernetes StatefulSet tidak cocok dengan generasi metadatanya dalam 15 menit terakhir. Tidak Berlaku 15
KubePekerjaanGagal Satu atau beberapa pekerjaan Kubernetes gagal dalam 15 menit terakhir. >0 15
KontainerKubeCPURataRataTinggi Penggunaan CPU rata-rata per kontainer melebihi 95% selama 5 menit terakhir. >0.95 5
Rata-rata Memori Tinggi KubeContainer Penggunaan memori rata-rata per kontainer melebihi 95% selama 5 menit terakhir. >0.95 10
KubeletPodStartUpLatencyHigh Persentil ke-99 dari latensi startup pod melebihi 60 detik selama 10 menit terakhir. >60 10

Aturan pemberitahuan metrik platform

Nama pemberitahuan Deskripsi Ambang batas default Jangka waktu (menit)
Persentase cpu node lebih besar dari 95% Persentase CPU node lebih besar dari 95% selama 5 menit terakhir. 95 5
Persentase penggunaan set kerja memori node lebih dari 100% Persentase penggunaan set kerja memori node melebihi 100% selama 5 menit terakhir. 100 5

Pemberitahuan metrik wawasan Kontainer Warisan (pratinjau)

Aturan metrik dalam Insight Kontainer dihentikan pada 31 Mei 2024. Aturan ini berada dalam tinjauan publik tetapi diperhentikan sebelum mencapai tahap ketersediaan umum karena peringatan metrik baru yang direkomendasikan yang dijelaskan dalam artikel ini sekarang tersedia.

Jika Anda sudah mengaktifkan aturan pemberitahuan warisan ini, Anda harus menonaktifkannya dan mengaktifkan pengalaman baru.

Menonaktifkan aturan peringatan metrik

  1. Dari menu Insight untuk kluster Anda, pilih Pemberitahuan yang direkomendasikan (pratinjau).
  2. Ubah status untuk setiap aturan pemberitahuan menjadi Dinonaktifkan.

Pemetaan alert sistem lama

Tabel berikut memetakan setiap pemberitahuan metrik Container insights lama menjadi pemberitahuan metrik Prometheus setara yang direkomendasikan.

Pemberitahuan metrik khusus yang direkomendasikan Peringatan yang direkomendasikan untuk metrik Prometheus/Platform yang setara Kondisi
Jumlah pekerjaan yang selesai KubeJobStale (Pemberitahuan tingkat Pod) Selama 6 jam terakhir, setidaknya satu instance pekerjaan tidak selesai dengan sukses.
CPU Kontainer % KubeContainerAverageCPUHigh (Pemberitahuan tingkat Pod) Penggunaan CPU rata-rata per kontainer melebihi 95% selama 5 menit terakhir.
Memori set kerja kontainer % KubeContainerAverageMemoryHigh (Pemberitahuan tingkat Pod) Penggunaan memori rata-rata per kontainer melebihi 95% selama 5 menit terakhir.
Jumlah Pod yang gagal KubePodFailedState (Peringatan tingkat Pod) Satu atau beberapa pod telah mengalami kegagalan selama 5 menit terakhir.
CPU Simpul % Persentase CPU pada node lebih besar dari 95% (Metrik platform) Persentase CPU node lebih besar dari 95% selama 5 menit terakhir.
Persentase Penggunaan Disk Node Tidak Berlaku Penggunaan disk rata-rata untuk simpul lebih besar dari 80%.
Status simpul tidak siap KubeNodeTidakTerjangkau (Pemberitahuan tingkat node) Simpul telah tidak dapat dijangkau selama 15 menit terakhir.
Memori set kerja simpul % Persentase penggunaan set kerja memori node lebih dari 100% Persentase penggunaan set kerja memori node melebihi 100% selama 5 menit terakhir.
Kontainer yang Dihentikan oleh OOM KubeContainerOOMKilledCount (Pemberitahuan tingkat kluster) Satu atau beberapa kontainer dalam pod telah dimatikan karena kekurangan memori (OOM) selama 5 menit terakhir.
Persentase Penggunaan Volume Persisten KubePVUsageHigh (Peringatan tingkat Pod) Penggunaan rata-rata Volume Persisten (PV) pada pod melebihi 80% selama 15 menit terakhir.
Pod siap % KubePodReadyStateLow (Peringatan tingkat siaga Pod) Persentase pod dalam status siap berada di bawah 80% untuk setiap penyebaran atau daemonset di kluster Kubernetes selama 5 menit terakhir.
Jumlah kontainer yang dimulai ulang KubePodContainerRestart (Pemberitahuan tingkat Pod) Satu atau beberapa kontainer dalam pod di kluster Kubernetes telah dimulai ulang setidaknya sekali dalam satu jam terakhir.

Pemetaan metrik warisan

Tabel berikut memetakan setiap metrik kustom wawasan Kontainer warisan ke metrik Prometheus yang setara.

Metrik kustom Metrik Prometheus yang setara
Penggunaan CPU dalam Milicore rate(container_cpu_usage_seconds_total[5m]) * 1000
persenPenggunaanCPU 100 * rate(container_cpu_usage_seconds_total{cluster="$cluster"}[5m])
Persentase Penggunaan CPU yang Dapat Dialokasikan 100 * ( jumlah menurut (kluster) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate{cluster="$cluster"}) / jumlah menurut (kluster) (instance:node_num_cpu:sum{cluster="$cluster"}) )
memoryRssByte container_memory_rss{cluster="$cluster"}
persentaseMemoryRss 100 * (jumlah menurut (instans, kluster) (container_memory_rss{job="cadvisor", cluster="$cluster"}) / jumlah menurut (instans, kluster) (machine_memory_bytes{job="cadvisor", cluster="$cluster"}))
PersentaseMemRssDapatDialokasikan 100 * (jumlah berdasarkan (node, kluster) (container_memory_rss{cluster="$cluster"}) / jumlah berdasarkan (node, kluster) (node_memory_MemTotal_bytes{cluster="$cluster"}))
Ukuran Memori Kerja dalam Byte container_memory_working_set_bytes{cluster="$cluster"}
persentaseSetKerjaMemori 100 * (jumlah menurut (node, kluster) (container_memory_working_set_bytes{cluster="$cluster"}) / jumlah berdasarkan (node, kluster) (node_memory_MemTotal_bytes{cluster="$cluster"}))
jumlahNodus count(kube_node_status_condition{condition="Ready", status="true", cluster="$cluster"})
PersentaseDiskTerpakai 100 * (node_filesystem_size_bytes{cluster="$cluster"} - node_filesystem_free_bytes{cluster="$cluster"}) / node_filesystem_size_bytes{cluster="$cluster"}
podCount count(count by (pod, namespace, cluster) (kube_pod_info{cluster="$cluster"}))
jumlahPekerjaanSelesai count(kube_job_status_succeeded{status="true", cluster="$cluster"} and time() - kube_job_status_start_time > 6 * 3600)
jumlahKontainerMenghidupkanUlang jumlah menurut(kontainer, namespace, kluster) (rate(kube_pod_container_status_restarts_total{cluster="$cluster"}[5m]))
JumlahKontainerDibunuhOOM jumlah berdasarkan(kontainer, namespace, kluster) (kube_pod_container_status_terminated_reason{reason="OOMKilled", cluster="$cluster"})
podReadyPercentage 100 * (sum(kube_pod_status_phase{phase="Running", cluster="$cluster"}) by (namespace, cluster) / sum(kube_pod_status_phase{phase!="Succeeded", cluster="$cluster"}) by (namespace, kluster))

Langkah berikutnya