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 KNV9998 dengan Config Sync versi 1.6.1.

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 configmanagement.gke.io/namespace-selector. NamespaceSelectors hanya dapat dideklarasikan untuk objek cakupan namespace.

Hapus configmanagement.gke.io/namespace-selector dari kolom metadata.annotations.

Satu-satunya setelan yang valid untuk anotasi pengelolaan adalah configmanagement.gke.io/managed=disabled. Setelan ini digunakan untuk secara eksplisit membatalkan pengelolaan resource dalam repositori Git sambil membiarkan konfigurasi dicentang. Anotasi configmanagement.gke.io/managed=enabled tidak diperlukan.

Pastikan anotasi pengelolaannya adalah configmanagement.gke.io/managed=disabled.

Untuk informasi selengkapnya, lihat Mengelola objek.

Objek yang dideklarasikan dalam repositori tidak dapat diurai.

Validasi format YAML Anda. Misalnya, Anda dapat menggunakan perintah kubectl --validate.

Jika nomos vet menampilkan error ini pada jenis dengan group: configsync.gke.io, seperti RepoSync, download v1.6.0-rc.6 atau yang lebih baru dari halaman download untuk menyelesaikannya.

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 configmanagement.gke.io.

Pastikan Anda menggunakan salah satu anotasi yang didukung berikut ini:

  • configmanagement.gke.io/managed. Untuk informasi selengkapnya, lihat Mengelola objek.
  • configmanagement.gke.io/namespace-selector. Untuk informasi selengkapnya, lihat Objek cakupan namespace.
  • configmanagement.gke.io/cluster-selector. Untuk mengetahui informasi selengkapnya, lihat ClusterSelectors.

Konfigurasi tidak boleh memiliki label dengan kunci yang diawali dengan configmanagement.gke.io/. Awalan kunci label ini dicadangkan untuk digunakan oleh Config Sync.

Perbarui setiap label yang diidentifikasi dalam pesan error. Misalnya, jika Anda mencoba mendeklarasikan label bernama
configmanagement.gke.io/example-label: label-value,
Anda dapat mengubahnya menjadi
example-label: label-value.

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 system/ repositori. Konfigurasi ini harus menyertakan informasi yang diperlukan seperti versi semantik repo.

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 namespaces/.

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 system/.

Pindahkan resource yang dirujuk dalam pesan error dari direktori system/. Untuk informasi selengkapnya, lihat Struktur repositori hierarkis.

Kolom spec.version dalam konfigurasi Repo mewakili versi semantik repositori. Error ini menunjukkan bahwa Anda menggunakan versi yang tidak didukung.

Jika format repositori Anda kompatibel dengan versi yang didukung, perbarui kolom spec.version. Jika Anda perlu melakukan upgrade, ikuti petunjuk di catatan rilis.

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 metadata.name.

Tambahkan kolom metadata.name ke konfigurasi yang bermasalah.

Jenis Repo.configmanagement.gke.io tidak diizinkan jika sourceFormat ditetapkan ke unstructured.

Hapus konfigurasi yang bermasalah, atau konversikan repositori Anda untuk menggunakan sourceFormat: hierarchy.

Jika menggunakan repositori hierarkis, Anda hanya dapat mendeklarasikan Jenis HierarchyConfig dan Repo dalam direktori system/.

Pastikan setiap konfigurasi yang dideklarasikan dalam direktori system/ adalah salah satu Jenis yang diizinkan. Jika tidak, pindahkan ke direktori lain.

Dilarang mendeklarasikan namespace config-management-system atau resource di dalamnya.

Mulai dari Config Sync versi 1.17.0, namespace resource-group-system dan config-management-monitoring juga tidak dapat dideklarasikan dalam sumber tepercaya. Sebaiknya jangan mendeklarasikan resource apa pun dalam namespace resource-group-system dan config-management-monitoring.

Jika Anda mendeklarasikan namespace config-management-system, hapus namespace dan konfigurasi apa pun dalam namespace tersebut.

Jika Anda mendeklarasikan namespace resource-group-system atau config-management-monitoring, batalkan pengelolaan namespace pengontrol:

  1. Update Config Sync untuk berhenti mengelola namespace dan resource apa pun yang dideklarasikan di bawahnya.
  2. Tunggu sinkronisasi, lalu konfirmasi bahwa resource terkait masih tersedia di cluster, tetapi tidak di nomos status.
  3. Hapus file YAML namespace pengontrol dari sumber.
  4. Mengizinkan Config Sync melanjutkan pengelolaan resource.

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 metadata.name yang diberikan tidak valid.

Ubah metadata.name untuk memenuhi kondisi berikut:

  • Kurang dari 254 karakter
  • Terdiri dari karakter alfanumerik huruf kecil, '-', atau '.'
  • Awali dan akhiri dengan karakter alfanumerik

Jika metadata.name tidak valid, dan resource asli mendukungnya, pertimbangkan untuk menggunakan kolom spec.resourceID agar Anda tidak dibatasi oleh batasan ini. Untuk mengetahui informasi selengkapnya, lihat Mengelola resource dengan kolom resourceID.

Tidak digunakan lagi di Config Sync 1.3. T/A

Dilarang mendeklarasikan objek cakupan namespace di luar direktori namespaces/.

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 cluster/.

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 HierarchyConfig.

Hapus resource yang bermasalah. Untuk membaca HierarchyConfig selengkapnya, lihat Menonaktifkan Pewarisan untuk Jenis Objek.

Nilai ilegal untuk HierarchyMode terdeteksi di HierarchyConfig.

Ubah HierarchyMode menjadi none atau inherit. Untuk membaca HierarchyConfigs selengkapnya, lihat Menonaktifkan Pewarisan untuk Jenis Objek.

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 metadata.ownerReference yang ditentukan tidak diizinkan.

Hapus kolom status dari repositori sumber. Untuk konfigurasi pihak ketiga yang bukan milik Anda, gunakan kustomize patches untuk menghapus kolom status yang ditentukan dalam manifes Anda secara massal.

HierarchyConfig ini mereferensikan resource yang memiliki cakupan cluster. Objek cakupan cluster tidak diizinkan di HierarchyConfig.

Update HierarchyConfig agar tidak lagi merujuk ke resource yang bermasalah.

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 metadata.namespace.

Hapus kolom metadata.namespace dari resource cakupan cluster Anda.

Resource cakupan namespace harus mendeklarasikan metadata.namespace atau metadata.annotations.configmanagement.gke.io/namespace-selector.

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 metadata.namespace bukan nama namespace Kubernetes yang valid.

Perbarui nilai metadata.namespace agar mematuhi aturan berikut:

  • Memiliki panjang 63 karakter atau kurang
  • Hanya terdiri dari huruf kecil (a-z), angka (0-9), dan tanda hubung '-'
  • Dimulai dan diakhiri dengan huruf kecil atau angka

Resource dideklarasikan dalam namespace yang tidak dikelola.

Hapus anotasi configmanagement.gke.io/managed: disabled, atau tambahkan anotasi ke resource yang dideklarasikan.

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 shipping hanya dapat mengelola resource dalam namespace shipping. Nilai metadata.namespace bersifat opsional. Secara default, Config Sync mengasumsikan bahwa semua resource dalam repositori namespace dimiliki dalam namespace tersebut.

Misalnya, jika konfigurasi dalam repositori namespace shipping mendeklarasikan metadata.namespace: billing, Anda akan mendapatkan error.

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 nomos vet hanya memeriksa error dalam satu repositori pada satu waktu, sehingga tidak dapat mendeteksi masalah ini.

InvalidRepoSyncError melaporkan bahwa RepoSync salah dikonfigurasi. Objek RepoSync harus dikonfigurasi dengan benar agar Config Sync dapat menyinkronkan konfigurasi dari repositori namespace.

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 .inventory.identifier dan .inventory.namespace di Kptfile.

Kptfile ditemukan di repositori Root. Kptfile hanya didukung dalam repositori cakupan namespace.

Hapus Kptfiles dari repositori Root.

File api-resources.txt di repositori Anda tidak dapat diurai.

Ikuti petunjuk dalam pesan error. Misalnya, Anda mungkin perlu menjalankan ulang kubectl api-resources > api-resources.txt.

Pada nomos versi 1.16.1 dan yang lebih lama, Anda juga melihat error ini: KNV1064: unable to find APIGROUP column. Error ini disebabkan oleh perubahan nama kolom dari APIGROUP menjadi APIVERSION. Untuk mengurangi masalah ini, ganti APIVERSION di api-resources.txt kembali secara manual ke APIGROUP.

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 (configmanagement.gke.io/cluster-selector) dan anotasi inline (configsync.gke.io/cluster-name-selector) ada.

Hapus salah satu anotasi dari kolom metadata.annotations.

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 kustomization.yaml di direktori sinkronisasi Git, tambahkan kustomization.yaml di direktori sinkronisasi untuk memicu proses rendering, atau hapus kustomization.yaml dari semua sub direktori untuk melewati rendering.

Jika error tersebut disebabkan oleh kegagalan kustomize build, Anda mungkin perlu memperbarui konfigurasi Kustomize di repositori Git Anda. Anda dapat melihat pratinjau dan memvalidasi konfigurasi yang diupdate secara lokal menggunakan nomos hydrate dan nomos vet. Jika konfigurasi yang diupdate berhasil dirender, Anda dapat mengirim commit baru untuk memperbaiki error KNV1068.

Jika error kustomize build terjadi saat mengambil basis jarak jauh dari repositori publik, Anda perlu menetapkan spec.override.enableShellInRendering ke true.

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: KNV2001: yaml: line 2: did not find expected node content path:.... Untuk mengatasi masalah ini, periksa file YAML Anda dan selesaikan semua masalah konfigurasi. Error ini dapat disebabkan oleh konfigurasi YAML dalam repositori.

Jika nama file atau jalur berisi karakter khusus, Anda mungkin melihat pesan error yang mirip dengan KNV2001: yaml: control characters are not allowed path:/repo/source/.../._pod.yaml. Dalam contoh ini, ._pod.yaml bukan nama file yang valid. Untuk mengatasi masalah ini, hapus karakter khusus dari file atau nama jalur Anda.

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 webhook penerimaan Config Sync diaktifkan, namespace Anda mungkin akan terhenti. Untuk memperbaikinya, jalankan langkah-langkah berikut:

  1. Nonaktifkan Config Sync, lalu tunggu hingga semua resource dibersihkan atau dalam status stabil. Misalnya, Anda dapat menjalankan kubectl get ns untuk memastikan namespace telah dihapus.
  2. Aktifkan kembali Config Sync.
  3. Mengembalikan commit yang menghapus semua resource.

Jika Anda ingin menghapus set lengkap resource yang dikelola, selesaikan langkah-langkah berikut:

  1. Hapus semua kecuali satu namespace atau resource cakupan cluster pada commit pertama, dan izinkan Config Sync untuk menyinkronkan perubahan tersebut.
  2. Hapus resource terakhir di commit kedua.

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 nomos status melaporkan perkelahian pengontrol.

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 Repo yang harus ada di cluster.

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 nomos itu sendiri.

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.

Kembali ke atas

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

Error: cannot build exporters: error creating stackdriver exporter: cannot configure Google Cloud metric exporter: stackdriver: google: could not find default credentials.

Error: Permission monitoring.timeSeries.create denied (or the resource may not exist).

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 otel-collector pada config-management-monitoring berada dalam status CrashLoopBackoff, atau Anda mungkin melihat pesan error yang serupa dengan yang ada dalam daftar.

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 otel-collector agar perubahan diterapkan.
Jika Anda menggunakan solusi pemantauan kustom, tetapi membuat cabang otel-collector-googlecloud ConfigMap default, periksa dan buat ulang perbedaan apa pun.

server certificate verification failed. CAfile:/etc/ca-cert/cert CRLfile: none

Verifikasi sertifikat server gagal

Jika container git-sync gagal meng-clone repositori Git, Anda mungkin melihat pesan error ini.

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 git-sync untuk meng-clone repositori Git.

Untuk mengatasi masalah ini, pertama-tama Anda dapat memverifikasi apakah kolom spec.git.caCertSecretRef.name telah ditentukan dalam objek RootSync atau RepoSync, dan juga memeriksa apakah objek Secret ada.

Selanjutnya, jika kolom telah dikonfigurasi dan objek Secret ada, pastikan objek Secret berisi sertifikat lengkap.
Bergantung pada cara CA kustom disediakan, pendekatan untuk memeriksa sertifikat lengkap mungkin bervariasi.

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 berhasil

Jika 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 ditolak

Jika 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.

Kembali ke atas

Langkah selanjutnya