Dengan Config Sync, Anda dapat mengelola resource Kubernetes dengan file konfigurasi yang disimpan di sumber kebenaran. Config Sync mendukung repositori Git, image OCI, dan diagram Helm sebagai sumber tepercaya. Halaman ini menunjukkan cara mengaktifkan dan mengonfigurasi Config Sync agar menyinkronkan dari repositori root Anda. Config Sync tersedia dengan edisi Google Kubernetes Engine (GKE) Enterprise.
Saat Anda menginstal Config Sync menggunakan konsol Google Cloud atau Google Cloud CLI, API RootSync
dan RepoSync
diaktifkan secara default. Konfigurasi ini
memberi Anda fitur tambahan seperti sinkronisasi dari beberapa repositori
dan sinkronisasi konfigurasi Kustomize dan Helm.
Sebelum memulai
Sebelum menginstal Config Sync, siapkan lingkungan Anda, pastikan Anda memenuhi persyaratan cluster, dan berikan peran pengguna yang tepat.
Menyiapkan lingkungan lokal Anda
Siapkan lingkungan lokal Anda dengan menyelesaikan tugas berikut:
- Buat, atau pastikan Anda memiliki akses ke, sumber tepercaya. Di sinilah Anda menambahkan konfigurasi yang disinkronkan Config Sync. Untuk mempelajari lebih lanjut cara menyiapkan konfigurasi dan sumber tepercaya, lihat salah satu panduan berikut:
- Instal dan lakukan inisialisasi Google Cloud CLI, yang menyediakan perintah
gcloud
dannomos
. Jika Anda menggunakan Cloud Shell, Google Cloud CLI sudah terinstal. Jika sebelumnya Anda telah menginstal Google Cloud CLI, dapatkan versi terbaru dengan menjalankangcloud components update
.
Meninjau persyaratan cluster
Sebelum menginstal Config Sync di cluster, tinjau rekomendasi dan persyaratan konfigurasi cluster.
Menyiapkan cluster
Setelah Anda membuat cluster yang sesuai, selesaikan langkah-langkah berikut:
Berikan peran IAM yang diperlukan kepada pengguna yang mendaftarkan cluster.
Jika Anda berencana menggunakan Google Cloud CLI untuk mengonfigurasi Config Sync atau menggunakan cluster di luar Google Cloud, pastikan cluster GKE atau cluster di luar Google Cloud Anda terdaftar ke fleet sekarang. Jika Anda berencana menggunakan konsol Google Cloud , Anda dapat mendaftarkan cluster GKE saat mengonfigurasi Config Sync.
Menginstal Config Sync
Di bagian berikut, Anda akan memberikan akses Config Sync ke salah satu sumber kebenaran berikut:
Setelah memberikan akses, Anda dapat mengonfigurasi Config Sync.
Memberikan akses ke Git
Config Sync memerlukan akses hanya baca ke repositori Git Anda agar dapat membaca konfigurasi yang di-commit ke repositori dan menerapkannya ke cluster Anda.
Jika repositori Anda tidak memerlukan autentikasi untuk akses baca saja, Anda dapat
melanjutkan untuk mengonfigurasi Config Sync dan
menggunakan none
sebagai jenis autentikasi Anda. Misalnya, jika Anda dapat menjelajahi repositori menggunakan antarmuka web tanpa login, atau jika Anda dapat menggunakan git
clone
untuk membuat clone repositori secara lokal tanpa memberikan kredensial atau menggunakan kredensial tersimpan, maka Anda tidak perlu melakukan autentikasi. Dalam hal ini, Anda tidak perlu membuat Secret.
Namun, sebagian besar pengguna perlu membuat kredensial karena akses baca ke repositori mereka dibatasi. Jika kredensial diperlukan, kredensial tersebut disimpan di
git-creds
Secret di setiap cluster yang terdaftar (kecuali jika Anda menggunakan akun layanan Google). Secret harus diberi nama git-creds
karena ini adalah nilai tetap.
Config Sync mendukung mekanisme berikut untuk autentikasi:
- Pasangan kunci SSH (
ssh
) - Cookiefile (
cookiefile
) - Token (
token
) - Akun layanan Google (
gcpserviceaccount
) - Akun layanan default Compute Engine (
gcenode
) - Aplikasi GitHub (
githubapp
)
Mekanisme yang Anda pilih bergantung pada dukungan repositori Anda. Secara umum, sebaiknya gunakan pasangan kunci SSH. GitHub dan Bitbucket mendukung penggunaan pasangan kunci SSH. Namun, jika Anda menggunakan repositori di Cloud Source Repositories, sebaiknya gunakan akun layanan Google karena prosesnya lebih sederhana. Jika organisasi Anda menghosting repositori Anda dan Anda tidak tahu metode autentikasi mana yang didukung, hubungi administrator Anda.
Untuk menggunakan repositori di Cloud Source Repositories sebagai repositori Config Sync, selesaikan langkah-langkah berikut untuk mengambil URL Cloud Source Repositories Anda:
Mencantumkan semua repositori:
gcloud source repos list
Dari output, salin URL dari repositori yang ingin Anda gunakan. Contoh:
REPO_NAME PROJECT_ID URL my-repo my-project https://source.developers.google.com/p/my-project/r/my-repo-csr
Anda harus menggunakan URL ini saat mengonfigurasi Config Sync di bagian berikut. Jika Anda mengonfigurasi Config Sync menggunakan konsol Google Cloud , Anda menambahkan URL di kolom URL. Jika Anda mengonfigurasi Config Sync menggunakan Google Cloud CLI, Anda menambahkan URL ke kolom
syncRepo
pada file konfigurasi.
Pasangan kunci SSH
Pasangan kunci SSH terdiri dari dua file, yaitu kunci publik dan kunci pribadi. Kunci publik biasanya memiliki ekstensi .pub
.
Untuk menggunakan pasangan kunci SSH, selesaikan langkah-langkah berikut:
Buat pasangan kunci SSH agar Config Sync dapat melakukan autentikasi ke repositori Git Anda. Langkah ini diperlukan jika Anda perlu mengautentikasi ke repositori untuk meng-clone atau membaca dari repositori tersebut. Lewati langkah ini jika administrator keamanan memberi Anda pasangan kunci. Anda dapat menggunakan satu pasangan kunci untuk semua cluster, atau pasangan kunci per cluster, bergantung pada persyaratan keamanan dan kepatuhan Anda.
Perintah berikut akan membuat kunci RSA 4096-bit. Nilai yang lebih rendah tidak direkomendasikan:
ssh-keygen -t rsa -b 4096 \ -C "GIT_REPOSITORY_USERNAME" \ -N '' \ -f /path/to/KEYPAIR_FILENAME
Ganti kode berikut:
GIT_REPOSITORY_USERNAME
: nama pengguna yang Anda inginkan agar Config Sync gunakan untuk mengautentikasi ke repositori/path/to/KEYPAIR_FILENAME
: jalur ke pasangan kunci
Jika Anda menggunakan host repositori Git pihak ketiga seperti GitHub, atau Anda ingin menggunakan akun layanan dengan Cloud Source Repositories, sebaiknya Anda menggunakan akun terpisah.
Konfigurasi repositori Anda untuk mengenali kunci publik yang baru dibuat. Lihat dokumentasi untuk penyedia hosting Git Anda. Petunjuk untuk beberapa penyedia hosting Git populer disertakan untuk memudahkan:
- Cloud Source Repositories
- Bitbucket
- GitHub Sebaiknya Anda membuat kunci deployment terpisah untuk memberikan akses hanya baca ke satu repositori GitHub.
- GitLab
Tambahkan kunci pribadi ke Secret baru di cluster:
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-file=ssh=/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
Ganti
/path/to/KEYPAIR_PRIVATE_KEY_FILENAME
dengan nama kunci pribadi (tanpa akhiran.pub
).(Direkomendasikan) Untuk mengonfigurasi pemeriksaan host yang dikenal menggunakan autentikasi SSH, Anda dapat menambahkan kunci host yang dikenal ke kolom
data.known_hosts
dalam secretgit_creds
. Untuk menonaktifkan pemeriksaanknown_hosts
, Anda dapat menghapus kolomknown_hosts
dari rahasia. Untuk menambahkan kunci host yang dikenal, jalankan:kubectl edit secret git-creds \ --namespace=config-management-system
Kemudian, di bagian
data
, tambahkan entri host yang dikenal:known_hosts: KNOWN_HOSTS_KEY
Hapus kunci pribadi dari disk lokal atau lindungi kunci pribadi tersebut.
Saat Anda mengonfigurasi Config Sync dan menambahkan URL untuk repositori Git, gunakan protokol SSH. Jika Anda menggunakan repositori di Cloud Source Repositories, Anda harus menggunakan format berikut saat memasukkan URL:
ssh://EMAIL@source.developers.google.com:2022/p/PROJECT_ID/r/REPO_NAME
Ganti kode berikut:
EMAIL
: nama pengguna Google Cloud AndaPROJECT_ID
: ID Google Cloud project tempat repositori beradaREPO_NAME
: nama repositori
Cookiefile
Proses untuk mendapatkan cookiefile
bergantung pada konfigurasi
repositori Anda. Sebagai contoh, lihat
Membuat kredensial statis
dalam dokumentasi Cloud Source Repositories.
Kredensial biasanya disimpan dalam file .gitcookies
di direktori beranda Anda, atau mungkin diberikan kepada Anda oleh administrator keamanan.
Untuk menggunakan cookiefile
, selesaikan langkah-langkah berikut:
Setelah Anda membuat dan mendapatkan
cookiefile
, tambahkancookiefile
tersebut ke Secret baru dalam cluster.Jika Anda tidak menggunakan proxy HTTPS, buat Secret dengan perintah berikut:
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-file=cookie_file=/path/to/COOKIEFILE
Jika Anda perlu menggunakan proxy HTTPS, tambahkan ke Secret bersama dengan
cookiefile
dengan menjalankan perintah berikut:kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-file=cookie_file=/path/to/COOKIEFILE \ --from-literal=https_proxy=HTTPS_PROXY_URL
Ganti kode berikut:
/path/to/COOKIEFILE
: jalur dan nama file yang sesuaiHTTPS_PROXY_URL
: URL untuk proxy HTTPS yang Anda gunakan saat berkomunikasi dengan repositori Git
Lindungi konten
cookiefile
jika Anda masih memerlukannya secara lokal. Jika tidak, hapus token tersebut.
Token
Jika organisasi Anda tidak mengizinkan penggunaan kunci SSH, sebaiknya gunakan token. Dengan Config Sync, Anda dapat menggunakan token akses pribadi (PAT) GitHub, PAT atau kunci deployment GitLab, atau sandi aplikasi Bitbucket sebagai token Anda.
Untuk membuat Rahasia menggunakan token Anda, selesaikan langkah-langkah berikut:
Buat token menggunakan GitHub, GitLab, atau Bitbucket:
- GitHub: Buat PAT.
Beri token cakupan
repo
agar dapat membaca dari repositori pribadi. Karena Anda mengikat PAT ke akun GitHub, sebaiknya buat pengguna mesin dan ikat PAT Anda ke pengguna mesin. - GitLab: Buat PAT atau buat token deployment
- Bitbucket: Buat sandi aplikasi.
- GitHub: Buat PAT.
Beri token cakupan
Setelah Anda membuat dan mendapatkan token, tambahkan token tersebut ke Secret baru dalam cluster.
Jika Anda tidak menggunakan proxy HTTPS, buat Secret dengan perintah berikut:
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace="config-management-system" \ --from-literal=username=USERNAME \ --from-literal=token=TOKEN
Ganti kode berikut:
USERNAME
: nama pengguna yang ingin Anda gunakan.TOKEN
: token yang Anda buat pada langkah sebelumnya.
Jika Anda perlu menggunakan proxy HTTPS, tambahkan ke Secret bersama dengan
username
dantoken
dengan menjalankan perintah berikut:kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-literal=username=USERNAME \ --from-literal=token=TOKEN \ --from-literal=https_proxy=HTTPS_PROXY_URL
Ganti kode berikut:
USERNAME
: nama pengguna yang ingin Anda gunakan.TOKEN
: token yang Anda buat pada langkah sebelumnya.HTTPS_PROXY_URL
: URL untuk proxy HTTPS yang Anda gunakan saat berkomunikasi dengan repositori Git.
Lindungi token jika Anda masih memerlukannya secara lokal. Jika tidak, hapus file cookie tersebut.
Akun layanan Google
Jika repositori Anda berada di Cloud Source Repositories, dan cluster Anda menggunakan GKE Workload Identity Federation untuk GKE atau Workload Identity Federation fleet untuk GKE, Anda dapat memberi Config Sync akses ke repositori dalam project yang sama dengan cluster terkelola Anda menggunakan akun layanan Google.
Jika Anda belum memiliki akun layanan, buat akun layanan.
Berikan peran IAM Cloud Source Repositories Reader (
roles/source.reader
) ke akun layanan Google. Untuk mengetahui informasi selengkapnya tentang peran dan izin Cloud Source Repositories, lihat Memberi izin untuk melihat repositori.Berikan izin di seluruh project jika izin yang sama berlaku untuk semua repositori dalam project.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/source.reader \ --member="serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com"
Berikan izin khusus repositori jika Anda ingin akun layanan memiliki tingkat akses yang berbeda untuk setiap repositori di project Anda.
gcloud source repos set-iam-policy REPOSITORY POLICY_FILE --project=PROJECT_ID
Jika Anda mengonfigurasi Config Sync menggunakan konsol Google Cloud , pilih Workload Identity Federation untuk GKE sebagai Jenis Autentikasi, lalu tambahkan email akun layanan Anda.
Jika Anda mengonfigurasi Config Sync menggunakan Google Cloud CLI, tambahkan
gcpserviceaccount
sebagaisecretType
, lalu tambahkan email akun layanan Anda kegcpServiceAccountEmail
.Setelah mengonfigurasi Config Sync, buat binding kebijakan IAM antara akun layanan Kubernetes dan akun layanan Google. Akun layanan Kubernetes tidak dibuat hingga Anda mengonfigurasi Config Sync untuk pertama kalinya.
Jika Anda menggunakan cluster yang terdaftar ke fleet, Anda hanya perlu membuat pengikatan kebijakan satu kali per fleet. Semua cluster yang terdaftar di fleet berbagi Workload Identity Federation for GKEpool yang sama. Dengan konsep kesamaan fleet, jika Anda menambahkan kebijakan IAM ke akun layanan Kubernetes di satu cluster, akun layanan Kubernetes dari namespace yang sama di cluster lain dalam fleet yang sama juga akan mendapatkan kebijakan IAM yang sama.
Binding ini memungkinkan akun layanan Kubernetes Config Sync bertindak sebagai akun layanan Google:
gcloud iam service-accounts add-iam-policy-binding \ GSA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role=roles/iam.workloadIdentityUser \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Ganti kode berikut:
PROJECT_ID
: project ID organisasi.FLEET_HOST_PROJECT_ID
: jika Anda menggunakan GKE Workload Identity Federation for GKE, nilai ini sama denganPROJECT_ID
. Jika Anda menggunakan fleet Workload Identity Federation untuk GKE, ini adalah project ID fleet tempat cluster Anda terdaftar.GSA_NAME
: akun layanan Google kustom yang ingin Anda gunakan untuk terhubung ke Artifact Registry. Akun layanan harus memiliki peran IAM Artifact Registry Reader (roles/artifactregistry.reader
).KSA_NAME
: akun layanan Kubernetes untuk rekonsiliasi.- Untuk repositori root, jika nama
RootSync
adalahroot-sync
, gunakanroot-reconciler
. Jika tidak, gunakanroot-reconciler-ROOT_SYNC_NAME
. Jika Anda menginstal Config Sync menggunakan konsol Google Cloud atau Google Cloud CLI, Config Sync akan otomatis membuat objek RootSync bernamaroot-sync
.
- Untuk repositori root, jika nama
REPOSITORY
: nama repositori.POLICY_FILE
: file JSON atau YAML dengan kebijakan Identity and Access Management.
Akun layanan default Compute Engine
Jika repositori Anda berada di Cloud Source Repositories, dan cluster Anda adalah GKE dengan Workload Identity Federation for GKE dinonaktifkan, Anda dapat menggunakan gcenode
sebagai jenis autentikasi Anda.
Jika Anda mengonfigurasi Config Sync menggunakan konsol Google Cloud , pilih Google Cloud Repository sebagai Authentication Type.
Jika Anda mengonfigurasi Config Sync menggunakan Google Cloud CLI, tambahkan gcenode
sebagai
secretType
.
Dengan memilih Google Cloud Repository atau gcenode
, Anda dapat menggunakan akun layanan default Compute Engine. Anda harus memberikan
peran IAM Cloud Source Repositories Reader (roles/source.reader
)
ke akun layanan default Compute Engine. Untuk mengetahui informasi selengkapnya tentang
peran dan izin Cloud Source Repositories, lihat
Memberikan izin untuk melihat repositori.
gcloud projects add-iam-policy-binding PROJECT_ID \
--role=roles/source.reader \
--member="serviceAccount:PROJECT_NUMBER[email protected]"
Ganti PROJECT_ID
dengan project ID organisasi Anda, dan
ganti PROJECT_NUMBER
dengan nomor project organisasi Anda.
Aplikasi GitHub
Jika repositori Anda ada di GitHub, Anda dapat menggunakan githubapp
sebagai jenis autentikasi Anda.
Untuk menggunakan Aplikasi GitHub, selesaikan langkah-langkah berikut:
Ikuti petunjuk di GitHub untuk menyediakan Aplikasi GitHub dan memberinya izin untuk membaca dari repositori Anda.
Tambahkan konfigurasi Aplikasi GitHub ke Secret baru di cluster:
Menggunakan Client ID
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-literal=github-app-client-id=CLIENT_ID \ --from-literal=github-app-installation-id=INSTALLATION_ID \ --from-file=github-app-private-key=/path/to/GITHUB_PRIVATE_KEY \ --from-literal=github-app-base-url=BASE_URL
- Ganti
CLIENT_ID
dengan ID klien untuk Aplikasi GitHub. - Ganti
INSTALLATION_ID
dengan ID penginstalan untuk Aplikasi GitHub. - Ganti
/path/to/GITHUB_PRIVATE_KEY
dengan nama file yang berisi kunci pribadi. - Ganti
BASE_URL
dengan URL dasar untuk endpoint GitHub API. Ini hanya diperlukan jika repositori tidak dihosting di www.github.com. Argumen dapat dihilangkan dan akan ditetapkan secara default kehttps://api.github.com/
.
Menggunakan ID Aplikasi
kubectl create ns config-management-system && \ kubectl create secret generic git-creds \ --namespace=config-management-system \ --from-literal=github-app-application-id=APPLICATION_ID \ --from-literal=github-app-installation-id=INSTALLATION_ID \ --from-file=github-app-private-key=/path/to/GITHUB_PRIVATE_KEY \ --from-literal=github-app-base-url=BASE_URL
- Ganti
APPLICATION_ID
dengan ID aplikasi untuk Aplikasi GitHub. - Ganti
INSTALLATION_ID
dengan ID penginstalan untuk Aplikasi GitHub. - Ganti
/path/to/GITHUB_PRIVATE_KEY
dengan nama file yang berisi kunci pribadi. - Ganti
BASE_URL
dengan URL dasar untuk endpoint GitHub API. Ini hanya diperlukan jika repositori tidak dihosting di www.github.com. Argumen dapat dihilangkan dan akan ditetapkan secara default kehttps://api.github.com/
.
- Ganti
Hapus kunci pribadi dari disk lokal atau lindungi kunci pribadi tersebut.
Saat Anda mengonfigurasi Config Sync dan menambahkan URL untuk repositori Git Anda, gunakan jenis autentikasi
githubapp
.
Memberikan akses hanya baca Config Sync ke OCI
Config Sync memerlukan akses hanya baca ke image OCI Anda yang disimpan di Artifact Registry agar dapat membaca konfigurasi yang disertakan dalam image dan menerapkannya ke cluster Anda.
Jika image Anda tidak memerlukan autentikasi untuk akses baca saja, Anda dapat melanjutkan untuk
mengonfigurasi Config Sync
dan menggunakan none
sebagai jenis autentikasi Anda. Misalnya, jika gambar Anda bersifat publik
dan dapat diakses oleh siapa saja di internet, Anda tidak perlu melakukan autentikasi.
Namun, sebagian besar pengguna perlu membuat kredensial untuk mengakses gambar yang dibatasi. Config Sync mendukung mekanisme berikut untuk autentikasi:
- Akun layanan Kubernetes (
k8sserviceaccount
) - Akun layanan Google (
gcpserviceaccount
) Akun layanan default Compute Engine (
gcenode
)
Akun layanan Kubernetes
Anda dapat menggunakan akun layanan Kubernetes sebagai jenis autentikasi jika menyimpan image OCI di Artifact Registry dan cluster Anda menggunakan Workload Identity Federation untuk GKE atau Workload Identity Federation fleet untuk GKE.
Berikan peran IAM Pembaca Artifact Registry (
roles/artifactregistry.reader
) ke akun layanan Kubernetes dengan kumpulan Workload Identity Federation untuk GKE. Untuk mengetahui informasi selengkapnya tentang peran dan izin Artifact Registry, lihat Mengonfigurasi peran dan izin untuk Artifact Registry.Berikan izin di seluruh project jika izin yang sama berlaku untuk semua repositori dalam project.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Berikan izin khusus repositori jika Anda ingin akun layanan memiliki tingkat akses yang berbeda untuk setiap repositori di project Anda.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Ganti kode berikut:
PROJECT_ID
: project ID organisasi.FLEET_HOST_PROJECT_ID
: jika Anda menggunakan GKE Workload Identity Federation for GKE, nilai ini sama denganPROJECT_ID
. Jika Anda menggunakan fleet Workload Identity Federation untuk GKE, ini adalah project ID fleet tempat cluster Anda terdaftar.KSA_NAME
: akun layanan Kubernetes untuk rekonsiliasi.- Untuk repositori root, jika nama
RootSync
adalahroot-sync
, gunakanroot-reconciler
. Jika tidak, gunakanroot-reconciler-ROOT_SYNC_NAME
. Jika Anda menginstal Config Sync menggunakan konsol Google Cloud atau Google Cloud CLI, Config Sync akan otomatis membuat objek RootSync bernamaroot-sync
.
- Untuk repositori root, jika nama
REPOSITORY
: ID repositori.LOCATION
: lokasi regional atau multi-regional repositori.
Akun layanan default Compute Engine
Jika Anda menyimpan diagram Helm di Artifact Registry dan cluster Anda adalah GKE dengan Workload Identity Federation untuk GKE dinonaktifkan, Anda dapat menggunakan gcenode
sebagai jenis autentikasi.
Config Sync menggunakan akun layanan default Compute Engine.
Anda harus memberikan akses pembaca ke Artifact Registry untuk akun layanan default Compute Engine Anda.
Beri akun layanan Compute Engine izin baca ke Artifact Registry dengan menjalankan perintah berikut:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER[email protected] \ --role=roles/artifactregistry.reader
Ganti
PROJECT_ID
dengan project ID organisasi Anda, dan gantiPROJECT_NUMBER
dengan nomor project organisasi Anda.
Memberikan akses hanya baca Config Sync ke Helm
Config Sync memerlukan akses hanya baca ke repositori Helm Anda agar dapat membaca diagram Helm di repositori Anda dan menginstalnya di cluster Anda.
Jika repositori Anda tidak memerlukan autentikasi untuk akses baca saja, Anda dapat melanjutkan untuk mengonfigurasi Config Sync dan menggunakan none
sebagai jenis autentikasi Anda. Misalnya, jika repositori Helm Anda bersifat publik dan dapat diakses oleh siapa saja di internet, Anda tidak perlu melakukan autentikasi.
Namun, sebagian besar pengguna perlu membuat kredensial untuk mengakses repositori Helm pribadi. Config Sync mendukung mekanisme berikut untuk autentikasi:
- Token (
token
) - Akun layanan Kubernetes (
k8sserviceaccount
) - Akun layanan Google (
gcpserviceaccount
) - Akun layanan default Compute Engine (
gcenode
)
Token
Buat Secret dengan nama pengguna dan sandi repositori Helm:
kubectl create secret generic SECRET_NAME \
--namespace=config-management-system \
--from-literal=username=USERNAME \
--from-literal=password=PASSWORD
Ganti kode berikut:
SECRET_NAME
: nama yang ingin Anda berikan pada Secret Anda.USERNAME
: nama pengguna repositori Helm.PASSWORD
: sandi repositori Helm.
Saat Mengonfigurasi Config Sync,
Anda akan menggunakan nama Secret yang Anda pilih untuk spec.helm.secretRef.name
.
Akun layanan Kubernetes
Anda dapat menggunakan akun layanan Kubernetes sebagai jenis autentikasi jika menyimpan diagram Helm di Artifact Registry dan cluster Anda menggunakan Workload Identity Federation untuk GKE atau Workload Identity Federation fleet untuk GKE.
Berikan peran IAM Pembaca Artifact Registry (
roles/artifactregistry.reader
) ke akun layanan Kubernetes dengan kumpulan Workload Identity Federation untuk GKE. Untuk mengetahui informasi selengkapnya tentang peran dan izin Artifact Registry, lihat Mengonfigurasi peran dan izin untuk Artifact Registry.Berikan izin di seluruh project jika izin yang sama berlaku untuk semua repositori dalam project.
gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]"
Berikan izin khusus repositori jika Anda ingin akun layanan memiliki tingkat akses yang berbeda untuk setiap repositori di project Anda.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:FLEET_HOST_PROJECT_ID.svc.id.goog[config-management-system/KSA_NAME]" \ --project=PROJECT_ID
Ganti kode berikut:
PROJECT_ID
: project ID organisasi.FLEET_HOST_PROJECT_ID
: jika Anda menggunakan GKE Workload Identity Federation for GKE, nilai ini sama denganPROJECT_ID
. Jika Anda menggunakan fleet Workload Identity Federation untuk GKE, ini adalah project ID fleet tempat cluster Anda terdaftar.KSA_NAME
: akun layanan Kubernetes untuk rekonsiliasi.- Untuk repositori root, jika nama
RootSync
adalahroot-sync
, gunakanroot-reconciler
. Jika tidak, gunakanroot-reconciler-ROOT_SYNC_NAME
.
- Untuk repositori root, jika nama
REPOSITORY
: ID repositori.LOCATION
: lokasi regional atau multi-regional repositori.
Akun layanan default Compute Engine
Jika Anda menyimpan diagram Helm di Artifact Registry dan cluster Anda adalah GKE dengan Workload Identity Federation untuk GKE dinonaktifkan, Anda dapat menggunakan gcenode
sebagai jenis autentikasi.
Config Sync menggunakan akun layanan default Compute Engine.
Anda harus memberikan akses pembaca ke Artifact Registry untuk akun layanan default Compute Engine Anda. Anda mungkin perlu memberikan cakupan akses storage-ro
untuk memberikan izin hanya baca guna menarik gambar.
Berikan izin baca akun layanan Compute Engine ke Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER[email protected] \ --role=roles/artifactregistry.reader
Ganti
PROJECT_ID
dengan project ID organisasi Anda, dan gantiPROJECT_NUMBER
dengan nomor project organisasi Anda.
Mengonfigurasi Config Sync
Di bagian ini, Anda akan mengonfigurasi setelan untuk repositori root. Jika Anda menyinkronkan ke repositori Git, Anda dapat menggunakan konsol Google Cloud untuk memandu Anda melalui proses penginstalan dan mengotomatiskan beberapa langkah.
Saat Anda menginstal Config Sync menggunakan konsol Google Cloud atau Google Cloud CLI, Config Sync akan otomatis membuat objek RootSync bernama root-sync
. Anda dapat menggunakan perintah kubectl
untuk mengubah root-sync
dan menambahkan
konfigurasi Config Sync tambahan. Untuk mempelajari lebih lanjut, lihat
Mengonfigurasi Config Sync dengan perintah kubectl
.
Konsol
Menginstal Config Sync
Untuk menginstal Config Sync, semua cluster harus didaftarkan ke fleet. Saat Anda menginstal Config Sync di konsol Google Cloud , memilih setiap cluster akan otomatis mendaftarkan cluster tersebut ke fleet Anda.
- Di konsol Google Cloud , buka halaman Config di bagian Features.
- Klik add Instal Config Sync.
- Pilih versi Config Sync yang ingin Anda gunakan.
- Di bagian Opsi penginstalan, pilih salah satu opsi berikut:
- Instal Config Sync di seluruh armada (direkomendasikan): Config Sync akan diinstal di semua cluster dalam armada.
- Menginstal Config Sync di setiap cluster: semua cluster yang dipilih akan otomatis didaftarkan ke fleet. Config Sync akan diinstal di semua cluster dalam armada.
- Jika Anda menginstal Config Sync di setiap cluster, di tabel Available clusters, pilih cluster tempat Anda ingin menginstal Config Sync.
- Klik Install Config Sync. Di tab Setelan, setelah beberapa menit, Anda akan melihat Diaktifkan di kolom Status untuk cluster di armada Anda.
Men-deploy paket
Setelah mendaftarkan cluster ke armada dan menginstal Config Sync, Anda dapat mengonfigurasi Config Sync untuk men-deploy paket ke cluster dari sumber tepercaya. Anda dapat men-deploy paket yang sama ke beberapa cluster atau men-deploy paket yang berbeda ke cluster yang berbeda. Anda dapat mengedit paket setelah men-deploy-nya, kecuali untuk beberapa setelan seperti nama paket dan jenis sinkronisasi. Untuk mengetahui informasi selengkapnya, lihat Mengelola paket.
Untuk men-deploy paket, selesaikan langkah-langkah berikut:
Di konsol Google Cloud , buka dasbor Config Sync.
Klik Deploy Package.
Pada tabel Select clusters for package deployment, pilih cluster yang ingin Anda gunakan untuk men-deploy paket, lalu klik Continue.
Pilih Package hosted on Git atau Package hosted on OCI sebagai jenis sumber Anda, lalu klik Continue.
Di bagian Package details, masukkan Package name, yang mengidentifikasi objek RootSync atau RepoSync.
Di kolom Sync type, pilih Cluster scoped sync atau Namespace scoped sync sebagai jenis sinkronisasi.
Sinkronisasi cakupan cluster membuat objek RootSync dan sinkronisasi cakupan Namespace membuat objek RepoSync. Untuk mengetahui informasi selengkapnya tentang objek ini, lihat Arsitektur Config Sync.
Di bagian Sumber, selesaikan langkah-langkah berikut:
Untuk sumber yang dihosting di repositori Git, masukkan kolom berikut:
- Masukkan URL repositori Git yang Anda gunakan sebagai sumber tepercaya sebagai URL Repositori.
- Opsional: Perbarui kolom Revisi untuk melakukan checkout jika Anda tidak menggunakan
HEAD
default. - Opsional: Perbarui kolom Path jika Anda tidak ingin menyinkronkan dari repositori root.
- Opsional: Perbarui kolom Branch jika Anda tidak menggunakan cabang
main
default.
Untuk sumber yang dihosting dalam image OCI, masukkan kolom berikut:
- Masukkan URL gambar OCI yang Anda gunakan sebagai sumber kebenaran sebagai Gambar.
- Masukkan jalur direktori yang akan disinkronkan dari, relatif terhadap direktori root, sebagai Direktori.
(Opsional): Luaskan bagian Advanced settings untuk menyelesaikan langkah-langkah berikut:
Pilih Jenis autentikasi. Config Sync memerlukan akses hanya baca ke sumber tepercaya Anda untuk membaca file konfigurasi di sumber dan menerapkannya ke cluster Anda. Kecuali jika sumber Anda tidak memerlukan autentikasi, seperti repositori publik, pastikan Anda memberikan akses hanya baca ke Config Sync untuk repositori Git, image OCI, atau Helm chart (khusus gcloud CLI). Pilih jenis autentikasi yang sama dengan yang Anda konfigurasi saat menginstal Config Sync:
- Tidak ada: Tidak menggunakan autentikasi.
- SSH: Lakukan autentikasi menggunakan pasangan kunci SSH.
- Cookiefile: Lakukan autentikasi dengan menggunakan
cookiefile
. - Token: Lakukan autentikasi menggunakan token akses atau sandi.
- Google Cloud Repository: Menggunakan akun layanan Google untuk mengakses repositori Cloud Source Repositories. Pilih opsi ini hanya jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.
- Workload Identity: Menggunakan akun layanan Google untuk mengakses repositori Cloud Source Repositories.
Masukkan angka dalam detik untuk menyetel Waktu tunggu sinkronisasi, yang menentukan durasi Config Sync menunggu di antara upaya penarikan dari sumber tepercaya.
Masukkan URL proxy Git untuk proxy HTTPS yang akan digunakan saat berkomunikasi dengan sumber tepercaya.
Pilih Hierarki untuk mengubah Format sumber.
Nilai default Tidak terstruktur direkomendasikan dalam sebagian besar kasus karena memungkinkan Anda mengatur sumber tepercaya sesuai keinginan.
Klik Deploy Package.
Anda akan dialihkan ke halaman Packages Config Sync. Setelah beberapa menit, Anda akan melihat Disinkronkan di kolom Status sinkronisasi untuk cluster yang Anda konfigurasi.
gcloud
Sebelum melanjutkan, pastikan Anda telah mendaftarkan cluster ke fleet.
Aktifkan fitur fleet
ConfigManagement
:gcloud beta container fleet config-management enable
Siapkan konfigurasi dengan membuat manifes
apply-spec.yaml
baru atau menggunakan manifes yang sudah ada. Dengan menggunakan manifes yang ada, Anda dapat mengonfigurasi cluster dengan setelan yang sama dengan yang digunakan oleh cluster lain.Buat manifes baru
Untuk mengonfigurasi Config Sync dengan setelan baru untuk cluster Anda, buat file bernama
apply-spec.yaml
dan salin file YAML berikut ke dalamnya.Anda dapat menetapkan semua kolom
spec.configSync
opsional yang diperlukan saat membuat manifes, dan kemudian menggunakan perintahkubectl
untuk konfigurasi. Anda juga hanya dapat menetapkan kolomspec.configSync.enabled
sebagaitrue
dan menghilangkan kolom opsional. Anda kemudian dapat menggunakan perintahkubectl
untuk membuat objek RootSync tambahan atau RepoSync yang dapat Anda kelola sepenuhnya menggunakan perintahkubectl
nanti.# apply-spec.yaml applySpecVersion: 1 spec: configSync: enabled: true # If you don't have a source of truth yet, omit the # following fields. You can configure them later. sourceType: SOURCE_TYPE sourceFormat: FORMAT syncRepo: REPO syncRev: REVISION syncBranch: BRANCH secretType: SECRET_TYPE gcpServiceAccountEmail: EMAIL metricsGcpServiceAccountEmail: METRICS_EMAIL policyDir: DIRECTORY preventDrift: PREVENT_DRIFT
Ganti kode berikut:
SOURCE_TYPE
: tambahkangit
untuk menyinkronkan dari repositori Git,oci
untuk menyinkronkan dari image OCI, atauhelm
untuk menyinkronkan dari diagram Helm. Jika tidak ada nilai yang ditentukan, nilai defaultnya adalahgit
.FORMAT
: tambahkanunstructured
untuk menggunakan repositori tidak terstruktur atau tambahkanhierarchy
untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Kolom ini bersifat opsional dan nilai defaultnya adalahhierarchy
. Sebaiknya tambahkanunstructured
, karena format ini memungkinkan Anda mengatur konfigurasi dengan cara yang paling nyaman bagi Anda.REPO
: tambahkan URL sumber tepercaya. URL repositori Git dan Helm menggunakan protokol HTTPS atau SSH. Contoh,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
. Jika Anda berencana menggunakan SSH sebagaisecretType
, masukkan URL Anda dengan protokol SSH. Kolom ini wajib diisi dan jika Anda tidak memasukkan protokol, URL akan diperlakukan sebagai URL HTTPS.URL OCI menggunakan format berikut:
LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Secara default, image diambil dari taglatest
, tetapi Anda dapat mengambil image berdasarkanTAG
atauDIGEST
. TentukanTAG
atauDIGEST
diPACKAGE_NAME
:- Untuk menarik menurut
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Untuk menarik menurut
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Untuk menarik menurut
REVISION
: revisi Git (tag atau hash) atau nama cabang yang akan disinkronkan. Saat menggunakan hash, hash tersebut harus berupa hash lengkap, bukan bentuk singkat.SECRET_TYPE
: salah satusecretTypes
berikut:git
none
: Tidak menggunakan autentikasi.ssh
: Gunakan pasangan kunci SSH.cookiefile
: Gunakancookiefile
.token
: Menggunakan token.gcpserviceaccount
: Menggunakan akun layanan Google untuk mengakses Cloud Source Repositories. Jika memilih jenis autentikasi ini, Anda harus membuat binding kebijakan IAM setelah selesai mengonfigurasi Config Sync. Untuk mengetahui detailnya, lihat tab akun layanan Google di bagian Memberikan akses hanya baca Config Sync ke Git.gcenode
: Menggunakan akun layanan Google untuk mengakses Cloud Source Repositories. Pilih opsi ini hanya jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.githubapp
: Menggunakan Aplikasi GitHub untuk mengautentikasi ke repositori GitHub.
Untuk mengetahui informasi selengkapnya tentang jenis autentikasi ini, lihat Memberikan akses hanya baca Config Sync ke Git.
oci
none
: Tidak menggunakan autentikasigcenode
: Gunakan akun layanan default Compute Engine untuk mengakses image di Artifact Registry. Pilih opsi ini hanya jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Menggunakan akun layanan Google untuk mengakses gambar.
helm
token
: Menggunakan token.gcenode
: Gunakan akun layanan default Compute Engine untuk mengakses image di Artifact Registry. Pilih opsi ini hanya jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Menggunakan akun layanan Google untuk mengakses gambar.
EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaisecretType
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.METRICS_EMAIL
: email Google Cloud Akun Layanan (GSA) yang digunakan untuk mengekspor metrik Config Sync ke Cloud Monitoring. GSA harus memiliki peran IAM Monitoring Metric Writer (roles/monitoring.metricWriter
).default
Akun Layanan Kubernetes di namespaceconfig-management-monitoring
harus terikat ke GSA.DIRECTORY
: jalur direktori yang akan disinkronkan, relatif terhadap root repositori Git. Semua subdirektori dari direktori yang Anda tentukan disertakan dan disinkronkan ke cluster. Nilai defaultnya adalah direktori root repositori.PREVENT_DRIFT
: Jika disetel ketrue
, akan mengaktifkan webhook penerimaan Config Sync untuk mencegah penyimpangan dengan menolak perubahan yang bertentangan agar tidak dikirim ke cluster aktif. Setelan default-nya adalahfalse
. Config Sync selalu memperbaiki penyimpangan, apa pun nilai kolom ini.
Untuk mengetahui daftar lengkap kolom yang dapat Anda tambahkan ke kolom
spec
, lihat gcloud fields.Menggunakan manifes yang ada
Untuk mengonfigurasi cluster Anda dengan setelan yang sama dengan yang digunakan oleh cluster lain, ambil setelan dari cluster terdaftar:
gcloud alpha container fleet config-management fetch-for-apply \ --membership=MEMBERSHIP_NAME \ --project=PROJECT_ID \ > CONFIG_YAML_PATH
Ganti kode berikut:
MEMBERSHIP_NAME
: nama keanggotaan cluster terdaftar yang memiliki setelan Config Sync yang ingin Anda gunakanPROJECT_ID
: project ID AndaCONFIG_YAML_PATH
: jalur ke fileapply-spec.yaml
yang berisi setelan yang diambil dari cluster
Terapkan file
apply-spec.yaml
. Jika menggunakan manifes yang ada, Anda harus menerapkan file ke cluster yang ingin dikonfigurasi dengan setelan yang Anda ambil pada perintah sebelumnya:gcloud beta container fleet config-management apply \ --membership=MEMBERSHIP_NAME \ --config=CONFIG_YAML_PATH \ --project=PROJECT_ID
Ganti kode berikut:
MEMBERSHIP_NAME
: nama keanggotaan fleet yang Anda pilih saat mendaftarkan cluster. Anda dapat menemukan nama dengangcloud container fleet memberships list
.CONFIG_YAML_PATH
: jalur ke fileapply-spec.yaml
Anda.PROJECT_ID
: project ID Anda.
Terraform
Untuk setiap cluster yang ingin Anda konfigurasi Config Sync-nya,
terapkan blok resource google_gkehub_feature_membership
yang berisi
blok configmanagement
dan config_sync
, seperti dalam contoh berikut:
git
Ganti kode berikut:
REPO
: URL ke repositori Git yang berisi file konfigurasi Anda.BRANCH
: cabang repositori, misalnyamain
.DIRECTORY
: jalur dalam repositori Git yang merepresentasikan tingkat teratas repositori yang ingin Anda sinkronkan.SECRET
: jenis autentikasi secret.
oci
Ganti kode berikut:
REPO
: URL ke repositori image OCI yang berisi file konfigurasi Anda.DIRECTORY
: jalur absolut direktori yang berisi resource yang ingin Anda sinkronkan. Untuk menggunakan direktori root, kosongkan kolom ini.SECRET
: jenis autentikasi secret.
Ulangi proses ini untuk setiap cluster yang ingin Anda sinkronkan.
Untuk mempelajari lebih lanjut cara menggunakan Terraform, lihat artikel Dukungan Terraform untuk Config Sync.
Setelah selesai mengonfigurasi repositori root, Anda dapat memilih untuk mengonfigurasi sinkronisasi dari beberapa repositori, termasuk repositori root dan repositori namespace lainnya. Repositori namespace berguna jika Anda menginginkan repositori yang berisi konfigurasi yang dicakup namespace yang disinkronkan ke namespace tertentu di seluruh cluster.
Mengonfigurasi default tingkat armada
Jika Anda telah mengaktifkan edisi Google Kubernetes Engine (GKE) Enterprise, Anda dapat mengaktifkan dan mengonfigurasi Config Sync sebagai default tingkat fleet untuk cluster Anda. Artinya, setiap cluster GKE di Google Cloud baru yang dibuat di armada akan mengaktifkan Config Sync di cluster dengan setelan yang Anda tentukan. Anda dapat mengetahui lebih lanjut konfigurasi default fleet di Mengelola fitur tingkat fleet.
Jika hanya menggunakan konsol Google Cloud , Anda dapat mengaktifkan Config Sync secara default di cluster dan menyetel versi Config Sync untuk armada Anda. Jika Anda menggunakan gcloud CLI atau Terraform, Anda dapat mengaktifkan Config Sync secara default di cluster, menetapkan versi Config Sync untuk fleet, dan menyiapkan koneksi ke repositori Git atau repositori image OCI.
Untuk mengonfigurasi default tingkat armada untuk Config Sync, selesaikan langkah-langkah berikut:
gcloud
Jalankan perintah enable
untuk fitur tersebut, dengan meneruskan file konfigurasi apply-spec.yaml
yang Anda buat saat
mengonfigurasi Config Sync di cluster tertentu:
gcloud beta container fleet config-management enable \
--fleet-default-member-config=apply-spec.yaml
Anda dapat menggunakan perintah ini untuk memperbarui setelan default armada kapan saja. Jika Anda memperbarui setelan default armada, Anda harus menyinkronkan ulang cluster yang ada ke setelan default.
Konsol
Di konsol Google Cloud , buka halaman Feature Manager.
Di panel Config Sync, klik Configure.
Tinjau setelan tingkat armada Anda. Semua cluster baru yang Anda buat di fleet akan mewarisi setelan ini.
Opsional: Untuk mengubah setelan default, klik Sesuaikan setelan armada. Pada dialog yang muncul, lakukan hal berikut:
Pilih versi Config Sync yang ingin Anda gunakan.
Klik Simpan perubahan.
Klik Configure.
Pada dialog konfirmasi Mengonfigurasi setelan armada, klik Konfirmasi. Jika Anda belum pernah mengaktifkan Config Sync, mengklik Confirm juga akan mengaktifkan
anthosconfigmanagement.googleapis.com
API.
Terraform
Untuk mengaktifkan Config Sync di seluruh armada, lihat contoh berikut:
git
Ganti kode berikut:
REPO
: URL ke repositori Git yang berisi file konfigurasi Anda.BRANCH
: cabang repositori, misalnyamain
.DIRECTORY
: jalur dalam repositori Git yang merepresentasikan tingkat teratas repositori yang ingin Anda sinkronkan.SECRET
: jenis autentikasi secret.
oci
Ganti kode berikut:
REPO
: URL ke repositori image OCI yang berisi file konfigurasi Anda.DIRECTORY
: jalur absolut direktori yang berisi resource yang ingin Anda sinkronkan. Untuk menggunakan direktori root, kosongkan kolom ini.SECRET
: jenis autentikasi secret.
Untuk mempelajari lebih lanjut cara menggunakan Terraform, lihat artikel Dukungan Terraform untuk Config Sync.
Untuk mengupdate cluster yang ada agar menggunakan setelan Config Sync default, Anda dapat menggunakan konsol Google Cloud atau gcloud CLI untuk menyinkronkan cluster fleet yang dipilih ke default fleet Anda. Atau, Anda dapat mengonfigurasi setiap
cluster secara manual dengan setelan yang sama menggunakan Terraform dengan mengikuti petunjuk untuk
mengonfigurasi Config Sync. Jika sebelumnya Anda menggunakan
Terraform untuk menentukan default fleet, gunakan blok configmanagement
dan
config_sync
yang sama dengan yang Anda gunakan untuk menyetel default guna mengonfigurasi
cluster yang Anda pilih.
Untuk menyinkronkan setelan default Config Sync di seluruh fleet Anda, ikuti langkah-langkah berikut:
gcloud
Menyinkronkan langganan yang ada ke konfigurasi default armada:
gcloud beta container fleet config-management apply \ --origin=FLEET \ --membership=MEMBERSHIP_NAME
Ganti
MEMBERSHIP_NAME
dengan nama keanggotaan fleet cluster yang ingin Anda sinkronkan dengan konfigurasi default fleet.Pastikan konfigurasi keanggotaan Anda disinkronkan dengan default fleet:
gcloud beta container fleet config-management status
Output perintah ini akan ditampilkan sebagai
Yes
untuk statusSynced_to_Fleet_Default
keanggotaan yang Anda sinkronkan.
console
Buka Pengelola Fitur:
Di tabel cluster, pilih cluster yang ingin Anda sinkronkan ke setelan armada.
Klik Sinkronkan ke setelan inventaris.
Untuk menonaktifkan setelan default Config Sync di seluruh fleet, ikuti langkah-langkah berikut:
Untuk menonaktifkan konfigurasi default armada, jalankan perintah berikut:
gcloud beta container fleet config-management disable --fleet-default-member-config
Pastikan konfigurasi default armada dinonaktifkan:
gcloud beta container fleet config-management status
Setelan default Config Sync diterapkan ke cluster yang Anda pilih. Meskipun Google Cloud konsol hanya menampilkan sebagian setelan, seperti versi Config Sync, semua setelan tingkat armada disinkronkan ke cluster. Misalnya, jika Anda mengonfigurasi Config Sync untuk menyinkronkan ke repositori Git menggunakan Terraform atau gcloud CLI, setelan tersebut akan disinkronkan ke cluster Anda, tetapi tidak ditampilkan di konsol Google Cloud .
Memverifikasi penginstalan
Setelah menginstal dan mengonfigurasi Config Sync, Anda dapat memverifikasi bahwa penginstalan berhasil diselesaikan.
Konsol
Selesaikan langkah-langkah berikut:
- Di konsol Google Cloud , buka halaman Config di bagian Features.
- Di tab Paket, periksa kolom Status sinkronisasi dalam tabel cluster. Penginstalan Config Sync yang berhasil akan memiliki status Diinstal. Sumber tepercaya yang berhasil dikonfigurasi memiliki status Disinkronkan.
gcloud
Jalankan perintah berikut:
gcloud beta container fleet config-management status \
--project=PROJECT_ID
Ganti PROJECT_ID
dengan ID project Anda.
Penginstalan yang berhasil memiliki status SYNCED
dengan versi Config Sync yang diinstal.
Jika Anda melihat error setelah menjalankan perintah sebelumnya, pastikan Anda telah membuat Secret git-creds
. Jika Anda telah membuat Secret, coba jalankan kembali perintah berikut:
gcloud beta container fleet config-management apply
Anda juga dapat menggunakan
perintah nomos status
untuk
memeriksa apakah Config Sync berhasil diinstal. Penginstalan yang valid
tanpa masalah memiliki status PENDING
atau SYNCED
. Penginstalan yang tidak valid atau tidak lengkap memiliki status NOT INSTALLED
ATAU NOT CONFIGURED
. Output juga mencakup error yang dilaporkan.
Kontrol akses dan izin berbasis peran (RBAC)
Config Sync mencakup workload dengan hak istimewa tinggi. Tabel berikut mencantumkan izin untuk workload ini:
Komponen | Namespace | Akun Layanan | Izin | Deskripsi |
---|---|---|---|---|
Operator ConfigManagement | config-management-system |
config-management-operator |
cluster-admin | Operator ConfigManagement menginstal komponen lain dalam tabel ini. Beberapa komponen tersebut memerlukan izin cluster-admin, sehingga ConfigManagement Operator juga memerlukannya. |
Config Sync | config-management-system |
Lihat izin Config Sync untuk mengetahui izin yang diperlukan. |
Permintaan resource
Bagian berikut mencantumkan permintaan resource untuk Config Sync.
Tabel berikut mencantumkan persyaratan resource Kubernetes untuk komponen Config Sync. Untuk mengetahui informasi selengkapnya, lihat Mengelola Resource untuk Container dalam dokumentasi Kubernetes.
Tidak semua komponen yang tercantum dibuat. Kondisi berikut menyebabkan setiap komponen dijadwalkan:
config-management-operator
diinstal saat Config Sync diaktifkan.reconciler-manager
diinstal saat Config Sync diaktifkan.admission-webhook
diinstal saat pencegahan penyimpangan diaktifkan.reconciler
diinstal untuk setiap RootSync dan RepoSync.otel-collector
diinstal saat Config Sync diaktifkan.
Untuk mempelajari lebih lanjut komponen ini, lihat Arsitektur Config Sync.
Permintaan resource sama untuk semua versi Config Sync yang didukung.
Nama deployment | Permintaan CPU (m) per replika | Permintaan memori (Mi) per replika |
---|---|---|
config-management-operator |
100 | 200 |
resource-group-controller-manager |
110 | 300 |
admission-webhook1 |
10 | 100 |
otel-collector |
200 | 400 |
reconciler-manager |
20 | 150 |
reconciler (satu per RootSync dan RepoSync) |
Lihat deployment rekonsiliasi untuk mengetahui detailnya. |
1 Webhook penerimaan memiliki dua replika, jadi saat menghitung total permintaan resource, Anda harus menggandakan nilai jika menggunakan webhook penerimaan. Webhook penerimaan dinonaktifkan secara default.
Deployment rekonsiliasi
Untuk setiap objek RootSync
dan RepoSync
, Config Sync membuat deployment rekonsiliasi independen untuk menangani sinkronisasi. Deployment rekonsiliasi
terdiri dari beberapa container. Untuk mempelajari lebih lanjut penampung ini, lihat
Penampung rekonsiliasi.
Cluster standar
Permintaan resource sama untuk semua versi Config Sync yang didukung.
Nama penampung | Permintaan CPU (m) | Permintaan memori (Mi) |
---|---|---|
reconciler |
50 | 200 |
otel-agent |
10 | 100 |
hydration-controller (Opsional) |
10 | 100 |
git-sync |
10 | 16 |
gcenode-askpass-sidecar (Opsional) |
10 | 20 |
helm-sync |
75 | 128 |
oci-sync |
25 | 32 |
Cluster Autopilot
Permintaan resource sama untuk semua versi Config Sync yang didukung.
Nama penampung | Permintaan dan batas CPU (m) | Permintaan dan batas memori (Mi) |
---|---|---|
reconciler |
700 | 512 |
otel-agent |
10 | 64 |
hydration-controller (Opsional) |
200 | 256 |
git-sync |
20 | 32 |
gcenode-askpass-sidecar (Opsional) |
50 | 64 |
helm-sync |
250 | 384 |
oci-sync |
50 | 64 |
Untuk mempelajari cara mengganti permintaan dan batas resource default, lihat penggantian resource.
Versi Helm dan Kustomize yang dibundel
Config Sync memanfaatkan file yang dapat dieksekusi Helm dan Kustomize untuk merender konfigurasi di balik layar. Tabel berikut berisi daftar versi Config Sync yang mendukung fitur rendering, beserta versi Helm dan Kustomize yang disertakan.
Versi Config Sync | Versi Helm | Versi Kustomize |
---|---|---|
1.20.0 | v3.15.3 | v5.3.0 |
1.19.0 | v3.15.3 | v5.3.0 |
1.18.1 | v3.14.4 | v5.3.0 |
1.18.0 | v3.14.3 | v5.3.0 |
1.17.1 dan 1.17.3 | v3.13.3 | v5.3.0 |
Untuk mengetahui informasi tentang cara merender Helm melalui Kustomize, lihat Mengonfigurasi Kubernetes dengan Kustomize. Untuk mengetahui informasi tentang penggunaan Helm API, lihat Menyinkronkan diagram Helm dari Artifact Registry.
Langkah berikutnya
- Pelajari cara mengupgrade Config Sync.
- Pelajari lebih lanjut perintah
gcloud
untuk mengonfigurasi Config Sync. - Pelajari cara mengonfigurasi sinkronisasi dari beberapa repositori.
- Gunakan perintah
nomos
. - Baca Pengantar pemecahan masalah Config Sync.
- Pelajari cara meng-uninstal Config Sync.
- Tinjau izin Sinkronisasi Konfigurasi Default.