Menginstal Config Sync
Dengan Config Sync, Anda dapat mengelola resource Kubernetes dengan file konfigurasi yang disimpan dalam sumber tepercaya. Config Sync mendukung repositori Git, image OCI, dan diagram Helm sebagai sumber kebenaran. Halaman ini menunjukkan cara mengaktifkan dan mengonfigurasi Config Sync agar disinkronkan dari repositori root Anda. Config Sync tersedia di edisi Google Kubernetes Engine (GKE) Enterprise.
Saat Anda menginstal Config Sync menggunakan Google Cloud Console atau Google Cloud CLI, RootSync
API dan RepoSync
API diaktifkan secara default. Hal ini
memberi Anda fitur tambahan seperti menyinkronkan dari beberapa repositori
dan menyinkronkan konfigurasi Kustomize dan Helm.
Sebelum memulai
Sebelum menginstal Config Sync, siapkan lingkungan, pastikan Anda memenuhi persyaratan cluster, dan memberikan 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 sini, Anda akan menambahkan konfigurasi yang disinkronkan ke Config Sync. Untuk mempelajari lebih lanjut cara menyiapkan konfigurasi dan sumber tepercaya, lihat salah satu panduan berikut:
- Instal dan inisialisasi Google Cloud CLI, yang menyediakan
perintah
gcloud
, dannomos
. Jika Anda menggunakan Cloud Shell, Google Cloud CLI sudah terinstal.
Persyaratan cluster
Buat atau pastikan Anda memiliki akses ke cluster yang memenuhi persyaratan berikut:
- Menggunakan platform dan versi yang didukung di edisi Google Kubernetes Engine (GKE) Enterprise.
Jika Anda menggunakan cluster Autopilot, Autopilot akan menyesuaikan persyaratan resource container untuk memenuhi aturan berikut:
- Batas resource ditetapkan sama dengan permintaan resource.
- VCPU pod tersedia dalam kelipatan 0,25 vCPU (dibulatkan ke atas).
- Nilai minimumnya adalah 250 miliCPU (mCPU).
- Rasio memori (dalam GiB) hingga vCPU harus dalam rentang 1 hingga 6,5 vCPU.
Karena aturan ini, untuk cluster Autopilot, Config Sync:
- menyesuaikan batas penggantian resource yang ditentukan pengguna dengan permintaan pencocokan.
- hanya menerapkan penggantian jika ada satu atau beberapa permintaan resource yang lebih tinggi daripada output terkait yang disesuaikan dan dideklarasikan dalam anotasi, atau ada satu atau beberapa permintaan resource yang lebih rendah daripada input terkait yang dideklarasikan dalam anotasi.
(Opsional) mengaktifkan Workload Identity jika Anda menggunakan cluster GKE. Workload Identity adalah cara yang direkomendasikan untuk mengakses layanan Google Cloud dari aplikasi yang berjalan di dalam GKE karena properti keamanan dan pengelolaannya yang lebih baik. Jika Anda mengaktifkan Workload Identity dan ingin mengaktifkan Cloud Monitoring untuk Config Sync, Anda harus memberikan izin penulisan metrik yang benar.
Jika Anda ingin menggunakan cluster GKE pribadi, konfigurasikan Cloud NAT untuk mengizinkan traffic keluar dari node GKE pribadi. Untuk mengetahui detailnya, lihat Contoh penyiapan GKE. Atau, Anda dapat mengaktifkan Akses Google Pribadi agar terhubung ke kumpulan alamat IP eksternal yang digunakan oleh Google API dan layanan Google.
Jika ingin menggunakan akun layanan Google saat memberi Config Sync akses ke sumber tepercaya, Anda harus menyertakan cakupan hanya baca dalam cakupan akses untuk node dalam cluster untuk Cloud Source Repositories.
Anda dapat menambahkan cakupan hanya baca dengan menyertakan
cloud-source-repos-ro
dalam daftar--scopes
yang ditentukan pada waktu pembuatan cluster, atau menggunakan cakupancloud-platform
pada waktu pembuatan cluster. Contoh:gcloud container clusters create CLUSTER_NAME --scopes=cloud-platform
Anda tidak dapat mengubah cakupan akses setelah membuat kumpulan node. Namun, Anda dapat membuat kumpulan node baru dengan cakupan akses yang tepat saat menggunakan cluster yang sama. Cakupan
gke-default
default tidak menyertakancloud-source-repos-ro
.Jika Anda memiliki persyaratan Firewall VPC yang ketat dan memblokir traffic yang tidak diperlukan, Anda harus Membuat aturan firewall untuk mengizinkan traffic berikut di cluster GKE publik:
TCP: Mengizinkan traffic masuk dan keluar di port 53 dan 443
UDP: Mengizinkan traffic keluar di port 53
Jika Anda tidak menyertakan aturan ini, Config Sync tidak akan disinkronkan dengan benar, dan
nomos status
melaporkan error berikut:Error: KNV2004: unable to sync repo Error in the git-sync container
Anda dapat melewati langkah-langkah ini jika menggunakan cluster GKE pribadi.
Menyiapkan cluster Anda
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 sudah terdaftar ke fleet sekarang. Jika berencana menggunakan Konsol Google Cloud, Anda dapat mendaftarkan cluster GKE saat mengonfigurasi Config Sync.
Menginstal Config Sync
Di bagian berikut, Anda memberikan akses Config Sync ke salah satu sumber tepercaya 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 tidak memerlukan autentikasi untuk akses hanya baca, Anda dapat
terus mengonfigurasi Config Sync dan
menggunakan none
sebagai jenis autentikasi. 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 diperlukan, kredensial akan disimpan di Rahasia git-creds
pada 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 autentikasi berikut:
- Pasangan kunci SSH (
ssh
) - File cookie (
cookiefile
) - Token (
token
) - Akun layanan Google (
gcpserviceaccount
) - Akun layanan default Compute Engine (
gcenode
)
Mekanisme yang Anda pilih bergantung pada repositori yang didukung. Secara umum, kami merekomendasikan penggunaan pasangan kunci SSH. baik GitHub maupun Bitbucket, menggunakan 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 Anda, selesaikan langkah-langkah berikut untuk mengambil URL Cloud Source Repositories:
Tampilkan daftar 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 perlu menggunakan URL ini saat mengonfigurasi Config Sync di bagian berikut. Jika Anda mengonfigurasi Config Sync menggunakan Google Cloud Console, tambahkan URL di kolom URL. Jika mengonfigurasi Config Sync menggunakan Google Cloud CLI, Anda dapat menambahkan URL ke kolom
syncRepo
file konfigurasi.
Pasangan kunci SSH
Pasangan kunci SSH terdiri dari dua file, 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 melakukan autentikasi ke repositori untuk meng-clone atau membaca dari repositori. Lewati langkah ini jika administrator keamanan memberi Anda pasangan kunci. Anda dapat menggunakan pasangan kunci tunggal 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 untuk digunakan oleh Config Sync untuk melakukan autentikasi ke repositori/path/to/KEYPAIR_FILENAME
: jalur ke pasangan kunci
Jika Anda menggunakan host repositori Git pihak ketiga seperti GitHub, atau ingin menggunakan akun layanan dengan Cloud Source Repositories, sebaiknya gunakan 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 buat kunci deploy terpisah untuk memberikan akses hanya baca ke satu repositori GitHub.
- GitLab
Tambahkan kunci pribadi ke Secret baru dalam 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 (kunci 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
di secretgit_creds
. Untuk menonaktifkan pemeriksaanknown_hosts
, Anda dapat menghapus kolomknown_hosts
dari secret. Untuk menambahkan kunci host yang dikenal, jalankan:kubectl edit secret git-creds \ --namespace=config-management-system
Kemudian, di bagian
data
, tambahkan entri host yang diketahui:known_hosts: KNOWN_HOSTS_KEY
Menghapus kunci pribadi dari disk lokal atau melindunginya.
Saat Anda mengonfigurasi Config Sync dan menambahkan URL untuk repositori Git Anda, gunakan protokol SSH. Jika 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 project Google Cloud tempat repositori beradaREPO_NAME
: nama repositori
File cookie
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 utama Anda, atau mungkin diberikan kepada Anda oleh administrator keamanan.
Untuk menggunakan cookiefile
, selesaikan langkah-langkah berikut:
Setelah Anda membuat dan mendapatkan
cookiefile
, tambahkan ke Secret baru di 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 proxy tersebut 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, Anda dapat memilih untuk menggunakan token. Dengan Config Sync, Anda dapat menggunakan token akses pribadi (PAT) GitHub, PAT GiLab, atau men-deploy kunci, atau sandi aplikasi Bitbucket sebagai token Anda.
Untuk membuat Secret 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: Membuat PAT atau membuat token deploy
- Bitbucket: Membuat sandi aplikasi.
- GitHub: Buat PAT.
Beri token cakupan
Setelah Anda membuat dan mendapatkan token, tambahkan token tersebut ke Secret baru di 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 di langkah sebelumnya.
Jika Anda perlu menggunakan proxy HTTPS, tambahkan proxy tersebut 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 di 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 data tersebut.
Akun layanan Google
Jika repositori Anda berada di Cloud Source Repositories, dan cluster Anda menggunakan GKE Workload Identity atau fleet Workload Identity, 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 Memberikan izin untuk melihat repositori.Berikan izin lingkup 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 dalam project Anda.
gcloud source repos set-iam-policy REPOSITORY POLICY_FILE --project=PROJECT_ID
Jika Anda mengonfigurasi Config Sync menggunakan Google Cloud Console, pilih Workload Identity sebagai Authentication Type, lalu tambahkan email akun layanan Anda.
Jika Anda mengonfigurasi Config Sync menggunakan Google Cloud CLI, tambahkan
gcpserviceaccount
sebagaisecretType
, lalu tambahkan email akun layanan kegcpServiceAccountEmail
.Setelah mengonfigurasi Config Sync, buat binding kebijakan IAM antara akun layanan Kubernetes dan akun layanan Google. Akun layanan Kubernetes tidak akan dibuat hingga Anda mengonfigurasi Config Sync untuk pertama kalinya.
Jika menggunakan cluster yang terdaftar ke suatu fleet, Anda hanya perlu membuat binding kebijakan satu kali per fleet. Semua cluster yang terdaftar dalam fleet memiliki Workload Identitypool yang sama. Dengan konsep fleet kesamaan, jika Anda menambahkan kebijakan IAM ke akun layanan Kubernetes dalam satu cluster, akun layanan Kubernetes dari namespace yang sama di cluster lain dalam fleet yang sama juga akan mendapatkan kebijakan IAM yang sama.
Dengan binding ini, akun layanan Kubernetes Config Sync dapat 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, ini sama denganPROJECT_ID
. Jika Anda menggunakan fleet Workload Identity, 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 rekonsiler.- Untuk repositori root, jika nama
RootSync
adalahroot-sync
, gunakanroot-reconciler
. Jika tidak, gunakanroot-reconciler-ROOT_SYNC_NAME
. Jika Anda menginstal Config Sync menggunakan Google Cloud Console atau Google Cloud CLI, Config Sync akan otomatis membuat objek RootSync yang 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 di Google Cloud dengan Workload Identity dinonaktifkan, Anda dapat menggunakan gcenode
sebagai jenis autentikasi.
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 akan 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-compute@developer.gserviceaccount.com"
Ganti PROJECT_ID
dengan project ID organisasi Anda, dan ganti PROJECT_NUMBER
dengan nomor project organisasi Anda.
Memberikan akses hanya baca Config Sync ke OCI
Config Sync memerlukan akses hanya baca ke image OCI 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 hanya baca, Anda dapat melanjutkan untuk mengonfigurasi Config Sync dan menggunakan none
sebagai jenis autentikasi. 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 autentikasi berikut:
- Akun layanan Kubernetes (
k8sserviceaccount
) - Akun layanan Google (
gcpserviceaccount
) Akun layanan default Compute Engine (
gcenode
)
Akun layanan Kubernetes
Jika Anda menyimpan image OCI di Artifact Registry dan cluster menggunakan GKE Workload Identity atau fleet Workload Identity, Anda dapat menggunakan k8sserviceaccount
sebagai jenis autentikasi pada versi 1.17.2 dan yang lebih baru. Opsi ini lebih direkomendasikan daripada gcpserviceaccount
karena
proses konfigurasinya yang lebih sederhana.
Berikan peran IAM Artifact Registry Reader (
roles/artifactregistry.reader
) ke akun layanan Kubernetes dengan kumpulan Workload Identity. Untuk mengetahui informasi selengkapnya tentang peran dan izin Artifact Registry, lihat Mengonfigurasi peran dan izin untuk Artifact Registry.Berikan izin lingkup 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 dalam 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, ini sama denganPROJECT_ID
. Jika Anda menggunakan fleet Workload Identity, adalah project ID fleet tempat cluster Anda terdaftar.KSA_NAME
: akun layanan Kubernetes untuk rekonsiler.- Untuk repositori root, jika nama
RootSync
adalahroot-sync
, gunakanroot-reconciler
. Jika tidak, gunakanroot-reconciler-ROOT_SYNC_NAME
. Jika Anda menginstal Config Sync menggunakan Google Cloud Console atau Google Cloud CLI, Config Sync akan otomatis membuat objek RootSync yang bernamaroot-sync
.
- Untuk repositori root, jika nama
REPOSITORY
: ID repositori.LOCATION
: lokasi regional atau multi-regional repositori.
Akun layanan Google
Jika Anda menyimpan image OCI di Artifact Registry dan cluster Anda menggunakan GKE Workload Identity atau Workload Identity Fleet, Anda dapat menggunakan gcpserviceaccount
sebagai jenis autentikasi. Mulai
versi 1.17.2, sebaiknya gunakan k8sserviceaccount
. Dengan opsi ini, Anda tidak perlu lagi melakukan langkah-langkah tambahan dalam membuat akun layanan Google dan binding kebijakan IAM terkait.
Jika Anda belum memiliki akun layanan, buat akun layanan.
Berikan peran IAM Artifact Registry Reader (
roles/artifactregistry.reader
) ke akun layanan Google. Untuk mengetahui informasi selengkapnya tentang peran dan izin Artifact Registry, lihat Mengonfigurasi peran dan izin untuk Artifact Registry.Berikan izin lingkup 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:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com"
Berikan izin khusus repositori jika Anda ingin akun layanan memiliki tingkat akses yang berbeda untuk setiap repositori dalam project Anda.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --project=PROJECT_ID
Buat binding kebijakan IAM antara akun layanan Kubernetes dan akun layanan Google dengan menjalankan perintah berikut:
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, ini sama denganPROJECT_ID
. Jika Anda menggunakan fleet Workload Identity, 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 rekonsiler.- Untuk repositori root, jika nama
RootSync
adalahroot-sync
, gunakanroot-reconciler
. Jika tidak, gunakanroot-reconciler-ROOT_SYNC_NAME
. Jika Anda menginstal Config Sync menggunakan Google Cloud Console atau Google Cloud CLI, Config Sync akan otomatis membuat objek RootSync yang 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 chart Helm di Artifact Registry dan cluster Anda adalah GKE di Google Cloud dengan Workload Identity dinonaktifkan, Anda dapat menggunakan gcenode
sebagai jenis autentikasi.
Config Sync menggunakan akun layanan default Compute Engine.
Anda harus memberikan akses pembaca akun layanan default Compute Engine ke Artifact Registry.
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-compute@developer.gserviceaccount.com \ --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 agar dapat membaca diagram Helm di repositori Anda dan menginstalnya di cluster Anda.
Jika repositori tidak memerlukan autentikasi untuk akses hanya baca, Anda dapat terus mengonfigurasi Config Sync dan menggunakan none
sebagai jenis autentikasi. 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 autentikasi berikut:
- 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 Secret Anda.USERNAME
: nama pengguna repositori Helm.PASSWORD
: sandi repositori Helm.
Saat Mengonfigurasi Operator ConfigManagement, Anda akan menggunakan nama Secret yang Anda pilih untuk spec.helm.secretRef.name
.
Akun layanan Kubernetes
Jika Anda menyimpan chart Helm di Artifact Registry dan cluster menggunakan
GKE Workload Identity
atau fleet Workload Identity,
Anda dapat menggunakan k8sserviceaccount
sebagai jenis autentikasi pada versi 1.17.2
dan yang lebih baru. Opsi ini lebih direkomendasikan daripada gcpserviceaccount
karena
proses konfigurasinya yang lebih sederhana.
Berikan peran IAM Artifact Registry Reader (
roles/artifactregistry.reader
) ke akun layanan Kubernetes dengan kumpulan Workload Identity. Untuk mengetahui informasi selengkapnya tentang peran dan izin Artifact Registry, lihat Mengonfigurasi peran dan izin untuk Artifact Registry.Berikan izin lingkup 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 dalam 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, ini sama denganPROJECT_ID
. Jika Anda menggunakan fleet Workload Identity, adalah project ID fleet tempat cluster Anda terdaftar.KSA_NAME
: akun layanan Kubernetes untuk rekonsiler.- 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 Google
Jika Anda menyimpan chart Helm di Artifact Registry dan cluster Anda menggunakan GKE Workload Identity atau Workload Identity Fleet, Anda dapat menggunakan gcpserviceaccount
sebagai jenis autentikasi. Mulai
versi 1.17.2, sebaiknya gunakan k8sserviceaccount
. Dengan opsi ini, Anda tidak perlu lagi melakukan langkah-langkah tambahan dalam membuat akun layanan Google dan binding kebijakan IAM terkait.
Jika Anda belum memiliki akun layanan, buat akun layanan.
Berikan peran IAM Artifact Registry Reader (
roles/artifactregistry.reader
) ke akun layanan Google. Untuk mengetahui informasi selengkapnya tentang peran dan izin Artifact Registry, lihat Mengonfigurasi peran dan izin untuk Artifact Registry.Berikan izin lingkup 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:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com"
Berikan izin khusus repositori jika Anda ingin akun layanan memiliki tingkat akses yang berbeda untuk setiap repositori dalam project Anda.
gcloud artifacts repositories add-iam-policy-binding REPOSITORY \ --location=LOCATION \ --role=roles/artifactregistry.reader \ --member="serviceAccount:GSA_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --project=PROJECT_ID
Buat binding kebijakan IAM antara akun layanan Kubernetes dan akun layanan Google dengan menjalankan perintah berikut:
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, ini sama denganPROJECT_ID
. Jika Anda menggunakan fleet Workload Identity, 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 rekonsiler.- 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 chart Helm di Artifact Registry dan cluster Anda adalah GKE di Google Cloud dengan Workload Identity dinonaktifkan, Anda dapat menggunakan gcenode
sebagai jenis autentikasi.
Config Sync menggunakan akun layanan default Compute Engine.
Anda harus memberikan akses pembaca akun layanan default Compute Engine ke Artifact Registry. Anda mungkin perlu memberikan cakupan
akses storage-ro
untuk memberikan izin hanya
baca untuk mengambil gambar.
Berikan izin baca akun layanan Compute Engine ke Artifact Registry:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --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 Anda. Jika 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 Google Cloud Console atau
Google Cloud CLI, Config Sync secara 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 menggunakan Config Sync, Anda harus mendaftarkan cluster Anda terlebih dahulu. Dengan mendaftarkan cluster, Anda dapat membagikan kumpulan konfigurasi dan kebijakan umum.
Untuk mendaftarkan cluster Anda, selesaikan tugas-tugas berikut:
- Di konsol Google Cloud, buka halaman Konfigurasi di bagian Fitur.
- Klik add Install Config Sync.
Di tabel Available Clusters, pilih cluster yang ingin Anda daftarkan, lalu klik Install Config Sync.
Setelah beberapa menit, Anda akan melihat status Terinstal di kolom Status sinkronisasi konfigurasi untuk cluster yang dipilih.
Men-deploy paket
Setelah mendaftarkan cluster, Anda dapat men-deploy paket dari sumber tepercaya ke cluster Config Sync. Anda dapat men-deploy paket ke lebih dari satu cluster sekaligus, dan menambahkan beberapa paket ke satu cluster.
Untuk men-deploy paket, selesaikan langkah-langkah berikut:
Di konsol Google Cloud, buka dasbor Config Sync.
Klik Deploy Package.
Di tabel Select clusters for package deployment, pilih cluster tempat Anda ingin men-deploy paket, lalu klik Continue.
Pilih Paket yang dihosting di Git atau Paket yang dihosting di OCI sebagai jenis sumber, lalu klik Lanjutkan.
Di bagian Package details, masukkan Package name, yang mengidentifikasi objek RootSync atau RepoSync.
Di bagian Sumber, selesaikan langkah-langkah berikut:
Untuk sumber yang dihosting di repositori Git, masukkan kolom berikut:
- Masukkan Nama paket, yang mengidentifikasi objek RootSync atau RepoSync.
- Masukkan URL repositori Git yang Anda gunakan sebagai sumber tepercaya sebagai URL Repositori.
- Opsional: Perbarui kolom Revisi untuk memeriksa apakah 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 image OCI yang Anda gunakan sebagai sumber kebenaran sebagai Image.
- Masukkan jalur direktori yang akan disinkronkan, sesuai dengan direktori root, sebagai Directory.
Di kolom Jenis sinkronisasi, pilih RootSync atau RepoSync sebagai jenis sinkronisasi.
Objek RootSync memiliki cakupan cluster dan objek RepoSync memiliki cakupan namespace. Untuk mengetahui informasi selengkapnya tentang objek ini, lihat kolom RootSync dan RepoSync.
(Opsional): Luaskan bagian Setelan lanjutan untuk menyelesaikan hal berikut:
Pilih Jenis autentikasi:
- Tidak ada: Tidak menggunakan autentikasi.
- SSH: Gunakan pasangan kunci SSH.
- Cookiefile: Gunakan
cookiefile
. - Token: Gunakan token.
- Google Cloud Repository: Gunakan akun layanan Google untuk mengakses repositori Cloud Source Repositories. Hanya pilih opsi ini jika Workload Identity tidak diaktifkan di cluster Anda.
- Workload Identity: Gunakan akun layanan Google untuk mengakses repositori Cloud Source Repositories.
Masukkan angka dalam detik untuk menyetel Waktu tunggu sinkronisasi, yang menentukan waktu tunggu Config Sync antara sinkronisasi dari sumber tepercaya.
Masukkan URL Git proxy untuk proxy HTTPS yang akan digunakan saat berkomunikasi dengan sumber tepercaya.
Pilih Hierarchy untuk mengubah Source format.
Nilai default Unstructured direkomendasikan dalam sebagian besar kasus karena memungkinkan Anda mengatur sumber kebenaran sesuai keinginan.
Klik Deploy Package.
Anda akan dialihkan ke halaman Packages Config Sync. Setelah beberapa menit, Anda akan melihat Synced di kolom Sync status untuk cluster yang Anda konfigurasi.
Untuk mengupdate paket, pada tab Packages, luaskan nama paket yang ingin Anda edit, lalu klik edit Edit.
gcloud
Sebelum melanjutkan, pastikan Anda telah mendaftarkan cluster Anda ke sebuah fleet.
- Siapkan konfigurasi dengan membuat manifes
apply-spec.yaml
baru atau dengan menggunakan manifes yang ada. Menggunakan manifes yang ada memungkinkan Anda mengonfigurasi cluster dengan setelan yang sama dengan yang digunakan oleh cluster lain.
Buat manifes baru
Agar dapat 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 nanti menggunakan
perintah kubectl
untuk konfigurasi.
Anda juga hanya dapat menetapkan kolom spec.configSync.enabled
sebagai true
dan menghapus kolom opsional. Nantinya Anda dapat menggunakan perintah kubectl
untuk
membuat objek RootSync
atau RepoSync tambahan yang dapat dikelola sepenuhnya menggunakan perintah kubectl
nanti.
# apply-spec.yaml
applySpecVersion: 1
spec:
configSync:
# Set to true to install and enable Config Sync
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
: menambahkangit
untuk menyinkronkan dari repositori Git,oci
untuk menyinkronkan dari image OCI, atauhelm
untuk menyinkronkan dari chart Helm. Jika tidak ada nilai yang ditentukan, 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
: menambahkan URL sumber tepercaya. URL repositori Git dan Helm menggunakan protokol HTTPS atau SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
. Jika Anda berencana menggunakan SSH sebagaisecretType
, masukkan URL dengan protokol SSH. Kolom ini wajib ada 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, gambar diambil dari taglatest
, tetapi Anda dapat menarik gambar denganTAG
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) yang akan disinkronkan. Kolom ini bersifat opsional dan nilai defaultnya adalahHEAD
. Mulai dari Config Sync versi 1.17.0, Anda juga dapat menentukan nama cabang di kolomsyncRev
. Saat menggunakan hash di versi 1.17.0 atau yang lebih baru, hash tersebut harus berupa hash lengkap, bukan bentuk singkat.BRANCH
: cabang repositori yang akan disinkronkan. Kolom ini bersifat opsional dan defaultnya adalahmaster
. Mulai dari Config Sync versi 1.17.0, sebaiknya gunakan kolomsyncRev
untuk menentukan nama cabang agar lebih mudah. Jika kolomsyncRev
dan kolomsyncBranch
ditentukan,syncRev
akan lebih diutamakan daripadasyncBranch
.SECRET_TYPE
: salah satu darisecretTypes
berikut:git
none
: Tidak menggunakan autentikasi.ssh
: Menggunakan 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. Hanya pilih opsi ini jika Workload Identity tidak diaktifkan di cluster Anda.
Untuk mengetahui informasi selengkapnya tentang jenis autentikasi ini, lihat Memberikan akses hanya baca Config Sync ke Git.
OCI
none
: Tidak menggunakan autentikasigcenode
: Menggunakan akun layanan default Compute Engine untuk mengakses image di Artifact Registry. Hanya pilih opsi ini jika Workload Identity tidak diaktifkan di cluster Anda.gcpserviceaccount
: Menggunakan akun layanan Google untuk mengakses image.
helm
token
: Menggunakan token.gcenode
: Menggunakan akun layanan default Compute Engine untuk mengakses image di Artifact Registry. Hanya pilih opsi ini jika Workload Identity tidak diaktifkan di cluster Anda.gcpserviceaccount
: Menggunakan akun layanan Google untuk mengakses image.
EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaisecretType
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.METRICS_EMAIL
: email Akun Layanan Google Cloud (GSA) yang digunakan untuk mengekspor metrik Config Sync ke Cloud Monitoring. GSA harus memiliki peran IAM Monitoring Metric Writer (roles/monitoring.metricWriter
).default
ServiceAccount Kubernetes dalam namespaceconfig-management-monitoring
harus terikat dengan GSA.DIRECTORY
: jalur direktori yang akan disinkronkan, relatif terhadap root repositori Git. Semua sub-direktori direktori yang Anda tentukan akan disertakan dan disinkronkan ke cluster. Nilai defaultnya adalah direktori utama repositori.PREVENT_DRIFT
: Jika ditetapkan ketrue
, mengaktifkan webhook penerimaan Config Sync untuk mencegah penyimpangan dengan menolak perubahan yang bertentangan agar tidak dikirim ke cluster live. Setelan defaultnya adalahfalse
. Config Sync selalu memperbaiki penyimpangan, apa pun nilai kolom ini.
Untuk mengetahui daftar lengkap kolom yang dapat ditambahkan ke kolom spec
, lihat kolom gcloud.
Menggunakan manifes yang ada
Untuk mengonfigurasi cluster Anda dengan setelan yang sama dengan yang digunakan oleh cluster lain, ambil setelan dari cluster yang 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
2. Terapkan file apply-spec.yaml
. Jika menggunakan manifes yang ada, Anda harus menerapkan file tersebut ke cluster yang ingin dikonfigurasi dengan setelan yang diambil dalam 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 yang dipilih saat mendaftarkan cluster Anda. Anda dapat menemukan nama tersebut dengangcloud container fleet memberships list
.CONFIG_YAML_PATH
: jalur ke fileapply-spec.yaml
Anda.PROJECT_ID
: project ID Anda.
Setelah selesai mengonfigurasi repositori root, Anda juga dapat memilih untuk mengonfigurasi sinkronisasi dari beberapa repositori, termasuk repositori root dan repositori namespace lainnya. Repositori namespace sangat membantu jika Anda menginginkan repositori yang berisi konfigurasi cakupan namespace yang disinkronkan ke namespace tertentu di seluruh cluster.
Mengonfigurasi setelan default tingkat fleet
Jika telah mengaktifkan edisi Google Kubernetes Engine (GKE) Enterprise, Anda dapat mengaktifkan dan mengonfigurasi Config Sync sebagai default tingkat fleet untuk cluster Anda. Artinya, setiap GKE baru di cluster Google Cloud yang terdaftar selama pembuatan cluster akan mengaktifkan Config Sync di cluster dengan setelan yang Anda tentukan. Anda dapat mengetahui konfigurasi default fleet lebih lanjut di Mengelola fitur level fleet.
Guna mengonfigurasi default tingkat fleet untuk Config Sync, selesaikan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Feature Manager.
Di panel Config Sync, klik Configure.
Tinjau setelan tingkat perangkat Anda. Semua klaster baru yang Anda daftarkan ke armada akan mewarisi pengaturan ini.
Opsional: Untuk mengubah setelan default, klik Sesuaikan setelan perangkat. Pada dialog yang muncul, lakukan hal berikut:
- Dalam daftar Version, pilih versi Config Sync yang ingin Anda gunakan.
- Klik Simpan perubahan.
Klik Konfigurasikan.
Pada dialog konfirmasi, klik Confirm. Jika Anda belum pernah mengaktifkan Config Sync, mengklik Confirm juga akan mengaktifkan
anthosconfigmanagement.googleapis.com
API.Opsional: Sinkronkan cluster yang ada ke setelan default:
- Pada daftar Clusters in the fleet, pilih cluster yang ingin Anda sinkronkan.
- Klik Sinkronkan ke setelan fleet, lalu klik Konfirmasi di dialog konfirmasi yang muncul. Operasi ini dapat memerlukan waktu beberapa menit hingga selesai.
Memverifikasi penginstalan
Setelah menginstal dan mengonfigurasi Config Sync, Anda dapat memverifikasi bahwa penginstalan berhasil diselesaikan.
Konsol
Selesaikan langkah berikut:
- Di konsol Google Cloud, buka halaman Konfigurasi di bagian Fitur.
- Pada tab Packages, periksa kolom Sync status dalam tabel cluster. Penginstalan Config Sync yang berhasil akan berstatus Terinstal. Sumber tepercaya yang berhasil dikonfigurasi akan menampilkan 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 akan menampilkan status SYNCED
. 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 akan memiliki status PENDING
atau SYNCED
. Penginstalan yang tidak valid atau belum selesai akan memiliki status NOT INSTALLED
ATAU NOT CONFIGURED
. Outputnya
juga mencakup error yang dilaporkan.
Upgrade Config Sync
Sebelum mengupgrade Config Sync, periksa catatan rilis untuk mengetahui detail tentang apa yang berubah antar-versi.
Untuk mengupgrade Config Sync, selesaikan langkah-langkah berikut:
Konsol
- Di konsol Google Cloud, buka halaman Konfigurasi di bagian Fitur.
- Pada tab Settings, di samping cluster yang versinya ingin Anda upgrade, pilih menu konteks more_vert, lalu pilih edit Edit Config.
- Dari menu drop-down version, pilih versi yang ingin Anda upgrade.
- Klik Upgrade Config Sync.
gcloud
Jalankan perintah berikut:
gcloud beta container fleet config-management upgrade \
--version=VERSION \
--membership=MEMBERSHIP_NAME
Ganti kode berikut:
VERSION
: versi yang ingin Anda upgradeMEMBERSHIP_NAME
: nama keanggotaan yang dipilih saat mendaftarkan cluster Anda. Anda dapat menemukan nama keanggotaan dengan menjalankangcloud container fleet memberships list
.
Memeriksa versi Config Management
Jika Anda ingin memeriksa versi Config Sync yang diinstal pada cluster sebelum melakukan upgrade, jalankan perintah berikut:
gcloud beta container fleet config-management version
Untuk mempelajari perintah ini lebih lanjut, baca dokumentasi referensi.
Izin dan kontrol akses berbasis peran, {i>Role-based access control<i}
Pengontrol Kebijakan, Config Sync, dan Pengontrol Konfigurasi mencakup workload dengan hak istimewa tinggi. Tabel berikut mencantumkan izin untuk beban kerja ini:
Komponen | Namespace | Akun Layanan | Izin | Deskripsi |
---|---|---|---|---|
Operator ConfigManagement | config-management-system |
config-management-operator |
admin-cluster | ConfigManagement Operator menginstal komponen lain dalam tabel ini. Beberapa komponen tersebut memerlukan izin admin cluster, sehingga ConfigManagement juga memerlukannya. |
Config Sync | config-management-system |
Lihat Izin Config Sync untuk izin yang diperlukan. |
Permintaan resource
Bagian berikut mencantumkan permintaan resource untuk Config Sync.
Tabel berikut mencantumkan persyaratan resource Kubernetes untuk komponen Config Sync. Untuk informasi selengkapnya, baca bagian 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.
1,17
Nama deployment | Permintaan CPU (m) per replika | Permintaan memori (Mi) per replika |
---|---|---|
config-management-operator |
100 | 100 |
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 rekonsiler 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.
1.16
Nama deployment | Permintaan CPU (m) per replika | Permintaan memori (Mi) per replika |
---|---|---|
config-management-operator |
100 | 100 |
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 rekonsiler 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.
1.15
Nama deployment | Permintaan CPU (m) per replika | Permintaan memori (Mi) per replika |
---|---|---|
config-management-operator |
100 | 100 |
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 rekonsiler 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 rekonsiler
Untuk setiap RootSync dan RepoSync, Config Sync membuat deployment rekonsiler independen untuk menangani sinkronisasi. Hal ini meningkatkan keandalan dengan mengurangi titik tunggal kegagalan dan memungkinkan setiap rekonsiler untuk diskalakan secara independen.
Deployment rekonsiler terdiri dari beberapa container:
Nama penampung | Deskripsi | Kondisi |
---|---|---|
reconciler |
menangani sinkronisasi dan perbaikan penyimpangan | selalu diaktifkan |
otel-agent |
menangani pengiriman metrik ke kolektor | selalu diaktifkan |
hydration-controller (Opsional) |
menangani rendering Kustomisasi | diaktifkan saat sumber menyertakan file kustomize.yaml |
git-sync |
menangani pengambilan sumber Git | diaktifkan saat spec.sourceType adalah git |
gcenode-askpass-sidecar (Opsional) |
digunakan untuk autentikasi Git dengan layanan metadata GKE | diaktifkan saat spec.sourceType adalah git dan spec.git.auth adalah gcenode atau gcpserviceaccount |
helm-sync |
menangani pengambilan sumber Helm | diaktifkan saat spec.sourceType adalah helm |
oci-sync |
menangani pengambilan sumber OCI | diaktifkan saat spec.sourceType adalah oci |
Pada Config Sync versi 1.17.0 dan yang lebih baru, permintaan resource default untuk rekonsiler berbeda untuk cluster Standar dan Autopilot. Semua jenis cluster lainnya menggunakan default Standar.
Cluster standar
1,17
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 |
1.16
Nama penampung | Permintaan CPU (m) | Permintaan memori (Mi) |
---|---|---|
reconciler |
50 | 200 |
otel-agent |
10 | 100 |
hydration-controller (Opsional) |
10 | 100 |
git-sync |
10 | 200 |
gcenode-askpass-sidecar (Opsional) |
10 | 20 |
helm-sync |
50 | 256 |
oci-sync |
10 | 200 |
1.15
Nama penampung | Permintaan CPU (m) | Permintaan memori (Mi) |
---|---|---|
reconciler |
50 | 200 |
otel-agent |
10 | 100 |
hydration-controller (Opsional) |
10 | 100 |
git-sync |
10 | 200 |
gcenode-askpass-sidecar (Opsional) |
10 | 20 |
helm-sync |
50 | 256 |
oci-sync |
10 | 200 |
Cluster Autopilot
1,17
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 |
150 | 256 |
oci-sync |
50 | 64 |
1.16
Pada versi Config Sync sebelum 1.17.0, permintaan resource sama untuk Standard dan Autopilot.
1.15
Pada versi Config Sync sebelum 1.17.0, permintaan resource sama untuk Standard dan Autopilot.
Untuk mempelajari cara mengganti permintaan dan batas resource default, lihat penggantian resource.
Versi Paket Helm dan Kustomize
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 paket Helm dan Kustomize.
Versi Config Sync | Versi Helm | Menyesuaikan versi |
---|---|---|
1.16.0 dan yang lebih baru | v3.11.3 | v5.1.1 |
1.15.0 hingga 1.15.3 | v3.11.3 | v5.0.1 |
1.11.0 hingga 1.14.3 | v3.6.3 | v4.5.2 |
Untuk informasi tentang cara merender Helm melalui Kustomize, lihat Mengonfigurasi Kubernetes dengan Kustomize. Untuk mengetahui informasi cara menggunakan Helm API, lihat Menyinkronkan diagram Helm dari Artifact Registry.
Langkah selanjutnya
- Pelajari perintah
gcloud
lebih lanjut untuk mengonfigurasi Config Sync. - Temukan cara mengonfigurasi sinkronisasi dari beberapa repositori.
- Gunakan perintah
nomos
. - Baca Pengantar pemecahan masalah Config Sync.
- Pelajari cara meng-uninstal Config Sync.
- Tinjau izin Default Config Sync.