Dokumen ini menunjukkan cara mengonfigurasi Google Cloud Managed Service for Prometheus untuk memfilter dan mengumpulkan metrik Kubernetes tertentu dari cluster dan workload Google Kubernetes Engine (GKE).
Anda seharusnya sudah memahami hal-hal berikut:
Pengumpulan metrik di GKE
Komponen sistem di cluster GKE memunculkan dan mengekspos metrik Prometheus. Secara default, semua cluster menyerap metrik sistem yang khusus untuk GKE. Paket metrik bawaan tambahan tersedia untuk memasukkan kumpulan metrik yang dikurasi untuk berbagai komponen.
Terlepas dari paket metrik GKE bawaan, Anda dapat mengonfigurasi Google Cloud Managed Service for Prometheus secara manual untuk menyerap metrik Prometheus tertentu. Konfigurasi kustom ini berfungsi dengan baik untuk kasus penggunaan seperti berikut:
- Memantau sinyal tertentu di cluster dan workload Anda.
- Optimalkan biaya dengan menonaktifkan paket metrik yang tidak Anda perlukan dan hanya menyerap sebagian metrik.
- Mengumpulkan metrik yang dikeluarkan oleh komponen, tetapi tidak disertakan dalam paket metrik.
Bagi operator, metrik node, yang dikeluarkan oleh proses kubelet di setiap node, mungkin berguna untuk memantau workload dan node untuk sinyal tertentu.
Resource kustom pengumpulan metrik
Untuk memfilter dan menyerap metrik tertentu, Anda mengonfigurasi aturan pelabelan ulang Prometheus di salah satu resource kustom berikut:
PodMonitoring: mengonfigurasi pengumpulan metrik dari Pod di namespace tertentu.ClusterPodMonitoring: mengonfigurasi pengumpulan metrik dari Pod di namespace mana pun.ClusterNodeMonitoring: mengonfigurasi pengumpulan metrik dari komponen node sepertikubeletdan cAdvisor.
Duplikasi metrik
Jika Anda memfilter metrik yang juga disertakan dalam paket metrik aktif untuk
cluster, metrik tersebut akan muncul beberapa kali di
Google Cloud Managed Service for Prometheus. Misalnya, jika cluster Anda mengaktifkan paket metrik KUBELET dan Anda mengonfigurasi pengumpulan metrik kubelet_running_containers, Anda akan melihat nilai duplikat.
Untuk menghindari duplikasi, pastikan metrik yang Anda kumpulkan tidak disertakan dalam salah satu paket metrik aktif. Untuk mengetahui informasi selengkapnya tentang metrik yang disertakan, lihat paket metrik berikut:
- Metrik sistem GKE
- Metrik bidang kontrol
- Metrik status objek Kubernetes
- cAdvisor dan metrik
kubelet - Metrik NVIDIA DCGM
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Untuk menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan perintah
gcloud components update. Versi gcloud CLI yang lebih lama mungkin tidak mendukung menjalankan perintah dalam dokumen ini.
- Pastikan Anda memiliki izin yang diperlukan untuk dokumen ini.
- Gunakan cluster GKE yang ada atau buat cluster baru.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengumpulkan dan melihat metrik, minta administrator untuk memberi Anda peran IAM berikut pada project Anda:
-
Buat resource Kubernetes di cluster Anda:
Kubernetes Engine Developer (
roles/container.developer) -
Lihat metrik di Monitoring:
Monitoring Viewer (
roles/monitoring.viewer)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengaktifkan Google Cloud Managed Service for Prometheus
Google Cloud Managed Service for Prometheus diaktifkan secara default di semua cluster GKE dan tidak dapat dinonaktifkan di cluster Autopilot. Jika Anda menggunakan cluster Autopilot, lanjutkan ke bagian Mengonfigurasi pengumpulan metrik.
Untuk memverifikasi bahwa Google Cloud Managed Service for Prometheus diaktifkan di cluster Standar Anda, pilih salah satu opsi berikut:
Konsol
Di konsol Google Cloud , buka halaman Kubernetes clusters.
Di baris untuk cluster yang ingin Anda periksa, klik Tindakan > Edit. Halaman Cluster details akan terbuka.
Di bagian Features, periksa nilai di kolom Managed Service for Prometheus. Jika nilainya Diaktifkan, lanjutkan ke bagian Mengonfigurasi pengumpulan metrik. Jika nilainya adalah Nonaktif, aktifkan Google Cloud Managed Service for Prometheus:
- Klik Edit Managed Service for Prometheus. Dialog Edit Managed Service for Prometheus akan terbuka.
- Centang kotak Enable Managed Service for Prometheus.
- Klik Simpan perubahan.
gcloud
Periksa apakah Google Cloud Managed Service for Prometheus diaktifkan di cluster:
gcloud container clusters describe CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--format='value(monitoringConfig.managedPrometheusConfig.enabled)'
Ganti kode berikut:
CLUSTER_NAME: nama cluster Standard Anda.CONTROL_PLANE_LOCATION: region atau zona bidang kontrol cluster, sepertius-central1atauus-central1-a.
Jika outputnya adalah True, berarti Google Cloud Managed Service for Prometheus diaktifkan.
Jika outputnya adalah False, aktifkan Google Cloud Managed Service for Prometheus:
gcloud container clusters update CLUSTER_NAME \
--location=CONTROL_PLANE_LOCATION \
--enable-managed-prometheus
Mengonfigurasi pengumpulan metrik
Untuk mengonfigurasi Google Cloud Managed Service for Prometheus agar menyerap metrik tertentu yang dikeluarkan, Anda memerlukan informasi berikut tentang metrik tersebut:
- Nama metrik, seperti
kubelet_working_pods. - Endpoint yang mengekspos metrik, seperti
/metrics/cadvisoratau/metrics.
Untuk menemukan metrik dan mengonfigurasi pengumpulan, ikuti langkah-langkah berikut:
Temukan metrik dalam dokumentasi referensi untuk komponen tertentu. Misalnya, Anda dapat menggunakan resource berikut untuk menemukan metrik node:
Periksa paket metrik aktif untuk cluster:
gcloud container clusters describe CLUSTER_NAME \ --location=CONTROL_PLANE_LOCATION \ --flatten=monitoringConfig.componentConfig \ --format='value(enableComponents)'Outputnya mirip dengan hal berikut ini:
SYSTEM_COMPONENTS;STORAGE;POD;DEPLOYMENT;STATEFULSET;DAEMONSET;HPA;JOBSET;CADVISOR;KUBELET;DCGMPeriksa apakah metrik yang ingin Anda kumpulkan ada dalam salah satu paket aktif ini dengan menggunakan informasi di Metrik yang tersedia. Jika metrik Anda disertakan dalam paket metrik aktif, metrik duplikat mungkin muncul di Monitoring. Jika metrik Anda tidak ada dalam paket metrik aktif, lanjutkan ke langkah berikutnya.
Opsional: Untuk memverifikasi bahwa metrik tersedia di endpoint metrik, kueri endpoint menggunakan perintah
kubectl get --raw. Misalnya, perintah berikut mengkueri endpoint/metricsuntuk metrikkubelet_working_pods:kubectl get --raw "/api/v1/nodes/NODE_NAME/proxy/metrics" | grep "kubelet_working_pods"Ganti
NODE_NAMEdengan nama node yang akan dikueri.Outputnya mirip dengan berikut ini, yang menunjukkan bahwa metrik tersedia:
# HELP kubelet_working_pods [ALPHA] Number of pods the kubelet is actually running, broken down by lifecycle phase, whether the pod is desired, orphaned, or runtime only (also orphaned), and whether the pod is static. An orphaned pod has been removed from local configuration or force deleted in the API and consumes resources that are not otherwise visible. # TYPE kubelet_working_pods gauge kubelet_working_pods{config="desired",lifecycle="sync",static=""} 8 kubelet_working_pods{config="desired",lifecycle="sync",static="true"} 1 kubelet_working_pods{config="desired",lifecycle="terminated",static=""} 0 kubelet_working_pods{config="desired",lifecycle="terminated",static="true"} 0 kubelet_working_pods{config="desired",lifecycle="terminating",static=""} 0 kubelet_working_pods{config="desired",lifecycle="terminating",static="true"} 0Setelah mengidentifikasi metrik yang ingin dikumpulkan, gunakan aturan pelabelan ulang Prometheus di resource kustom PodMonitoring, ClusterPodMonitoring, atau ClusterNodeMonitoring untuk memfilter metrik tersebut. Resource kustom yang Anda gunakan bergantung pada properti metrik, seperti yang dijelaskan di bagian Resource kustom pengumpulan metrik.
Misalnya, tinjau manifes ClusterNodeMonitoring berikut:
apiVersion: monitoring.googleapis.com/v1 kind: ClusterNodeMonitoring metadata: name: kubelet-pod-counts spec: selector: matchLabels: {} endpoints: - path: "/metrics" scheme: "https" interval: "30s" tls: insecureSkipVerify: true # metricRelabeling specifies the metrics to ingest. The metrics must be # available at the specified endpoint. metricRelabeling: - action: keep sourceLabels: [__name__] regex: kubelet_(active|working)_podsManifes ini memiliki properti berikut:
- Kolom
selector.matchLabelsadalah set kosong ({}), yang cocok dengan semua node. - Kolom
endpoints.pathmengidentifikasi endpoint metrik yang akan di-scrape. - Kolom
metricRelabelingmengidentifikasi metrik spesifik yang akan dikumpulkan. Dalam contoh ini, Google Cloud Managed Service for Prometheus mengumpulkan metrik yang memiliki namakubelet_active_podsdankubelet_working_podsdari endpoint.
- Kolom
Saat Anda men-deploy resource kustom, Google Cloud Managed Service for Prometheus akan menyerap metrik yang sesuai dengan konfigurasi yang Anda tentukan. Anda dapat melihat dan membuat kueri metrik ini menggunakan metode yang sama dengan yang Anda gunakan untuk metrik lain, seperti Cloud Monitoring.
Memverifikasi pengumpulan metrik untuk contoh metrik
Langkah-langkah berikut menunjukkan cara mengonfigurasi Google Cloud Managed Service for Prometheus
untuk mengumpulkan metrik kubelet_runtime_operations_errors_total dari kubelet.
Dalam contoh langkah-langkah ini, Anda memverifikasi bahwa metrik saat ini tidak dikumpulkan, membuat
ClusterNodeMonitoring (karena kubelet adalah komponen node), lalu memverifikasi bahwa
metrik muncul di Monitoring.
Pastikan metrik
kubelet_runtime_operations_errors_totalbelum ada di Monitoring:Di konsol Google Cloud , buka halaman Metrics explorer.
Di bagian Queries, di kolom Metric, coba pilih metrik
prometheus/kubelet_runtime_operations_errors_total/countertersebut. Jika Anda tidak melihat hasil penelusuran, metrik tidak dikumpulkan.
Buat ClusterNodeMonitoring untuk memfilter metrik
kubelet_runtime_operations_errors_total:Simpan manifes ClusterNodeMonitoring berikut sebagai
kubelet-runtime-errors-collector.yaml:apiVersion: monitoring.googleapis.com/v1 kind: ClusterNodeMonitoring metadata: name: kubelet-runtime-errors-collector spec: selector: matchLabels: {} endpoints: - path: /metrics scheme: https interval: 30s tls: insecureSkipVerify: true metricRelabeling: - action: keep sourceLabels: [__name__] regex: kubelet_runtime_operations_errors_totalBuat ClusterNodeMonitoring:
kubectl apply -f kubelet-runtime-errors-collector.yaml
Metrik mungkin memerlukan waktu hingga 10 menit untuk muncul di Monitoring.
Di konsol Google Cloud , pastikan metrik muncul di Monitoring:
Buka halaman Metrics Explorer.
Di bagian Queries, di kolom Metric, pilih metrik
prometheus/kubelet_runtime_operations_errors_total/counter.Opsional: Di menu drop-down Filter, pilih cluster Anda.
Bagian Hasil menampilkan diagram dengan metrik yang dikumpulkan.
Langkah berikutnya
- Jelajahi paket metrik yang tersedia di GKE
- Mengonfigurasi pemantauan aplikasi otomatis untuk workload
- Membuat dan mengelola dasbor Monitoring kustom