Dokumen ini membantu Anda memecahkan masalah kemampuan observasi di Google Distributed Cloud. Jika Anda mengalami salah satu dari masalah ini, tinjau perbaikan yang disarankan dan .
Jika Anda memerlukan bantuan tambahan, hubungi Dukungan Google.
Cloud Audit Logs tidak dikumpulkan
Periksa apakah Cloud Audit Logs diaktifkan di bagiancloudAuditLogging
pada
konfigurasi cluster Anda. Memverifikasi bahwa project ID, lokasi, dan kunci akun layanan
telah dikonfigurasi dengan benar. Project ID harus sama dengan project ID
di bawah gkeConnect
.
Jika Cloud Audit Logs diaktifkan, izin adalah alasan paling umum yang log tidak dikumpulkan. Dalam skenario ini, pesan {i>error<i} izin yang ditolak adalah yang ditampilkan di container proxy Cloud Audit Logs.
Penampung proxy Cloud Audit Logs berjalan sebagai salah satu dari yang berikut:- Pod statis di admin atau cluster mandiri.
- Sebagai container file bantuan di Pod
kube-apiserver
.
Jika Anda melihat pesan error izin, ikuti langkah-langkah untuk memecahkan dan menyelesaikan masalah izin.
kube-state-metrics
metrik tidak dikumpulkan
kube-state-metrics
(KSM) berjalan sebagai Deployment replika tunggal di cluster
dan membuat metrik di hampir semua resource di cluster. Ketika KSM dan
gke-metrics-agent
berjalan di node yang sama, ada risiko pemadaman layanan yang lebih besar
di antara agen metrik di semua node.
Metrik KSM memiliki nama yang mengikuti pola kube_<ResourceKind>
, seperti
kube_pod_container_info
. Metrik yang dimulai dengan kube_onpremusercluster_
adalah
dari pengontrol cluster lokal, bukan dari KSM.
Jika metrik KSM tidak ada, tinjau langkah-langkah pemecahan masalah berikut:
- Di Cloud Monitoring, periksa CPU, memori, dan jumlah mulai ulang KSM menggunakan
metrik API ringkasan seperti
kubernetes.io/anthos/container/...
. Ini adalah pipeline terpisah dengan KSM. Memastikan bahwa Pod KSM tidak dibatasi oleh sumber daya yang cukup.- Jika metrik API ringkasan ini tidak tersedia untuk KSM,
gke-metrics-agent
pada {i>node<i} yang sama mungkin juga memiliki masalah yang sama.
- Jika metrik API ringkasan ini tidak tersedia untuk KSM,
- Di cluster, periksa status dan log Pod KSM dan
gke-metrics-agent
Pod pada node yang sama dengan KSM.
Pengulangan error kube-state-metrics
Gejala
Tidak ada metrik dari kube-state-metrics
(KSM) yang tersedia
dan konfigurasi di Cloud Monitoring.
Penyebab
Skenario ini lebih mungkin terjadi dalam klaster besar, atau klaster dengan jumlah resource. KSM berjalan sebagai Deployment replika tunggal dan mencantumkan hampir semua resource dalam cluster seperti Pod, Deployment, DaemonSets, ConfigMaps, Rahasia, dan PersistentVolume. Metrik dibuat di setiap resource ini objek terstruktur dalam jumlah besar. Jika salah satu resource memiliki banyak objek, seperti cluster dengan lebih dari 10.000 Pod, KSM berpotensi kehabisan memori.
Versi yang terpengaruh
Masalah ini dapat dialami pada versi Google Distributed Cloud apa pun.
Batas CPU dan memori default telah ditingkatkan dalam beberapa versi Google Distributed Cloud, sehingga masalah resource ini seharusnya jarang terjadi.
Perbaikan dan solusi
Untuk memeriksa apakah masalah Anda karena masalah kehabisan memori, tinjau langkah-langkah berikut:
- Gunakan
kubectl describe pod
ataukubectl get pod -o yaml
dan periksa error pesan status. - Periksa metrik pemakaian dan pemakaian memori untuk KSM dan konfirmasi apakah sudah mencapai batas sebelum dimulai ulang.
Jika Anda memastikan bahwa masalahnya adalah masalah memori, gunakan salah satu solusi berikut:
Meningkatkan permintaan dan batas memori untuk KSM.
Untuk menyesuaikan CPU dan memori KSM:
Untuk Google Distributed Cloud versi 1.16.0 atau yang lebih baru, Google Cloud Observability mengelola KSM. Untuk mengupdate KSM, lihat Mengganti CPU dan memori default permintaan dan batas untuk Stackdriver komponen.
Untuk versi Google Distributed Cloud 1.10.7 atau yang lebih baru, 1.11.3 atau yang lebih baru, 1.12.2 atau yang lebih baru, dan 1.13 dan yang lebih baru, tetapi sebelum 1.16.0, buat
ConfigMap
untuk menyesuaikan CPU dan memori:Buat
ConfigMap
bernamakube-state-metrics-resizer-config
di Namespacekube-system
(gke-managed-metrics-server
untuk versi 1.13 atau yang lebih baru) dengan definisi berikut. Sesuaikan nomor CPU dan memori sesuai kebutuhan:apiVersion: v1 kind: ConfigMap metadata: name: kube-state-metrics-resizer-config namespace: kube-system data: NannyConfiguration: |- apiVersion: nannyconfig/v1alpha1 kind: NannyConfiguration baseCPU: 200m baseMemory: 1Gi cpuPerNode: 3m memoryPerNode: 20Mi ```
Setelah membuat ConfigMap, mulai ulang Deployment KSM dengan menghapus Pod KSM menggunakan perintah berikut:
kubectl -n kube-system rollout restart deployment kube-state-metrics
Untuk Google Distributed Cloud versi 1.9 dan yang lebih lama, 1.10.6 atau yang lebih lama, 1.11.2 atau versi sebelumnya, dan 1.12.1 atau versi sebelumnya:
- Tidak ada solusi jangka panjang yang baik - jika Anda mengedit sumber daya terkait KSM,
perubahan otomatis dikembalikan oleh
monitoring-operator
. - Anda dapat memperkecil skala
monitoring-operator
menjadi 0 replika, lalu mengedit Deployment KSM untuk menyesuaikan batas resource-nya. Namun, cluster tidak akan menerima {i>patch<i} kerentanan yang dikirimkan oleh rilis {i>patch<i} baru menggunakanmonitoring-operator
. Ingatlah untuk meningkatkan skalamonitoring-operator
setelah cluster diupgrade ke versi terbaru dengan perbaikan.
- Tidak ada solusi jangka panjang yang baik - jika Anda mengedit sumber daya terkait KSM,
perubahan otomatis dikembalikan oleh
Kurangi jumlah metrik dari KSM.
Untuk Google Distributed Cloud 1.13, KSM hanya mengekspos metrik dalam jumlah lebih sedikit yang disebut Metrik Inti secara default. Perilaku ini berarti bahwa penggunaan sumber daya lebih kecil dari versi sebelumnya, tetapi prosedur yang sama dapat diikuti untuk akan mengurangi jumlah metrik KSM.
Untuk versi Google Distributed Cloud sebelum 1.13, KSM menggunakan flag. Konfigurasi ini mengekspos metrik dalam jumlah besar.
Pengulangan error gke-metrics-agent
Jika gke-metrics-agent
hanya mengalami masalah memori habis di node tempat
kube-state-metrics
ada, penyebabnya adalah banyak kube-state-metrics
metrik. Untuk mengurangi masalah ini, perkecil stackdriver-operator
dan ubah
KSM untuk menampilkan serangkaian kecil metrik yang diperlukan seperti yang dijelaskan di bagian sebelumnya.
Jangan lupa untuk meningkatkan skala stackdriver-operator
setelah cluster diupgrade
ke Google Distributed Cloud 1.13, di mana KSM secara default mengekspos jumlah Core
Metrik.
gke-metric-agent
. Anda dapat menyesuaikan CPU dan memori untuk semua gke-metrics-agent
Pod dengan menambahkan
Kolom resourceAttrOverride
ke resource kustom Stackdriver.
Pengulangan error stackdriver-metadata-agent
Gejala
Tidak ada label metadata sistem yang tersedia saat memfilter metrik di Cloud Monitoring.
Penyebab
Kasus yang paling umum dari loop error stackdriver-metadata-agent
adalah karena
peristiwa kehabisan memori. Acara ini mirip dengan kube-state-metrics
. Meskipun
stackdriver-metadata-agent
tidak mencantumkan semua materi, tetap mencantumkan semua
objek untuk jenis resource yang relevan seperti Pod, Deployment, dan
NetworkPolicy. Agen berjalan sebagai Deployment replika tunggal, yang meningkatkan
risiko kehabisan memori jika jumlah objek terlalu besar.
Versi yang terpengaruh
Masalah ini dapat dialami pada versi Google Distributed Cloud apa pun.
Batas CPU dan memori default telah ditingkatkan dalam beberapa versi Google Distributed Cloud, sehingga masalah resource ini seharusnya jarang terjadi.
Perbaikan dan solusi
Untuk memeriksa apakah masalah Anda karena masalah kehabisan memori, tinjau langkah-langkah berikut:
- Gunakan
kubectl describe pod
ataukubectl get pod -o yaml
dan periksa error pesan status. - Periksa metrik pemakaian dan pemakaian memori untuk
stackdriver-metadata-agent
dan konfirmasi apakah sudah mencapai batas sebelum dimulai ulang.
resourceAttrOverride
dari resource kustom Stackdriver.
Pengulangan error metrics-server
Gejala
Horizontal Pod Autoscaler dan kubectl top
tidak berfungsi di cluster Anda.
Penyebab dan versi yang terpengaruh
Masalah ini tidak terlalu umum, tetapi disebabkan oleh error kehabisan memori atau dalam cluster dengan kepadatan Pod yang tinggi.
Masalah ini dapat dialami pada versi Google Distributed Cloud apa pun.
Perbaikan dan solusi
Meningkatkan batas resource server metrik.
Di Google Distributed Cloud versi 1.13 dan yang lebih baru, namespace metrics-server
dan konfigurasinya telah dipindahkan dari kube-system
ke
gke-managed-metrics-server
.
Langkah selanjutnya
Jika Anda memerlukan bantuan tambahan, hubungi Dukungan Google.