Referensi error
Halaman ini menjelaskan kode error Config Sync dan tindakan yang disarankan untuk menangani error ini.
Pesan error Config Sync terdiri dari ID error dalam format KNV1234
dengan 1234
sebagai nomor unik, diikuti dengan deskripsi masalah dan saran cara memperbaikinya. K
diwarisi dari konvensi Kubernetes, aturan dengan awalan N
khusus untuk nomos
, V
khusus untuk error yang dapat terdeteksi dalam status awal repositori dan cluster. Kode untuk error yang dapat terdeteksi dalam status awal repositori dan cluster berbentuk KNV1XXX
. Kode untuk error yang hanya dapat dideteksi saat runtime memiliki bentuk KNV2XXX
.
Tabel error KNV
Kode error | Deskripsi | Tindakan yang disarankan |
---|---|---|
|
ID InternalError diubah menjadi |
T/A |
|
Tidak digunakan lagi di Config Sync 1.3. |
T/A |
|
Tidak digunakan lagi di Config Sync 1.3. |
T/A |
|
Saat menggunakan struktur repositori hierarkis, direktori yang berisi konfigurasi namespace tidak boleh berisi subdirektori mana pun. Direktori tanpa konfigurasi namespace adalah direktori namespace abstrak dan memiliki direktori yang mewarisinya. Oleh karena itu, direktori namespace abstrak harus memiliki subdirektori. Direktori yang berisi konfigurasi namespace adalah direktori namespace dan tidak boleh diwariskan, sehingga tidak boleh memiliki subdirektori. |
Hapus konfigurasi namespace dari direktori induk, atau pindahkan subdirektori ke tempat lain. |
|
Objek cakupan cluster tidak boleh mendeklarasikan anotasi
|
Hapus |
|
Satu-satunya setelan yang valid untuk anotasi pengelolaan adalah
|
Pastikan anotasi pengelolaannya adalah
Untuk informasi selengkapnya, lihat Mengelola objek. |
|
Objek yang dideklarasikan dalam repositori tidak dapat diurai. |
Validasi format YAML Anda. Misalnya, Anda dapat menggunakan
perintah
Jika |
|
Saat menggunakan repositori tidak terstruktur, konfigurasi tidak boleh dideklarasikan dalam direktori namespace abstrak. |
Pindahkan konfigurasi yang tercantum dalam pesan error ke direktori namespace. Untuk informasi selengkapnya, lihat Menggunakan repositori tidak terstruktur. |
|
Saat menggunakan struktur repositori hierarkis, konfigurasi harus mendeklarasikan namespace yang cocok dengan direktori namespace yang memuatnya atau menghilangkan kolom ini. |
Perbarui kolom namespace yang diidentifikasi dalam pesan error. Untuk informasi selengkapnya, lihat Struktur repositori hierarkis. |
|
Konfigurasi tidak boleh mendeklarasikan anotasi yang tidak didukung yang dimulai dengan |
Pastikan Anda menggunakan salah satu anotasi yang didukung berikut ini:
|
|
Konfigurasi tidak boleh memiliki label dengan kunci yang diawali dengan |
Perbarui setiap label yang diidentifikasi dalam pesan error. Misalnya, jika
Anda mencoba mendeklarasikan label bernama |
|
Tidak digunakan lagi di Config Sync 1.3. |
T/A |
|
Konfigurasi merujuk ke ClusterSelector atau NamespaceSelector yang tidak ada. Sebelum Anda dapat menggunakan pemilih dalam anotasi untuk konfigurasi, pemilih harus ada. |
Buat pemilih yang tidak ada, atau, jika pemilih dihapus, hapus konfigurasi apa pun yang merujuk pada pemilih tersebut. |
|
Konfigurasi ClusterSelector dan NamespaceSelector menggunakan sintaksis yang benar, tetapi ditemukan error sintaksis. |
Pastikan Anda menentukan konfigurasi menggunakan skema data yang sesuai: |
|
Tidak digunakan lagi di Config Sync 1.3.2. | T/A |
|
Saat menggunakan struktur repositori hierarkis, konfigurasi untuk Operator ConfigManagement harus ada di direktori |
Tentukan setidaknya konfigurasi minimal untuk ConfigManagement Operator. Untuk mengetahui informasi selengkapnya, lihat Struktur repositori hierarkis. |
|
Tidak digunakan lagi di Config Sync 1.3. | T/A |
|
Saat menggunakan struktur repositori hierarkis, namespace tidak boleh dideklarasikan secara langsung
dalam direktori |
Buat subdirektori untuk konfigurasi namespace yang tercantum dalam pesan error. Untuk mengetahui informasi selengkapnya, lihat Struktur repositori hierarkis. |
|
Saat menggunakan struktur repositori hierarkis, konfigurasi namespace akan mendeklarasikan
metadata.name , dan nilainya harus cocok dengan nama direktori namespace.
|
Perbaiki metadata.name namespace atau direktorinya. |
|
Tidak ada CustomResourceDefinition yang ditentukan untuk resource dalam cluster. |
Buat CustomResourceDefinition untuk resource yang dirujuk dalam pesan error. Jenis resource yang bukan merupakan objek Kubernetes bawaan harus memiliki CustomResourceDefinition. |
|
Saat Anda menggunakan repositori hierarkis, konfigurasi Jenis ini tidak dapat dideklarasikan dalam
direktori |
Pindahkan resource yang dirujuk dalam pesan error dari direktori
|
|
Kolom |
Jika format repositori Anda kompatibel dengan versi yang didukung, perbarui kolom
|
|
Nama direktori harus memiliki kurang dari 64 karakter, terdiri dari karakter alfanumerik huruf kecil atau '-', dan harus diawali dan diakhiri dengan karakter alfanumerik. |
Ganti nama atau hapus direktori yang salah diberi nama. |
|
Konfigurasi dengan Jenis yang sama harus memiliki nama unik dalam namespace yang sama dan namespace abstrak induknya. |
Ganti nama atau hapus konfigurasi yang dirujuk dalam pesan error agar semua memiliki nama yang unik. |
|
Beberapa resource namespace tidak boleh ada di direktori yang sama. |
Hapus konfigurasi duplikat sehingga tidak tersisa lebih dari satu resource namespace. |
|
Semua konfigurasi harus mendeklarasikan |
Tambahkan kolom |
|
Jenis |
Hapus konfigurasi yang bermasalah, atau konversikan repositori Anda untuk menggunakan
|
|
Jika menggunakan repositori hierarkis, Anda hanya dapat mendeklarasikan Jenis |
Pastikan setiap konfigurasi yang dideklarasikan dalam direktori |
|
Dilarang mendeklarasikan namespace
Mulai dari Config Sync versi 1.17.0, namespace |
Jika Anda mendeklarasikan namespace
Jika Anda mendeklarasikan namespace
Jika sebelumnya Anda menyinkronkan ke repositori hierarkis dan harus mendeklarasikan namespace pengontrol bersama resource apa pun, sebaiknya beralih ke repositori tidak terstruktur agar struktur sumber Anda lebih fleksibel. |
|
Format |
Ubah
Jika |
|
Tidak digunakan lagi di Config Sync 1.3. | T/A |
|
Dilarang mendeklarasikan objek cakupan namespace di luar direktori
|
Memindahkan konfigurasi yang bermasalah sehingga berada di direktori hukum. Untuk informasi selengkapnya tentang objek cakupan namespace, lihat Objek cakupan namespace. |
|
Dilarang mendeklarasikan objek cakupan cluster di luar direktori |
Memindahkan konfigurasi yang bermasalah sehingga berada di direktori hukum. Untuk mengetahui informasi selengkapnya tentang objek cakupan cluster, lihat Objek cakupan cluster. |
|
Tidak digunakan lagi di Config Sync 1.3. | T/A |
|
Jenis Resource ini tidak boleh dideklarasikan dalam |
Hapus resource yang bermasalah. Untuk membaca |
|
Nilai ilegal untuk |
Ubah |
|
Config Sync tidak dapat mengonfigurasi objek ini. |
Hapus konfigurasi yang bermasalah dari repositori. |
|
Direktori namespace abstrak dengan konfigurasi harus memiliki setidaknya satu subdirektori namespace. |
Tambahkan direktori namespace di direktori namespace abstrak, tambahkan konfigurasi namespace ke direktori namespace abstrak, atau hapus konfigurasi di direktori namespace abstrak Anda. |
|
Konfigurasi dengan |
Hapus kolom |
|
|
Update |
|
Menghapus resource definisi kustom (CRD) dan meninggalkan Resource Kustom yang terkait dalam repositori tidak diizinkan. |
Hapus CRD beserta Resource Kustom. |
|
CustomResourceDefinition memiliki nama yang tidak valid. |
Ubah nama menjadi rekomendasi di pesan error. |
|
Konfigurasi menggunakan Group dan Kind yang tidak digunakan lagi. |
Ubah Grup atau Jenis ke rekomendasi di pesan error. |
|
Resource cakupan cluster tidak boleh mendeklarasikan |
Hapus kolom metadata.namespace dari resource cakupan cluster Anda. |
|
Resource cakupan namespace harus mendeklarasikan |
Tambahkan kolom yang tidak ada ke resource cakupan namespace Anda. |
|
Konfigurasi berisi nilai anotasi yang tidak valid. |
Ikuti petunjuk dalam pesan error untuk mengatasi error. |
|
Nilai |
Perbarui nilai
|
|
Resource dideklarasikan dalam namespace yang tidak dikelola. |
Hapus anotasi |
|
Resource memiliki label ilegal. |
Hapus label ilegal yang tercantum dalam pesan error. |
|
Repositori namespace hanya dapat mendeklarasikan resource cakupan namespace dalam namespace tempat repositori diterapkan. |
Pastikan semua repositori namespace mendeklarasikan resource cakupan namespace dengan benar.
Misalnya, repositori untuk repositori namespace
Misalnya, jika konfigurasi dalam repositori namespace Selain memastikan bahwa resource cakupan namespace dideklarasikan dengan benar, pastikan namespace dideklarasikan di repositori root. Hal ini diperlukan karena namespace merupakan cakupan cluster. |
|
Repositori namespace dapat mendeklarasikan maksimal satu resource Kptfile. |
Hapus semua kecuali satu resource Kptfile. |
|
Saat mengelola objek dalam beberapa sumber tepercaya, konflik dapat muncul jika objek yang sama (grup, jenis, nama, dan namespace yang cocok) dideklarasikan di lebih dari satu sumber. Misalnya, jika objek yang sama dikelola oleh RootSync dan RepoSync, RootSync akan menang. Jika RootSync diterapkan terlebih dahulu, RepoSync akan melaporkan error status KNV1060. Jika RepoSync diterapkan terlebih dahulu, RootSync akan menimpa objek RepoSync dan RepoSync akan melaporkan error status KNV1060 saat melihat update. |
Selesaikan konflik dengan mengupdate konfigurasi agar sesuai dengan sumber tepercaya lainnya, atau dengan menghapus objek yang mengalami konflik dari salah satu sumber.
Perintah |
|
|
Ikuti petunjuk dalam pesan error untuk memperbaiki error konfigurasi. |
|
Kptfile tidak memiliki kolom inventaris yang valid. Kptfile harus memiliki kolom inventaris yang tidak kosong dengan ID dan namespace yang ditentukan. |
Tentukan nilai untuk |
|
Kptfile ditemukan di repositori Root. Kptfile hanya didukung dalam repositori cakupan namespace. |
Hapus Kptfiles dari repositori Root. |
|
File |
Ikuti petunjuk dalam pesan error. Misalnya, Anda mungkin perlu menjalankan ulang
Pada |
|
Format CustomResourceDefinition salah. |
Periksa kolom yang ditentukan oleh pesan error dan pastikan nilainya diformat dengan benar. |
|
Objek konfigurasi hanya boleh mendeklarasikan anotasi pemilih cluster. Error ini terjadi saat
anotasi lama ( |
Hapus salah satu anotasi dari kolom |
|
Rekonsiler gagal mengenkode kolom yang dideklarasikan ke dalam format yang kompatibel dengan penerapan sisi server. Hal ini dapat disebabkan oleh skema yang sudah usang. |
Periksa kolom yang ditentukan oleh pesan error dan pastikan kolom tersebut cocok dengan skema jenis resource. |
|
Proses rendering mengalami masalah yang dapat ditindaklanjuti pengguna. |
Jika repositori Git berisi konfigurasi Kustomize, tetapi tidak ada file
Jika error tersebut disebabkan oleh kegagalan
Jika error |
|
rekonsiler telah merekonsiliasi objek RootSync atau RepoSync sendiri. Objek RootSync dapat mengelola objek RootSync dan RepoSync lainnya; Objek RepoSync dapat mengelola objek RepoSync lain, tetapi tidak dapat mengelola sendiri. |
Hapus objek RootSync atau RepoSync dari sumber tepercaya tempat objek disinkronkan. |
|
Panggilan sistem tingkat OS yang mengakses resource sistem file gagal. |
Error ini kemungkinan disebabkan oleh konfigurasi YAML yang tidak valid atau penggunaan karakter khusus. Jika memiliki konfigurasi YAML yang tidak valid, Anda akan melihat pesan error seperti berikut:
Jika nama file atau jalur berisi karakter khusus, Anda mungkin melihat pesan error
yang mirip dengan |
|
Permintaan untuk mengakses Server API gagal. |
Anda mungkin mengalami error penemuan API. Untuk mempelajari lebih lanjut, lihat error penemuan API. |
|
Panggilan sistem tingkat OS generik gagal. | |
|
Config Sync tidak dapat membaca dari sumber kebenaran. |
Ada beberapa masalah yang dapat menyebabkan error ini. Untuk tips tentang cara menyelesaikan masalah umum terkait menghubungkan ke sumber tepercaya, lihat Memecahkan masalah menghubungkan ke sumber kebenaran. |
|
Config Sync berkelahi dengan pengontrol lain atas sebuah resource. Pertarungan semacam itu menghabiskan banyak resource dan dapat menurunkan performa Anda. | Untuk tips tentang cara mendiagnosis dan menyelesaikan pertarungan pengontrol, lihat Memecahkan masalah pertarungan pengontrol. |
|
Untuk membantu mencegah penghapusan secara tidak sengaja, Config Sync tidak mengizinkan Anda menghapus semua namespace atau resource cakupan cluster dalam satu commit. |
Jika webhook akses masuk Config Sync dinonaktifkan, kembalikan commit yang menghapus semua resource.
Jika Anda ingin menghapus set lengkap resource yang dikelola, selesaikan langkah-langkah berikut:
|
|
Resource di Server API diubah atau dihapus saat Config Sync juga mencoba mengubahnya. |
Jika jenis error ini hanya muncul saat startup atau jarang, Anda dapat mengabaikan error ini.
Jika error ini tidak bersifat sementara (berlangsung beberapa menit), hal ini dapat mengindikasikan
masalah serius dan |
|
Ini adalah error umum yang menunjukkan bahwa Config Sync gagal menyinkronkan beberapa konfigurasi ke cluster. |
Ada beberapa masalah yang dapat menyebabkan error ini. Untuk tips tentang cara menyelesaikan masalah umum terkait sinkronisasi, lihat Memecahkan masalah sinkronisasi. |
|
Ini adalah error umum yang menunjukkan masalah dengan satu atau serangkaian resource. |
Pesan error menyertakan resource tertentu yang menyebabkan error. Pelajari referensi berikut. |
|
Resource tertentu diperlukan untuk melanjutkan, tetapi resource tidak ditemukan. Misalnya, ConfigManagement Operator mencoba memperbarui resource, tetapi resource tersebut telah dihapus saat menghitung pembaruan. |
Buat atau pulihkan resource yang tidak ada. |
|
Error ini melaporkan bahwa lebih dari satu instance APIResource ditemukan dalam konteks
yang mengizinkan satu APIResource tersebut. Misalnya, hanya satu resource |
Hapus APIResource tambahan. |
|
Rekonsiler namespace tidak memiliki izin yang memadai untuk mengelola resource. |
Pastikan rekonsiler memiliki izin yang memadai. |
|
Peringatan ini terjadi saat konfigurasi webhook Config Sync dimodifikasi secara ilegal. Konfigurasi webhook ilegal akan diabaikan. |
Hapus webhook yang dimodifikasi secara ilegal. |
|
Proses rendering mengalami masalah internal. Misalnya, Config Sync tidak dapat mengakses sistem file. |
Error ini mungkin menunjukkan bahwa Pod tidak responsif. Anda dapat memulai ulang Pod rekonsiler dengan menjalankan perintah berikut: # restart a root reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=root-reconciler # restart a namespace reconciler kubectl delete pod -n config-management-system -l configsync.gke.io/reconciler=ns-reconciler-NAMESPACE |
|
Error ini mewakili masalah sementara yang akan otomatis diselesaikan pada lain waktu. Misalnya, jika status rendering tidak cocok dengan konfigurasi sumber, Anda mungkin melihat error ini. |
Error akan otomatis teratasi. |
|
Ada masalah dengan alat command line |
Laporkan bug dengan perintah yang tepat seperti yang Anda jalankan dan pesan yang Anda terima. |
|
Anda mengalami error tanpa pesan error yang terdokumentasi. |
Kami belum menulis dokumentasi khusus untuk kesalahan yang Anda alami. |
Pesan error tanpa kode KNV
Error yang dilaporkan oleh rekonsiler Config Sync memiliki kode error KNV, tetapi error yang dilaporkan dari komponen lain tidak memiliki kode KNV. Misalnya, error "permission ditolak" berasal dari pengontrol fleet, yang merupakan lapisan di atas Config Sync.
Tabel berikut mencantumkan beberapa error umum tanpa awalan KNV.
Pesan error | Tindakan yang disarankan |
---|---|
|
Tidak dapat membuat pengekspor
Jika komponen di Open Telemetry Collector tidak dapat mengakses akun layanan default dalam namespace yang sama, Anda mungkin menyadari bahwa Pod Masalah ini biasanya terjadi saat Workload Identity diaktifkan di cluster. Untuk mengatasi masalah ini, ikuti petunjuk di Monitoring Config Sync untuk memberikan izin tulis metrik ke akun layanan default.
Jika error terus berlanjut setelah menyiapkan IAM, mulai ulang Pod |
server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none
|
Verifikasi sertifikat server gagal
Jika container
Pesan ini menunjukkan bahwa server Git dikonfigurasi dengan sertifikat dari Certificate Authority (CA) kustom. Namun,
CA kustom tidak dikonfigurasi dengan benar, sehingga mengakibatkan kegagalan
container
Untuk mengatasi masalah ini, pertama-tama Anda dapat memverifikasi apakah kolom
Selanjutnya, jika kolom telah dikonfigurasi dan objek Secret ada, pastikan objek Secret berisi sertifikat lengkap. Berikut adalah contoh cara menampilkan daftar sertifikat server: echo -n | openssl s_client -showcerts -connect HOST:PORT -servername SERVER_NAME 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' Anda dapat meminta agar tim administrasi jaringan mendapatkan sertifikat CA untuk Anda. |
Error message: "MESSAGE": "Unable to retrieve pull secret, the image pull may not succeed."
|
Tidak dapat mengambil rahasia pull, penarikan image mungkin tidak berhasilJika Anda menggunakan registry pribadi dengan GKE di VMware, proses penginstalan atau upgrade Config Sync dapat terhenti. Anda akan melihat error yang mirip dengan pesan ini. Untuk mengatasi masalah ini, ikuti langkah-langkah dalam Mengupdate Config Sync menggunakan registry pribadi sebelum menginstal atau mengupgrade Config Sync. |
Permission 'gkehub.features.create' denied on 'projects/PROJECT_ID/locations/global/features/configmanagement'
|
Izin ditolakJika Anda menerima error yang serupa dengan contoh ini saat mencoba mengonfigurasi Config Sync, Anda mungkin tidak memiliki peran GKE Hub Admin. Untuk memastikan Anda memiliki izin yang diperlukan, pastikan Anda telah memberikan peran IAM yang diperlukan. |
Langkah selanjutnya
- Lihat masalah umum.
- Baca pengantar pemecahan masalah Config Sync.
- Jika Anda memerlukan dukungan tambahan, hubungi Cloud Customer Care.