Dokumen ini membantu Anda memecahkan masalah visibilitas di Google Distributed Cloud. Jika Anda mengalami salah satu masalah ini, tinjau perbaikan dan solusi yang disarankan.
Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.
Cloud Audit Logs tidak dikumpulkan
Cloud Audit Logs diaktifkan secara default, kecuali jika ada flagdisableCloudAuditLogging
yang ditetapkan di bagian clusterOperations
dari
konfigurasi cluster.
Jika Cloud Audit Logs diaktifkan, izin adalah alasan paling umum log tidak dikumpulkan. Dalam skenario ini, pesan error izin ditolak ditampilkan di penampung proxy Cloud Audit Logs.
Penampung proxy Cloud Audit Logs berjalan sebagai DaemonSet di semua cluster Google Distributed Cloud.Jika Anda melihat error izin, ikuti langkah-langkah untuk memecahkan masalah dan mengatasi masalah izin.
Kemungkinan penyebab lainnya adalah project Anda mungkin telah mencapai batas akun layanan yang didukung, lihat Akun layanan Cloud Audit Logs bocor.
Metrik kube-state-metrics
tidak dikumpulkan
kube-state-metrics
(KSM) berjalan sebagai Deployment replika tunggal dalam cluster
dan menghasilkan metrik di hampir semua resource dalam cluster. Jika 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_
berasal 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. Pastikan Pod KSM tidak dibatasi oleh resource yang tidak memadai.- Jika metrik API ringkasan ini tidak tersedia untuk KSM,
gke-metrics-agent
di node 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 Pod
gke-metrics-agent
di node yang sama dengan KSM.
kube-state-metrics
loop error
Gejala
Tidak ada metrik dari kube-state-metrics
(KSM) yang tersedia dari Cloud Monitoring.
Penyebab
Skenario ini cenderung terjadi di cluster besar, atau cluster dengan resource dalam jumlah besar. KSM berjalan sebagai Deployment replika tunggal dan mencantumkan hampir semua resource di cluster seperti Pod, Deployment, DaemonSet, ConfigMap, Secret, dan PersistentVolume. Metrik dihasilkan di setiap objek resource ini. 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 terjadi di Google Distributed Cloud versi apa pun.
Batas CPU dan memori default telah ditingkatkan dalam beberapa versi Google Distributed Cloud terakhir, sehingga masalah resource ini seharusnya tidak terlalu sering terjadi.
Perbaikan dan solusi
Untuk memeriksa apakah masalah Anda disebabkan oleh masalah kehabisan memori, tinjau langkah-langkah berikut:
- Gunakan
kubectl describe pod
ataukubectl get pod -o yaml
dan periksa pesan status error. - Periksa metrik penggunaan dan pemakaian memori untuk KSM dan pastikan apakah metrik tersebut mencapai batas sebelum dimulai ulang.
Jika Anda mengonfirmasi bahwa masalah kehabisan memori adalah masalahnya, gunakan salah satu solusi berikut:
Meningkatkan permintaan dan batas memori untuk KSM.
Untuk Google Distributed Cloud versi 1.16.0 atau yang lebih baru, Google Cloud Observability mengelola KSM. Untuk mengupdate KSM, lihat Mengganti permintaan dan batas CPU serta memori default untuk komponen Stackdriver.
Untuk versi yang lebih lama dari 1.16.0, guna menyesuaikan CPU dan memori KSM, gunakan resourceOverride resource kustom Stackdriver untuk
kube-state-metrics
.
Kurangi jumlah metrik dari KSM.
Untuk Google Distributed Cloud 1.13, KSM hanya mengekspos sejumlah kecil metrik yang disebut Metrik Inti secara default. Perilaku ini berarti bahwa penggunaan resource lebih kecil daripada versi sebelumnya, tetapi prosedur yang sama dapat diikuti untuk lebih lanjut mengurangi jumlah metrik KSM.
Untuk Google Distributed Cloud versi yang lebih lama dari 1.13, KSM menggunakan flag default. Konfigurasi ini mengekspos sejumlah besar metrik.
gke-metrics-agent
loop error
Jika gke-metrics-agent
hanya mengalami masalah kehabisan memori di node tempat
kube-state-metrics
berada, penyebabnya adalah banyaknya metrik
kube-state-metrics
. Untuk memitigasi masalah ini, skalakan stackdriver-operator
dan ubah
KSM untuk mengekspos sekumpulan kecil metrik yang diperlukan seperti yang dijelaskan di bagian sebelumnya.
Jangan lupa untuk menskalakan kembali stackdriver-operator
setelah cluster diupgrade
ke Google Distributed Cloud 1.13 tempat KSM secara default mengekspos lebih sedikit Metrik
Inti.
gke-metric-agent
. Anda dapat menyesuaikan CPU dan memori untuk semua Pod gke-metrics-agent
dengan menambahkan
kolom resourceAttrOverride
ke resource kustom Stackdriver.
stackdriver-metadata-agent
loop error
Gejala
Tidak ada label metadata sistem yang tersedia saat memfilter metrik di Cloud Monitoring.
Penyebab
Kasus paling umum dari loop error stackdriver-metadata-agent
adalah karena
peristiwa kehabisan memori. Peristiwa ini mirip dengan kube-state-metrics
. Meskipun
stackdriver-metadata-agent
tidak mencantumkan semua resource, stackdriver-metadata-agent
tetap mencantumkan semua
objek untuk jenis resource yang relevan seperti Pod, Deployment, dan
NetworkPolicy. Agen berjalan sebagai Deployment replika tunggal, yang meningkatkan
risiko peristiwa kehabisan memori jika jumlah objek terlalu besar.
Versi yang terpengaruh
Masalah ini dapat terjadi di Google Distributed Cloud versi apa pun.
Batas CPU dan memori default telah ditingkatkan dalam beberapa versi Google Distributed Cloud terakhir, sehingga masalah resource ini seharusnya tidak terlalu umum.
Perbaikan dan solusi
Untuk memeriksa apakah masalah Anda disebabkan oleh masalah kehabisan memori, tinjau langkah-langkah berikut:
- Gunakan
kubectl describe pod
ataukubectl get pod -o yaml
dan periksa pesan status error. - Periksa metrik penggunaan dan konsumsi memori untuk
stackdriver-metadata-agent
dan konfirmasi apakah mencapai batas sebelum dimulai ulang.
resourceAttrOverride
resource kustom Stackdriver.
metrics-server
loop error
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 di cluster besar atau di cluster dengan kepadatan Pod yang tinggi.
Masalah ini dapat terjadi di Google Distributed Cloud versi 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
.
metrics-server-operator
ke bawah dan ubah pod metrics-server
secara manual.
Tidak semua resource dihapus selama penghapusan akun layanan Cloud Audit Logs
Saat Anda menghapus akun layanan yang digunakan untuk Cloud Audit Logs, tidak semua resource Google Cloudakan dihapus. Jika Anda secara rutin menghapus dan membuat ulang akun layanan yang digunakan untuk Cloud Audit Logs, log audit pada akhirnya akan mulai gagal.
Gejala
Pesan error izin ditolak ditampilkan di penampung proxy Cloud Audit Logs.
Untuk mengonfirmasi bahwa kegagalan log audit disebabkan oleh masalah ini, jalankan perintah berikut:
curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://gkehub.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/global/features/cloudauditlogging
Ganti PROJECT_NUMBER
dengan nomor project Anda.
Respons menampilkan semua akun layanan yang digunakan dengan Cloud Audit Logs di project, termasuk akun layanan yang telah dihapus.
Penyebab dan versi yang terpengaruh
Tidak semua Google Cloud resource dihapus saat Anda menghapus akun layanan yang digunakan untuk Cloud Audit Logs, dan pada akhirnya Anda mencapai batas 1.000 akun layanan untuk project.
Masalah ini dapat terjadi di Google Distributed Cloud versi apa pun.
Perbaikan dan solusi
Buat variabel lingkungan yang berisi daftar semua akun layanan yang ingin Anda pertahankan, yang dipisahkan koma. Sertakan setiap email akun layanan dengan tanda kutip tunggal, dan sertakan seluruh daftar dengan tanda kutip ganda. Anda dapat menggunakan hal berikut sebagai titik awal:
SERVICE_ACCOUNT_EMAILS="'SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com'"
Ganti kode berikut:
PROJECT_ID
: project ID Anda.SERVICE_ACCOUNT_NAME
: nama akun layanan.
Daftar yang sudah selesai akan terlihat seperti contoh berikut:
"'sa_name1@example-project-12345.iam.gserviceaccount.com','sa_name2@example-project-12345.iam.gserviceaccount.com','sa_name3@example-project-12345.iam.gserviceaccount.com'"
Jalankan perintah berikut untuk menghapus fitur Cloud Audit Logs dari project:
curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://gkehub.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/FLEET_REGION /features/cloudauditlogging
Ganti kode berikut:
PROJECT_NUMBER
: nomor project.FLEET_REGION
: lokasi keanggotaan fleet untuk cluster Anda. Ini dapat berupa wilayah tertentu sepertius-central1
atauglobal
. Anda dapat menjalankan perintahgcloud container fleet memberships list
untuk mendapatkan lokasi langganan.
Perintah ini akan menghapus semua akun layanan sepenuhnya.
Buat ulang fitur Cloud Audit Logs hanya dengan akun layanan yang ingin Anda simpan:
curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://gkehub.googleapis.com/v1alpha/projects/PROJECT_NUMBER/locations/FLEET_REGION/features?feature_id=cloudauditlogging \ -d '{"spec":{"cloudauditlogging":{"allowlistedServiceAccounts":[$SERVICE_ACCOUNT_EMAILS]}}}'
Langkah berikutnya
Jika Anda memerlukan bantuan tambahan, hubungi Cloud Customer Care.