Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
Metrik dari komponen sistem dapat memberikan pandangan yang lebih baik tentang apa yang sedang terjadi di dalam sistem. Metrik sangat berguna untuk membuat dasbor (dashboard) dan peringatan (alert).
Metrik di dalam control plane Kubernetes disajikan dalam format prometheus dan dapat terbaca oleh manusia.
Dalam kebanyakan kasus, metrik tersedia pada endpoint /metrics
dari server HTTP.
Untuk komponen yang tidak mengekspos endpoint secara bawaan, endpoint tersebut dapat diaktifkan
dengan menggunakan opsi --bind-address
.
Contoh-contoh untuk komponen tersebut adalah:
Di dalam lingkungan produksi, kamu mungkin ingin mengonfigurasi Server Prometheus atau scraper metrik (pengambil metrik) lainnya untuk mengumpulkan metrik-metrik ini secara berkala dan membuatnya tersedia dalam semacam basis data yang time series.
Perlu dicatat bahwa kubeletAgen yang dijalankan pada setiap node di klaster dan bertugas memastikan kontainer dijalankan di dalam pod.
juga mengekspos metrik pada endpoint-endpoint seperti /metrics/cadvisor
,
/metrics/resource
dan /metrics/probes
. Metrik-metrik tersebut tidak memiliki
siklus hidup yang sama.
Jika klaster kamu menggunakan RBACManages authorization decisions, allowing admins to dynamically configure access policies through the Kubernetes API.
,
untuk membaca metrik memerlukan otorisasi melalui sebuah User, Group, atau
ServiceAccount dengan ClusterRole yang memperbolehkan mengakses /metrics
.
Sebagai contoh:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: prometheus
rules:
- nonResourceURLs:
- "/metrics"
verbs:
- get
Alpha metric → Stable metric → Deprecated metric → Hidden metric → Deletion
Metrik-metrik Alpha tidak memiliki jaminan stabilitas; dengan demikian mereka dapat dimodifikasi atau dihapus kapan saja.
Metrik-metrik Stable dijamin tidak berubah (dijamin stabilitasnya); Secara khusus, stabilitas berarti:
Metrik Deprecated memberi penanda bahwa metrik tersebut suatu saat akan dihapus; untuk menemukan versi yang mana, kamu perlu memeriksa anotasi, yang mencakup dari versi Kubernetes mana yang metrik tersebut akan dianggap deprecated.
Sebelum deprecation:
# HELP some_counter this counts things
# TYPE some_counter counter
some_counter 0
Sesudah deprecation:
# HELP some_counter (Deprecated since 1.15.0) this counts things
# TYPE some_counter counter
some_counter 0
Setelah metrik disembunyikan maka secara bawaan metrik tidak dipublikasikan untuk scraping (pengambilan metrik). Untuk menggunakan metrik yang tersembunyi, kamu perlu mengganti (override) konfigurasi untuk komponen klaster yang relevan.
Setelah metrik dihapus, metrik tidak dipublikasikan. Kamu tidak dapat mengubah metrik tersebut dengan menggunakan override.
Seperti dijelaskan di atas, para admin dapat mengaktifkan metrik tersembunyi melalui opsi pada baris perintah (command line) untuk binary (program) tertentu. Ini ditujukan untuk digunakan sebagai solusi bagi para admin apabila mereka gagal memigrasi metrik yang sudah deprecated dalam rilis terakhir.
Opsi show-hidden-metrics-for-version
menunjukkan versi yang ingin kamu tampilkan
metrik yang sudah deprecated dalam rilis tersebut. Versi ini ditampilkan dalam bentuk x.y,
di mana x adalah versi major, y adalah versi minor. Versi patch tidak
diperlukan meskipun metrik dapat di_-deprecate_ dalam rilis _patch_, hal ini
adalah karena kebijakan _deprecation_ untuk metrik hanya berlaku terhadap rilis minor.
Opsi tersebut hanya dapat menggunakan versi minor sebelumnya sebagai parameternya. Semua
metrik yang disembunyikan di versi sebelumnya akan dikeluarkan jika para admin
mengatur versi sebelumnya ke show-hidden-metrics-for-version
. Versi yang
terlalu lama tidak diizinkan karena hal ini melanggar kebijakan untuk metrik yang
sudah deprecated.
Ambil metrik A
sebagai contoh, di sini diasumsikan bahwa A
sudah deprecated
pada rilis 1.n. Menurut kebijakan metrik yang sudah deprecated, kita dapat mencapai kesimpulan
sebagai berikut:
1.n
, metrik sudah di_-deprecated_, dan dapat diperlihatkan secara bawaan.1.n + 1
, metrik disembunyikan secara bawaan dan dapat
diperlihatkan dengan baris perintah show-hidden-metrics-for-version=1.n
.1.n + 2
, metrik harus dihapus dari codebase. Tidak ada jalan
keluar lagi.Jika kamu meng-upgrade dari rilis 1.12
ke 1.13
, tetapi masih bergantung pada
metrik A
yang di-deprecate dalam 1.12
, kamu harus mengatur metrik
tersembunyi melalui baris perintah: --show-hidden-metrics=1.12
dan ingatlah
untuk menghapus ketergantungan terhadap metrik ini sebelum meng-upgrade ke 1.14
.
Metrik Controller Manager memberikan pandangan penting tentang kinerja dan kesehatan Controller Manager. Metrik ini mencakup metrik runtime berbahasa Go yang umum seperti jumlah go_routine dan metrik khusus pengontrol seperti latensi request etcd atau latensi API dari Cloud provider (AWS, GCE, OpenStack) yang dapat digunakan untuk mengukur kesehatan klaster.
Mulai dari Kubernetes 1.7, metrik Cloud provider yang detail tersedia untuk operasi penyimpanan untuk GCE, AWS, Vsphere, dan OpenStack. Metrik ini dapat digunakan untuk memantau kesehatan operasi PersistentVolume.
Misalnya, untuk GCE metrik tersebut adalah:
cloudprovider_gce_api_request_duration_seconds { request = "instance_list"}
cloudprovider_gce_api_request_duration_seconds { request = "disk_insert"}
cloudprovider_gce_api_request_duration_seconds { request = "disk_delete"}
cloudprovider_gce_api_request_duration_seconds { request = "attach_disk"}
cloudprovider_gce_api_request_duration_seconds { request = "detach_disk"}
cloudprovider_gce_api_request_duration_seconds { request = "list_disk"}