Memecahkan masalah GKE pada kemampuan observasi VMware

Dokumen ini membantu Anda memecahkan masalah kemampuan observasi di Google Distributed Cloud Virtual for VMware. Jika mengalami salah satu masalah ini, tinjau perbaikan dan solusi yang disarankan.

Jika Anda memerlukan bantuan lainnya, hubungi Dukungan Google.

Cloud Audit Logs tidak dikumpulkan

Periksa apakah Cloud Audit Logs diaktifkan di bagian cloudAuditLogging pada konfigurasi cluster. Pastikan project ID, lokasi, dan kunci akun layanan dikonfigurasi dengan benar. Project ID harus sama dengan project ID di gkeConnect.

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.

Container 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 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 dalam cluster dan menghasilkan metrik di hampir semua resource dalam cluster. Jika KSM dan gke-metrics-agent berjalan di node yang sama, risiko pemadaman layanan di antara agen metrik pada semua node akan lebih besar.

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 cukup.
    • Jika metrik API ringkasan ini tidak tersedia untuk KSM, gke-metrics-agent pada node yang sama mungkin juga memiliki masalah yang sama.
  • Di cluster, periksa status dan log Pod KSM dan Pod gke-metrics-agent pada node yang sama dengan KSM.

kube-state-metrics error berulang

Gejala

Tidak ada metrik dari kube-state-metrics (KSM) yang tersedia dari Cloud Monitoring.

Penyebab

Skenario ini lebih mungkin terjadi pada cluster besar, atau cluster dengan resource dalam jumlah besar. KSM berjalan sebagai Deployment replika tunggal dan mencantumkan hampir semua resource dalam cluster seperti Pod, Deployment, DaemonSets, ConfigMaps, Secret, dan PersistentVolumes. Metrik dibuat di setiap objek resource ini. Jika salah satu resource memiliki banyak objek, seperti cluster dengan lebih dari 10.000 Pod, KSM berpotensi akan kehabisan memori.

Versi yang terpengaruh

Masalah ini mungkin terjadi pada versi Google Distributed Cloud Virtual for VMware apa pun.

Batas CPU dan memori default telah ditingkatkan dalam beberapa versi Google Distributed Cloud Virtual for VMware terakhir, sehingga masalah resource ini seharusnya jarang terjadi.

Perbaikan dan solusi

Untuk memeriksa apakah masalah Anda disebabkan oleh masalah memori habis, tinjau langkah-langkah berikut:

  • Gunakan kubectl describe pod atau kubectl get pod -o yaml dan periksa pesan status error.
  • Periksa metrik pemakaian dan pemanfaatan memori untuk KSM dan konfirmasi apakah sudah mencapai batas sebelum dimulai ulang.

Jika Anda mengonfirmasi bahwa masalahnya adalah memori habis, gunakan salah satu solusi berikut:

  • Tingkatkan permintaan dan batas memori untuk KSM.

    Untuk menyesuaikan CPU dan memori KSM:

    1. Untuk Google Distributed Cloud Virtual for VMware versi 1.9 dan yang lebih lama, 1.10.6 atau yang lebih lama, 1.11.2 atau yang lebih lama, dan 1.12.1 atau yang lebih lama:

      1. Tidak ada solusi jangka panjang yang baik - jika Anda mengedit resource terkait KSM, perubahan akan otomatis dikembalikan paling lambat monitoring-operator.
      2. Anda dapat menurunkan skala monitoring-operator menjadi 0 replika, lalu mengedit Deployment KSM untuk menyesuaikan batas resource-nya. Namun, cluster tidak akan menerima patch kerentanan yang dikirimkan oleh rilis patch baru menggunakan monitoring-operator.

        Jangan lupa menskalakan monitoring-operator kembali setelah cluster diupgrade ke versi yang lebih baru dengan perbaikan.

    2. Untuk Google Distributed Cloud Virtual for VMware versi 1.10.7 atau yang lebih baru, 1.11.3 atau yang lebih baru, 1.12.2 atau yang lebih baru, serta 1.13 dan yang lebih baru, buat ConfigMap bernama kube-state-metrics-resizer-config dalam namespace kube-system (gke-managed-metrics-server untuk 1.13 atau yang lebih baru) dengan definisi berikut. Sesuaikan nomor CPU dan memori sesuai keinginan:

      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
      
      1. Setelah membuat ConfigMap, mulai ulang Deployment KSM dengan menghapus Pod KSM menggunakan perintah berikut:

          kubectl -n kube-system rollout restart deployment kube-state-metrics
          ```
        

  • Kurangi jumlah metrik dari KSM.

    Untuk Google Distributed Cloud Virtual for VMware 1.13, KSM hanya mengekspos lebih sedikit 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 mengurangi jumlah metrik KSM lebih lanjut.

    Untuk Google Distributed Cloud Virtual for VMware versi yang lebih lama dari 1.13, KSM menggunakan flag default. Konfigurasi ini mengekspos sejumlah besar metrik.

gke-metrics-agent error berulang

Jika gke-metrics-agent hanya mengalami masalah memori habis pada node yang memiliki kube-state-metrics, penyebabnya adalah jumlah metrik kube-state-metrics yang besar. Untuk mengurangi masalah ini, turunkan skala stackdriver-operator dan ubah KSM untuk menampilkan kumpulan kecil metrik yang diperlukan seperti yang dijelaskan di bagian sebelumnya. Ingatlah untuk meningkatkan skala stackdriver-operator setelah cluster diupgrade ke Google Distributed Cloud Virtual for VMware 1.13 tempat KSM secara default mengekspos jumlah Core Metrics yang lebih kecil.

Untuk masalah yang tidak terkait dengan peristiwa kehabisan memori, periksa log Pod 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 error berulang

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, kode ini 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 mungkin terjadi pada versi Google Distributed Cloud Virtual for VMware apa pun.

Batas CPU dan memori default telah ditingkatkan dalam beberapa versi Google Distributed Cloud Virtual for VMware terakhir, sehingga masalah resource ini seharusnya jarang terjadi.

Perbaikan dan solusi

Untuk memeriksa apakah masalah Anda disebabkan oleh masalah memori habis, tinjau langkah-langkah berikut:

  • Gunakan kubectl describe pod atau kubectl get pod -o yaml dan periksa pesan status error.
  • 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 pada resource kustom Stackdriver.

metrics-server error berulang

Gejala

Autoscaler Pod Horizontal dan kubectl top tidak berfungsi di cluster Anda.

Penyebab dan versi yang terpengaruh

Masalah ini tidak terlalu umum, tetapi disebabkan oleh error kehabisan memori dalam cluster besar atau dalam cluster dengan kepadatan Pod yang tinggi.

Masalah ini mungkin terjadi pada versi Google Distributed Cloud Virtual for VMware apa pun.

Perbaikan dan solusi

Meningkatkan batas resource server metrik. Di Google Distributed Cloud Virtual for VMware 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 lainnya, hubungi Dukungan Google.