Memecahkan masalah kemampuan observasi Google Distributed Cloud

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 bagian cloudAuditLogging 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.
  • 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 atau kubectl 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:

      1. Buat ConfigMap bernama kube-state-metrics-resizer-config di Namespace kube-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
          ```
        
      2. 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 menggunakan monitoring-operator. Ingatlah untuk meningkatkan skala monitoring-operator setelah cluster diupgrade ke versi terbaru dengan perbaikan.
  • 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.

Untuk masalah yang tidak terkait dengan peristiwa kehabisan memori, periksa log Pod dari 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 atau kubectl 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.
Jika Anda mengonfirmasi bahwa masalah kehabisan memori menyebabkan masalah, tingkatkan batas memori di Kolom 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.