From d2d4ba26d0dc2594443654613bfe210cbb00be4d Mon Sep 17 00:00:00 2001 From: Aris Cahyadi Risdianto Date: Sun, 12 Apr 2020 22:37:44 +0800 Subject: [PATCH] ID Localization for Monitoring Revert "ID Localization for Monitoring" This reverts commit ff9ddc1e6947d1c5a7a3218e7686f4963b103d81. Fixing directory problem. Fixing some translated words. Fixed "deprecation/deprecated metrics policy" Final check and modification. --- .../cluster-administration/monitoring.md | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 content/id/docs/concepts/cluster-administration/monitoring.md diff --git a/content/id/docs/concepts/cluster-administration/monitoring.md b/content/id/docs/concepts/cluster-administration/monitoring.md new file mode 100644 index 0000000000..501719a757 --- /dev/null +++ b/content/id/docs/concepts/cluster-administration/monitoring.md @@ -0,0 +1,167 @@ +--- +title: Metrik-Metrik untuk Control Plane Kubernetes +content_template: templates/concept +weight: 60 +aliases: +- controller-metrics.md +--- + +{{% capture overview %}} + +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](https://prometheus.io/docs/instrumenting/exposition_formats/) +dan dapat terbaca oleh manusia. + +{{% /capture %}} + +{{% capture body %}} + +## Metrik-Metrik pada Kubernetes + +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: + +* {{< glossary_tooltip term_id="kube-controller-manager" text="kube-controller-manager" >}} +* {{< glossary_tooltip term_id="kube-proxy" text="kube-proxy" >}} +* {{< glossary_tooltip term_id="kube-apiserver" text="kube-apiserver" >}} +* {{< glossary_tooltip term_id="kube-scheduler" text="kube-scheduler" >}} +* {{< glossary_tooltip term_id="kubelet" text="kubelet" >}} + +Di dalam lingkungan produksi, kamu mungkin ingin mengonfigurasi [Server Prometheus](https://prometheus.io/) +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 {{< glossary_tooltip term_id="kubelet" text="kubelet" >}} +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 {{< glossary_tooltip term_id="rbac" text="RBAC" >}}, +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 +``` + +## Siklus Hidup (_Lifecycle_) Metrik + +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 itu sendiri tidak akan dihapus (atau diganti namanya) +* jenis metrik tidak akan dimodifikasi + +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_. + +## Melihat Metrik tersembunyi + +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: + +* Pada rilis `1.n`, metrik sudah di_-deprecated_, dan dapat diperlihatkan secara bawaan. +* Pada rilis `1.n + 1`, metrik disembunyikan secara bawaan dan dapat + diperlihatkan dengan baris perintah `show-hidden-metrics-for-version=1.n`. +* Pada rilis `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 komponen + +### Metrik kube-controller-manager + +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"} +``` + +{{% /capture %}} + +{{% capture whatsnext %}} +* Baca tentang [format teks Prometheus](https://github.com/prometheus/docs/blob/master/content/docs/instrumenting/exposition_formats.md#text-based-format) untuk berbagai metrik +* Lihat daftar [metrik Kubernetes yang _stable_](https://github.com/kubernetes/kubernetes/blob/master/test/instrumentation/testdata/stable-metrics-list.yaml) +* Baca tentang [kebijakan _deprecation_ Kubernetes](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#deprecating-a-feature-or-behavior ) +{{% /capture %}}