Masalah umum Config Sync

Halaman ini mencantumkan masalah umum untuk versi Config Sync yang didukung.

Banyak masalah yang tercantum di sini telah diperbaiki. Kolom Versi tetap menunjukkan versi tempat perbaikan diperkenalkan. Untuk menerima perbaikan ini, upgrade ke versi yang tercantum atau yang lebih baru.

Jika Anda adalah bagian dari Program Developer Google, simpan halaman ini untuk menerima notifikasi saat catatan rilis terkait halaman ini dipublikasikan. Untuk mempelajari lebih lanjut, lihat Halaman Tersimpan.

Untuk memfilter masalah umum menurut versi produk atau kategori masalah, pilih filter Anda dari menu drop-down berikut.

Pilih versi Config Sync Anda:

Pilih kategori masalah Anda:

Atau, filter masalah umum:

Kategori Versi yang diidentifikasi Versi tetap Masalah dan solusinya
Kondisi komponen 1.24.0

Pod Config Sync terhenti selama upgrade ke versi 1.24.0 di cluster yang dimigrasikan Hub

Setelah mengupgrade ke Config Sync 1.24.0, kolom yang dihapus (seperti readinessProbe dan health check untuk sidecar otel-agent) mungkin tetap ada di cluster yang dimigrasikan ke pengelolaan Hub. Karena komponen health check di balik readinessProbe dihapus, container otel-agent gagal dimulai, sehingga menyebabkan Pod Config Sync terhenti.

Masalah ini hanya memengaruhi cluster tempat Config Sync sebelumnya diinstal secara manual menggunakan kubectl dan kemudian beralih ke pengelolaan Hub. Kegagalan ini terjadi karena proses migrasi menangani pengelolaan kolom secara berbeda dari penginstalan baru. Untuk cluster yang diinstal secara manual atau cluster yang awalnya diinstal oleh Hub, kolom akan dihapus seperti yang diharapkan.

Solusi:

Untuk mengatasi masalah ini, ikuti petunjuk untuk meng-uninstal Config Sync, lalu instal ulang Config Sync melalui Hub.

Metrik 1.5.0 1.21.0

Diperbaiki: Metrik yang dilaporkan untuk paket yang dihapus

Jika Anda menghapus objek RootSync atau RepoSync, tetapi tidak menghapus objek ResourceGroup dengan nama yang sama, Config Sync akan terus melaporkan metrik berikut untuk objek ResourceGroup tersebut:

  • rg_reconcile_duration_seconds
  • resource_group_total
  • resource_count
  • ready_resource_count
  • resource_ns_count
  • cluster_scoped_resource_count
  • crd_count
  • kcc_resource_count
  • pipeline_error_observed
Objek ResourceGroup hanya dihapus secara otomatis jika propagasi penghapusan diaktifkan sebelum penghapusan objek RootSync atau RepoSync.

Solusi:

Hapus objek ResourceGroup:

kubectl delete resourcegroup RESOURCE_GROUP_NAME -n config-management-system

Ganti RESOURCE_GROUP_NAME dengan nama objek ResourceGroup yang perlu dihapus. Untuk mempelajari lebih lanjut tentang ResourceGroup penamaan, lihat Pengontrol ResourceGroup dan objek ResourceGroup.

Kondisi komponen 1.15.0

Reconciler tidak dapat dijadwalkan

Reconciler Config Sync memerlukan jumlah resource yang bervariasi, bergantung pada konfigurasi RootSync atau RepoSync. Konfigurasi tertentu memerlukan lebih banyak resource daripada konfigurasi lainnya.

Jika reconciler tidak dapat dijadwalkan, hal ini mungkin disebabkan oleh permintaan resource yang lebih banyak daripada yang tersedia di node Anda.

Jika Anda menggunakan cluster GKE mode standar, permintaan resource reconciler ditetapkan sangat rendah. Setelan ini dipilih dalam upaya untuk mengizinkan penjadwalan, meskipun akan menyebabkan pembatasan dan performa yang lambat, sehingga Config Sync berfungsi di cluster kecil dan node kecil. Namun, di cluster GKE Autopilot, permintaan reconciler ditetapkan lebih tinggi, untuk merepresentasikan penggunaan secara lebih realistis saat melakukan sinkronisasi.

Solusi:

GKE Autopilot or Standard with penyediaan otomatis node yang diaktifkan akan dapat melihat jumlah resource yang diminta dan membuat node berukuran sesuai untuk mengizinkan penjadwalan. Namun, jika Anda mengonfigurasi node atau ukuran instance node secara manual, Anda mungkin perlu menyesuaikan setelan tersebut untuk mengakomodasi persyaratan resource Pod reconciler.

Metrik 1.15.0

Proses ekspor gagal. Izin ditolak

Secara default, saat reconciler-manager mendeteksi Kredensial Default Aplikasi, otel-collector dikonfigurasi untuk mengekspor metrik ke Prometheus, Cloud Monitoring, dan Monarch.

Solusi:

otel-collector mencatat error jika Anda belum Mengonfigurasi Cloud Monitoring atau menyesuaikan filter metrik dan Cloud Monarch.

Metrik 1.15.0

otel-collector mengalami error dengan konfigurasi kustom

Jika Anda mencoba mengubah atau menghapus salah satu ConfigMap default, otel-collector atau otel-collector-google-cloud, otel-collector mungkin mengalami error atau error karena tidak dapat memuat ConfigMap yang diperlukan.

Solusi:

Untuk menyesuaikan konfigurasi ekspor metrik, buat ConfigMap bernama otel-collector-custom di namespace config-management-monitoring.

Perbaikan

Config Sync mengalami konflik dengan dirinya sendiri

Config Sync mungkin tampak mengalami konflik pengontrol. dengan dirinya sendiri. Masalah ini terjadi jika Anda menetapkan nilai default untuk kolom opsional resource di repositori Git. Misalnya, menetapkan apiGroup: "" untuk subjek RoleBinding akan memicu masalah ini karena kolom apiGroup bersifat opsional dan string kosong adalah nilai default. Nilai default kolom string, boolean, dan bilangan bulat adalah "", false, dan 0 (masing-masing).

Solusi:

Hapus kolom dari deklarasi resource.

Perbaikan

Config Sync mengalami konflik dengan resource Config Connector

Config Sync mungkin tampak mengalami konflik dengan Config Connector terkait resource, misalnya StorageBucket. Masalah ini terjadi jika Anda tidak menetapkan nilai kolom opsional resource spec.lifecycleRule.condition.withState di sumber kebenaran.

Solusi:

Anda dapat menghindari masalah ini dengan menambahkan kolom withState=ANY field pada deklarasi resource. Atau, Anda dapat mengabaikan lalu mendapatkan kembali resource dengan cnrm.cloud.google.com/state-into-spec: absent anotasi.

Sumber kebenaran 1.20.0 1.21.3

Loop error container git-sync setelah file kunci Git menjadi tidak terhubung

Jika Anda melihat loop error container git-sync dengan error yang mirip dengan berikut dalam log container git-sync, pemanggilan git sebelumnya mungkin gagal dan meninggalkan file kunci yang tidak terhubung di container:

    {"logger":""..."msg":"repo contains lock file","error":null,"path":"/repo/source/.git/shallow.lock"}
    ...runtime error: invalid memory address or nil pointer dereference
    

Solusi:

Untuk mengatasi masalah ini, mulai ulang Pod reconciler yang terpengaruh untuk memberinya volume sementara baru:

    kubectl delete pod -n config-management-system RECONCILER_NAME
    
Ganti RECONCILER_NAME dengan nama reconciler objek RootSync atau RepoSync.
Menyinkronkan 1.7.0 1.21.0

Diperbaiki: Anotasi mutasi yang diabaikan tidak dipatuhi

Bug di reconciler Config Sync menyebabkan reconciler menerapkan perubahan dari konfigurasi yang dideklarasikan meskipun anotasi client.lifecycle.config.k8s.io/mutation ada. Hal ini dapat menyebabkan status objek di cluster ditimpa.

Solusi:

Anda dapat berhenti mengelola objek terkelola dengan menambahkan anotasi configmanagement.gke.io/managed: disabled. Namun, menonaktifkan pengelolaan akan mencegah Config Sync membuat ulang objek jika objek tersebut dihapus dari cluster. Tindakan ini juga mencegah pembaruan lebih lanjut di sumber kebenaran diterapkan.

Menyinkronkan 1.15.0

Jumlah permintaan PATCH yang tidak efektif dalam log audit

Remediator Config Sync menggunakan Dry-run untuk mendeteksi penyimpangan. Hal ini dapat menyebabkan permintaan PATCH muncul di log audit, meskipun PATCH tidak dipertahankan, karena log audit tidak membedakan antara dry-run dan permintaan normal.

Solusi:

Karena log audit tidak dapat membedakan antara permintaan dry-run dan non-dry-run, Anda dapat mengabaikan permintaan PATCH.
Menyinkronkan 1.7.0 1.21.0

Diperbaiki: Gagal menulis inventaris yang diperbarui ke cluster

Jika Config Sync gagal memperbarui status objek ResourceGroup, Anda mungkin mengalami error sesekali di log reconciler yang mirip dengan berikut:

    KNV2009: task failed (action: "Inventory", name: "inventory-set-0"): failed to write updated inventory to cluster: Operation cannot be fulfilled on resourcegroups.kpt.dev "root-sync": the object has been modified; please apply your changes to the latest version and try again
    

Error ini disebabkan oleh kondisi race antara reconciler dan Pengontrol ResourceGroup. Pengontrol ResourceGroup mungkin memperbarui status ResourceGroup sebelum reconciler dapat memperbarui spesifikasi ResourceGroup, sehingga menyebabkan error KNV2009.

Solusi:

Masalah ini tidak memiliki solusi. Error akan teratasi dengan sendirinya.

Terraform Terraform versi 5.41.0

Config Sync tidak dapat diinstal atau diupgrade menggunakan Terraform

Terraform versi 5.41.0 memperkenalkan kolom baru ke resource google_gke_hub_feature_membership: config_sync.enabled. Karena nilai default kolom ini adalah false, jika kolom ini tidak ditetapkan secara eksplisit ke true, hal ini akan menyebabkan penginstalan atau upgrade Config Sync gagal saat menggunakan Terraform versi 5.41.0 atau yang lebih baru. Anda mungkin juga melihat pesan error yang menyatakan git spec not included in configmanagement spec jika masalah ini terjadi.

Solusi:

  • Jika Anda menggunakan resource google_gke_hub_feature_membership, tetapkan config_sync.enabled ke true secara manual.
  • Jika Anda menggunakan submodul acm, sebaiknya beralih ke cara alternatif untuk menginstal Config Sync. Jika Anda tidak dapat beralih, upgrade ke v33.0.0.

Google Cloud console

Dasbor Config Sync tidak menampilkan error data di Google Cloud console

Anda mungkin melihat error seperti "data tidak ada" atau "kredensial cluster tidak valid" untuk cluster Config Sync di dasbor di the Google Cloud console. Masalah ini dapat terjadi jika Anda tidak login ke cluster GDC (VMware) atau GDC (bare metal).

Solusi:

Jika Anda melihat jenis error ini di Google Cloud console pada cluster GDC (VMware) atau GDC (bare metal), pastikan Anda login ke cluster dengan GKE Identity Service atau connect gateway.

Menyinkronkan 1.21.0

Diperbaiki: Config Sync mencegah pembaruan resource yang diabaikan

Sebelum versi 1.21.0, objek RootSync atau RepoSync yang dihapus dapat meninggalkan beberapa label dan anotasi yang digunakan Config Sync untuk melacak objek resource ini.

Label dan anotasi ini dapat menyebabkan efek samping berikut setelah objek RootSync atau RepoSync dihapus:

  • Objek RepoSync lainnya tidak dapat mengambil kepemilikan objek yang sebelumnya dikelola.
  • Jika pencegahan penyimpangan diaktifkan, hal ini dapat menyebabkan Config Sync menolak perubahan pada resource yang diabaikan.

alat command line nomos 1.17.0

CLI nomos tidak mendukung plugin autentikasi oidc

Anda mungkin melihat error seperti no Auth Provider found for name "oidc" saat menggunakan alat command line nomos. Masalah ini mungkin terjadi saat Anda menggunakan plugin autentikasi oidc.

Solusi:

Tidak ada solusinya. Plugin autentikasi oidc akan ditambahkan kembali dalam rilis berikutnya.

Kembali ke atas

Langkah berikutnya

  • Jika Anda tidak dapat menemukan solusi untuk masalah Anda dalam dokumentasi, lihat Mendapatkan dukungan untuk mendapatkan bantuan lebih lanjut, termasuk saran tentang topik berikut: