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 yang diperbaiki 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 yang terkait dengan halaman ini dipublikasikan. Untuk mempelajari lebih lanjut, lihat Halaman Tersimpan.

Untuk memfilter masalah umum menurut versi produk atau kategori masalah, pilih filter 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 solusi
Kondisi komponen 1.15.0

Rekonsiliator tidak dapat dijadwalkan

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

Jika rekonsiliator tidak dapat dijadwalkan, hal ini mungkin karena meminta lebih banyak resource daripada yang tersedia di node Anda.

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

Solusi:

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

Metrik 1.15.0 1.17.2

Perbaikan: Ekspor gagal: Label metrik tidak dikenal

Pada versi 1.15.0, Config Sync menambahkan label type dan commit ke banyak metrik. Label ini meningkatkan kardinalitas metrik, yang meningkatkan jumlah metrik yang diekspor. Pemrosesan atribut juga ditambahkan untuk memfilter label ini saat mengekspor ke Cloud Monarch, tetapi pemfilteran ini salah dikonfigurasi, sehingga menyebabkan error transformasi dalam log otel-collector.

Metrik 1.15.0

Ekspor gagal. Izin ditolak

Secara default, saat pengelola rekonsiliasi 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 Menonaktifkan Cloud Monitoring 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.

nomos cli 1.15.0 1.17.2

Perbaikan: nomos status dan nomos bugreport tidak berfungsi di Pod

Sebelum nomos versi 1.17.2, nomos bugreport dan nomos status hanya dapat terhubung ke cluster lokal saat dijalankan di dalam Pod Kubernetes. Di nomos versi 1.17.2, metode otorisasi diubah agar berfungsi lebih seperti kubectl. Karena perubahan ini, cluster lokal ditargetkan secara default. Anda dapat mengganti konfigurasi dengan menentukan variabel lingkungan KUBECONFIG.

Pemulihan

Config Sync bertentangan dengan dirinya sendiri

Config Sync mungkin tampak seperti dalam perang 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 hal ini karena kolom apiGroup bersifat opsional dan string kosong adalah nilai defaultnya. Nilai default kolom string, boolean, dan bilangan bulat adalah "", false, dan 0 (masing-masing).

Solusi:

Hapus kolom dari deklarasi resource.

Pemulihan

Config Sync bertentangan dengan resource Config Connector

Config Sync mungkin tampak bertarung Config Connector untuk resource, misalnya StorageBucket. Masalah ini terjadi jika Anda tidak menetapkan nilai kolom opsional dari resource spec.lifecycleRule.condition.withState di sumber tepercaya.

Solusi:

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

Sumber tepercaya 1.17.3 1.18.3

Perbaikan: Kegagalan Autentikasi SSH Git dengan GitHub

git-sync v4.2.1 memiliki bug yang menghapus nama pengguna dari URL repositori saat menggunakan SSH, sehingga menyebabkan autentikasi gagal saat menghubungkan ke GitHub, yang mengharuskan pengguna menjadi git.

Pesan error dari git adalah: git-sync@github.com: Permission denied (publickey).\r\nfatal: Could not read from remote repository.

Solusi:

Gunakan metode autentikasi yang berbeda.

Sumber tepercaya 1.15.0 1.18.0

Diperbaikan: Kredensial autentikasi yang tidak valid secara berkala untuk Cloud Source Repositories

Config Sync dapat mengalami error secara berkala saat masa berlaku token autentikasi untuk Cloud Source Repositories berakhir. Masalah ini disebabkan oleh pembaruan token yang menunggu hingga habis masa berlakunya sebelum memperbarui token.

Pada versi 1.18.0 dan yang lebih baru, token dimuat ulang pada permintaan pertama dalam waktu lima menit setelah masa berlaku token berakhir. Tindakan ini mencegah error kredensial autentikasi yang tidak valid, kecuali jika kredensial benar-benar tidak valid.

Sumber tepercaya 1.15.0 1.17.0

Memperbaiki: Error saat menyinkronkan repositori: batas waktu konteks terlampaui

Pada versi sebelum 1.17.0, Config Sync memeriksa histori repositori Git lengkap secara default. Hal ini dapat menyebabkan waktu permintaan pengambilan habis di repositori besar dengan banyak commit.

Pada versi 1.17.0 dan yang lebih baru, pengambilan Git dilakukan dengan --depth=1, yang hanya mengambil commit terbaru. Tindakan ini akan mempercepat pengambilan sumber, menghindari sebagian besar waktu tunggu habis, dan mengurangi beban server Git.

Jika Anda masih mengalami masalah ini setelah mengupgrade, kemungkinan Sumber tepercaya Anda memiliki banyak file, server Git Anda merespons dengan lambat, atau ada beberapa masalah jaringan lainnya.

Sumber tepercaya 1.13.0

Tidak dapat membuat token akses untuk sumber OCI

Jika Config Sync dikonfigurasi untuk menggunakan OCI sebagai sumber tepercaya dan mengautentikasi dengan Workload Identity Federation untuk GKE, Config Sync mungkin terkadang mengalami error sementara saat mencoba mengautentikasi dengan registry penampung, karena masalah saat memuat ulang token ID.

Masalah ini disebabkan oleh library oauth2 yang hanya memuat ulang token autentikasi setelah token tersebut habis masa berlakunya.

Pesan error mungkin mencakup: "oauth2/google: unable to generate access token" atau "ID Token issued at (xxx) is stale to sign-in".

Solusi:

Error akan teratasi dengan sendirinya saat Config Sync mencoba mengambil dari sumber tepercaya lagi.

Jika Config Sync mengalami error beberapa kali, Config Sync akan mencoba lagi dengan frekuensi yang semakin jarang. Jika ingin memaksanya untuk mencoba lagi lebih cepat, Anda dapat menghapus pod rekonsiliator, yang menyebabkan pod tersebut dibuat ulang dan segera diambil dari sumber tepercaya.

Menyinkronkan 1.15.0

Jumlah permintaan PATCH yang tidak efektif dalam log audit yang tinggi

Pemulih Config Sync menggunakan Pengujian coba untuk mendeteksi penyimpangan. Hal ini dapat menyebabkan permintaan PATCH muncul di log audit, meskipun PATCH tidak dipertahankan, karena log audit tidak membedakan antara uji coba 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.17.0 1.17.3

Perbaikan: Config Sync gagal mengambil commit terbaru dari cabang

Di Config Sync versi 1.17.0, 1.17.1, dan 1.17.2, Anda mungkin mengalami masalah saat Config Sync gagal menarik commit terbaru dari HEAD cabang tertentu saat cabang yang sama direferensikan di beberapa remote dan tidak sinkron. Misalnya, cabang main dari repositori jarak jauh origin mungkin lebih maju dari cabang yang sama di repositori jarak jauh upstream, tetapi Config Sync hanya mengambil SHA commit dari baris terakhir, yang mungkin bukan commit terbaru.

Contoh berikut menunjukkan tampilan masalah ini:

git ls-remote -q [GIT_REPOSITORY_URL] main  main^{}
244999b795d4a7890f237ef3c8035d68ad56515d    refs/heads/main               # the latest commit
be2c0aec052e300028d9c6d919787624290505b6    refs/remotes/upstream/main    # the commit Config Sync pulls from

Pada versi 1.17.3 dan yang lebih baru, dependensi git-sync telah diupdate dengan mekanisme pengambilan yang berbeda.

Jika tidak dapat mengupgrade, Anda dapat menetapkan revisi Git (spec.git.revision) ke SHA commit terbaru, terlepas dari nilai yang ditetapkan untuk cabang Git (spec.git.branch). Untuk informasi selengkapnya tentang konfigurasi Git, lihat Konfigurasi untuk repositori Git.

Registry pribadi 1.19.0

Config Sync tidak menggunakan registry pribadi untuk Deployment rekonsiliator

Sinkronisasi Konfigurasi akan mengganti image untuk semua Deployment saat registry pribadi dikonfigurasi. Namun, Config Sync tidak mengganti registry image untuk image di Deployment rekonsiliator.

Solusi:

Solusi untuk masalah ini adalah mengonfigurasi cermin registry image di containerd.

Menyinkronkan 1.17.0 1.18.3

Perbaikan: Penggabungan Config Sync mengalami crashloop

Di Config Sync versi 1.17.0 atau yang lebih baru, Anda mungkin mengalami masalah saat rekonsiliator gagal membuat konfigurasi rest di beberapa penyedia Kubernetes.

Contoh berikut menunjukkan tampilan masalah ini di log rekonsiliator:

Error creating rest config: failed to build rest config: reading local kubeconfig: loading REST config from "/.kube/config": stat /.kube/config: no such file or directory
Terraform Terraform versi 5.41.0

Config Sync tidak dapat diinstal atau diupgrade menggunakan Terraform

Terraform versi 5.41.0 memperkenalkan kolom baru ke google_gke_hub_feature_membership: config_sync.enabled. Karena nilai default kolom ini adalah false, hal ini menyebabkan penginstalan Config Sync gagal saat Terraform diupgrade ke versi 5.41.0.

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.

Konsol Google Cloud

Dasbor Config Sync tidak menampilkan data karena error di konsol Google Cloud

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

Solusi:

Jika Anda melihat jenis error ini di konsol Google Cloud pada cluster GDC (VMware) atau GDC (bare metal), pastikan Anda login ke cluster dengan Layanan Identitas GKE atau gateway koneksi.

Kembali ke atas

Langkah selanjutnya