Halaman ini menunjukkan cara menyelesaikan masalah yang terjadi saat Config Sync tidak dapat membangun koneksi dengan sumber tepercaya Anda.
Masalah Authentication
Jika autentikasi gagal, Config Sync tidak dapat terhubung ke sumber tepercaya. Bagian berikut menunjukkan cara menyelesaikan beberapa masalah autentikasi.
Verifikasi sertifikat server gagal untuk server Git
Koneksi ke server Git pribadi menggunakan TLS untuk memverifikasi keaslian server. Untuk melakukan validasi ini, Anda harus memberikan sertifikat yang mengidentifikasi root certificate authority dan certificate authority perantara yang memberikan sertifikasi pada identitas server Git. Jika verifikasi sertifikat server Git gagal, artinya rantai kepercayaan tidak dapat dibuat.
Jika Anda menerima error yang menunjukkan bahwa verifikasi sertifikat server gagal, salah satu masalah berikut mungkin menjadi penyebabnya:
- Sertifikat certificate authority (CACert) tidak ditentukan. Untuk memperbaiki masalah ini, tambahkan CACert sebagai Secret dan referensikan Secret di kolom
spec.git.caCertSecretRef
objekRootSync
atauRepoSync
Anda. - CACert tidak lengkap. Untuk memperbaiki masalah ini, perbaiki CACert Secret agar berisi rantai kepercayaan lengkap, termasuk root dan sertifikat perantara apa pun.
- CACert tidak valid. Untuk memperbaiki masalah ini, download rantai sertifikat dari link yang ditentukan oleh sertifikat yang ditampilkan oleh server, lalu update CACert Secret.
Tidak dapat memasang Secret Git
Jika Anda menerima error berikut saat penampung git-sync
mencoba menyinkronkan repositori dengan Secret, Secret Git tidak berhasil dipasang ke penampung git-sync
:
KNV2004: unable to sync repo Error in the git-sync container: ERROR: can't configure SSH: can't access SSH key: stat /etc/git-secret/ssh: no such file or directory: lstat /repo/root/rev: no such file or directory
Error ini dapat disebabkan oleh pengalihan jenis autentikasi repositori
Git dari none
, gcenode
, atau gcpserviceaccount
ke jenis lain yang memerlukan
Secret.
Untuk mengatasi masalah ini, jalankan perintah berikut untuk memulai ulang Pengelola Rekonsiliasi dan Rekonsiliator:
# Stop the reconciler-manager Pod. The reconciler-manager Deployment spins
# up a new Pod which can pick up the latest `spec.git.auth`.
kubectl delete po -l app=reconciler-manager -n config-management-system
# Delete the reconciler Deployments. The reconciler-manager recreates the
# reconciler Deployments with correct volume mount.
kubectl delete deployment -l app=reconciler -n config-management-system
Masalah konfigurasi
Sering kali, masalah pada konfigurasi dapat menyebabkan Config Sync tidak dapat terhubung ke sumber tepercaya Anda. Bagian berikut menjelaskan cara mengidentifikasi dan menyelesaikan masalah konfigurasi umum.
Nama diagram tidak valid
Saat menyinkronkan dari repositori Helm, pastikan Anda menetapkan nilai yang benar untuk
spec.helm.chart
. Nama diagram tidak berisi nama repositori, versi diagram, atau .tgz
. Anda dapat memverifikasi nama diagram dengan perintah helm
template
.
Direktori konfigurasi tidak valid
Periksa konfigurasi Anda untuk menemukan kesalahan seperti nilai yang salah untuk policyDir
dalam
objek ConfigManagement
atau spec.git.dir
atau spec.oci.dir
dalam
objek RootSync
atau RepoSync
. Nilai direktori disertakan dalam
pesan error KNV2004
yang Anda terima; verifikasi nilai tersebut dengan repositori
Git atau image OCI Anda.
Cabang Git tidak valid
Periksa log untuk penampung git-sync
guna menemukan error seperti Remote branch
BRANCH_NAME not found in upstream origin
atau warning: Could
not find remote branch BRANCH_NAME to clone.
Cabang default ditetapkan ke master
jika tidak ditentukan.
Kredensial Git, Helm, atau OCI tidak valid
Periksa log Sinkronisasi Konfigurasi untuk penampung git-sync
, helm-sync
, atau oci-sync
untuk menemukan salah satu error berikut:
Could not read from remote repository. Ensure you have the correct access rights and the repository exists.
Invalid username or password. Authentication failed for ...
401 Unauthorized
Untuk repositori Git, pastikan kredensial Git dan Secret git-creds
dikonfigurasi dengan benar.
Untuk repositori Helm, pastikan kredensial Helm dikonfigurasi dengan benar.
Untuk image OCI, pastikan kredensial OCI dikonfigurasi dengan benar.
URL repositori Git tidak valid
Periksa log untuk penampung git-sync
guna menemukan error seperti Repository not
found
.
Pastikan Anda menggunakan format URL yang benar. Misalnya, jika Anda menggunakan pasangan kunci SSH untuk melakukan autentikasi ke repositori Git, pastikan URL yang Anda masukkan untuk repositori Git saat Anda mengonfigurasi Config Sync menggunakan protokol SSH.
URL repositori Helm tidak valid
Periksa log untuk penampung helm-sync
guna menemukan error seperti ...not a
valid chart repository
. Anda dapat memverifikasi URL repositori Helm dengan perintah helm
template
.
URL registry OCI tidak valid
Nilai yang tidak valid di kolom spec.oci.image
atau spec.oci.dir
objek RootSync
atau RepoSync
dapat menyebabkan masalah koneksi. Pastikan nilai
ini sudah benar. Misalnya, jika Anda menyinkronkan dari registry OCI, URL harus dimulai dengan oci://
.
Anda juga dapat memeriksa log untuk penampung oci-sync
guna mengetahui informasi selengkapnya.
Masalah jaringan
Jika Anda mencurigai masalah tersebut terkait dengan jaringan cluster, mulailah dengan langkah-langkah pemecahan masalah ini.
Tidak dapat me-resolve host: github.com
Saat mencoba terhubung ke repositori Git, Config Sync akan menggunakan DNS untuk me-resolve IP nama host yang ditentukan. Jika host tidak dapat di-resolve, hal ini biasanya menunjukkan masalah pada jaringan DNS atau cluster.
Untuk mendiagnosis masalah, lihat Memecahkan masalah Cloud DNS di GKE atau Memecahkan masalah kube-dns di GKE, bergantung pada layanan yang Anda gunakan sebagai penyedia DNS.
Repositori Git tidak dapat dijangkau dari dalam cluster
Terkadang, penampung git-sync
menampilkan error dalam lognya yang menunjukkan bahwa penampung tersebut tidak dapat menjangkau repositori. Contoh, ssh: connect to host
source.developers.google.com port 2022: Network is unreachable
. Untuk memperbaiki masalah ini, sesuaikan konfigurasi firewall atau jaringan cluster Anda.
Jumlah permintaan API sumber yang tinggi
Config Sync menggunakan strategi multi-instance untuk menskalakan dan mengisolasi tenant
dan domain error. Oleh karena itu, setiap objek RootSync
dan RepoSync
mendapatkan instance
rekonsiliatornya sendiri. Setiap instance rekonsiliator memiliki sidecar khusus sumbernya sendiri, git-sync
, oci-sync
, atau helm-sync
. Sidecar ini melakukan polling pada sumber
kebenaran. Jika Anda menambahkan objek RootSync
atau RepoSync
tambahan, hal ini akan menyebabkan
peningkatan linear dalam jumlah permintaan API yang dibuat oleh rekonsiliator yang melakukan polling
sumber tepercaya. Jadi, jika Anda memiliki banyak objek RootSync
dan RepoSync
yang semuanya melakukan polling pada sumber tepercaya yang sama, hal ini terkadang dapat menyebabkan beban traffic yang signifikan di server sumber.
Pertimbangkan salah satu strategi berikut untuk mengurangi masalah ini:
- Gabungkan beberapa objek
RootSyncs
atauRepoSync
, untuk mengurangi jumlah reconciler yang membuat permintaan API sumber. - Ubah jenis sumber dari Git menjadi OCI. Repositori OCI, seperti Artifact Registry, cenderung diskalakan lebih baik daripada sebagian besar server Git, karena dapat diskalakan secara horizontal tanpa perlu menyinkronkan antara replika server.
Langkah selanjutnya
- Jika Anda masih mengalami masalah, periksa apakah masalah Anda adalah masalah umum.