Dalam tutorial ini, Anda akan membuat cluster edisi Enterprise Google Kubernetes Engine (GKE) dan menggunakan Config Sync untuk menyinkronkan ke konfigurasi di repositori contoh multi-repo.
Bayangkan tim kepatuhan Anda bertanggung jawab untuk memastikan semua orang di organisasi Anda mengikuti aturan internal. Untuk menerapkan aturan ini, tim kepatuhan telah membuat konfigurasi, yang telah ditambahkan ke repositori contoh. Setiap cluster di organisasi Anda harus disinkronkan ke repositori dan Anda bertanggung jawab untuk membuat dan menyinkronkan cluster.
Sebelum memulai
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Make sure that you have the following role or roles on the project: GKE Hub Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Buka IAM - Pilih project.
- Klik Berikan akses.
-
Di kolom New principals, masukkan ID pengguna Anda. Ini biasanya adalah alamat email untuk Akun Google.
- Di daftar Pilih peran, pilih peran.
- Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
- Klik Simpan.
Membuat cluster
Di bagian ini, Anda akan membuat cluster yang dapat digunakan dalam tutorial ini. Meskipun dalam skenario dunia nyata Anda mungkin akan mengelola beberapa cluster, untuk menyederhanakan tutorial ini, Anda hanya membuat dan mengelola satu cluster.
Untuk membuat cluster, selesaikan langkah-langkah berikut:
Di konsol Google Cloud, buka halaman Kubernetes Engine.
Jika Anda menggunakan GKE untuk pertama kalinya, klik Enable untuk mengaktifkan Kubernetes Engine API.
Klik add_box Create.
Di bagian Autopilot, pilih Configure.
Di bagian Cluster basics, masukkan
cs-cluster
di kolom Name dan biarkan semua kolom lain dengan setelan default yang direkomendasikan.Klik Create. Anda akan diarahkan ke halaman Cluster Kubernetes. Pembuatan cluster Anda memerlukan waktu beberapa menit. Jika Anda melihat tanda centang hijau di kolom Status di samping cluster, berarti cluster tersebut sudah siap.
Konfigurasi cluster Anda
Setelah membuat cluster, Anda dapat mengonfigurasi Config Sync untuk menyinkronkan ke konfigurasi di direktori
config-sync-quickstart
repositori contoh.Untuk mengonfigurasi Config Sync di konsol Google Cloud, selesaikan langkah-langkah berikut:
Di konsol Google Cloud, aktifkan GKE Hub API.
- Di konsol Google Cloud, buka halaman Config di bagian Features.
Klik add Install Config Sync.
Pilih Auto-upgrades untuk mengaktifkan Config Sync guna mengupgrade versi secara otomatis.
Di bagian Opsi penginstalan, pilih Instal Config Sync di setiap cluster.
Di tabel Available clusters, pilih
cs-cluster
, lalu klik Install Config Sync. Di tab Setelan, Anda akan melihat status untukcs-cluster
sebagai Diaktifkan setelah beberapa menit.Di dasbor Config Sync, klik Deploy Package.
Di tabel Select clusters for package deployment, pilih
cs-cluster
, lalu klik Continue.Biarkan Paket dihosting di Git dipilih, lalu klik Lanjutkan.
Di kolom Package name, masukkan
sample-repository
.Di kolom Repository URL, masukkan
https://github.com/GoogleCloudPlatform/anthos-config-management-samples
.Di kolom Path, masukkan
config-sync-quickstart/multirepo/root
.Biarkan kolom lain tetap pada nilai defaultnya.
Klik Deploy Package.
Setelah beberapa menit, Anda akan melihat Disinkronkan di kolom Status sinkronisasi untuk
cs-cluster
.
Setelah disinkronkan ke repositori, Config Sync akan terus merekonsiliasi status cluster Anda dengan konfigurasi di repositori.
Menjelajahi penginstalan Config Sync
Di bagian berikut, Anda akan menggunakan Cloud Shell untuk menjelajahi repositori yang digunakan
cs-cluster
untuk menyinkronkan dan mengonfirmasi bahwa konfigurasi di repositori tersebut sedang di-deploy.Buka Cloud Shell
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
Untuk menggunakan perintah di bagian berikut, konfigurasikan akses command line
kubectl
:gcloud container clusters get-credentials cs-cluster \ --zone ZONE \ --project PROJECT_ID
Ganti kode berikut:
ZONE
: zona tempat Anda membuat clusterPROJECT_ID
: project ID Anda
Outputnya adalah sebagai berikut:
Fetching cluster endpoint and auth data. kubeconfig entry generated for cs-cluster.
Jika Anda diminta memberikan otorisasi, klik Authorize.
Memeriksa cluster dan repositori Anda
Direktori
config-sync-quickstart
mencakup konfigurasi ClusterRole, CustomResourceDefinition, Rolebinding, Namespace, dan RepoSync. File ini juga menyertakan konfigurasi untuk Prometheus Operator untuk pemantauan. Konfigurasi ini diterapkan segera setelah Config Sync dikonfigurasi untuk membaca dari repositori.Semua objek yang dikelola oleh Config Sync memiliki label
app.kubernetes.io/managed-by
yang disetel keconfigmanagement.gke.io
. Anda dapat menggunakan label ini untuk melihat objek terkelola.Untuk menampilkan namespace yang dikelola oleh Config Sync, jalankan perintah berikut:
kubectl get ns -l app.kubernetes.io/managed-by=configmanagement.gke.io
Outputnya mirip dengan hal berikut ini:
NAME STATUS AGE gamestore Active 58s monitoring Active 58s
Anda dapat membuka folder repositori di GitHub, yaitu /config-sync-quickstart/multirepo/, untuk menjelajahi konfigurasi yang menyebabkan namespace ini dibuat.
Anda dapat memeriksa objek lain, seperti ClusterRole, Reposyncs, CRD, dan Rolebindings, dengan cara yang sama.
Memeriksa status sinkronisasi
Saat menggunakan Config Sync, Anda dapat menggunakan alat command line
nomos
. Alat ini memberikan fungsi tambahan untuk Config Sync.Di bagian ini, Anda akan memeriksa apakah Config Sync berhasil menyinkronkan semua konfigurasi ke cluster menggunakan perintah
nomos status
:nomos status
Outputnya mirip dengan hal berikut ini:
*gke_PROJECT_ID_ZONE_cs-cluster -------------------- <root>:root-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/root@main SYNCED @ 2023-02-03 16:58:42 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee Managed resources: NAMESPACE NAME STATUS SOURCEHASH clusterrole.rbac.authorization.k8s.io/namespace-reader Current 1fbab5c clusterrole.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c clusterrole.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c clusterrole.rbac.authorization.k8s.io/webstore-admin Current 1fbab5c clusterrolebinding.rbac.authorization.k8s.io/prometheus-acm Current 1fbab5c clusterrolebinding.rbac.authorization.k8s.io/prometheus-operator Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/alertmanagerconfigs.monitoring.coreos.com Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/alertmanagers.monitoring.coreos.com Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/anvils.acme.com Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/podmonitors.monitoring.coreos.com Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/probes.monitoring.coreos.com Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/prometheuses.monitoring.coreos.com Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/prometheusrules.monitoring.coreos.com Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/servicemonitors.monitoring.coreos.com Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/thanosrulers.monitoring.coreos.com Current 1fbab5c customresourcedefinition.apiextensions.k8s.io/webstores.marketplace.com Current 1fbab5c namespace/gamestore Current 1fbab5c namespace/monitoring Current 1fbab5c gamestore reposync.configsync.gke.io/repo-sync Current 1fbab5c gamestore rolebinding.rbac.authorization.k8s.io/gamestore-admin Current 1fbab5c gamestore rolebinding.rbac.authorization.k8s.io/gamestore-webstore-admin Current 1fbab5c monitoring deployment.apps/prometheus-operator Current 1fbab5c monitoring prometheus.monitoring.coreos.com/acm Current 1fbab5c monitoring service/prometheus-acm Current 1fbab5c monitoring service/prometheus-operator Current 1fbab5c monitoring serviceaccount/prometheus-acm Current 1fbab5c monitoring serviceaccount/prometheus-operator Current 1fbab5c monitoring servicemonitor.monitoring.coreos.com/acm-service Current 1fbab5c -------------------- gamestore:repo-sync https://github.com/GoogleCloudPlatform/anthos-config-management-samples/config-sync-quickstart/multirepo/namespaces/gamestore@main SYNCED @ 2023-02-03 16:58:51 +0000 UTC 1fbab5c90af9029b26451fec92e9900d8db23aee Managed resources: NAMESPACE NAME STATUS SOURCEHASH gamestore configmap/store-inventory Current 1fbab5c gamestore webstore.marketplace.com/gameplace Current 1fbab5c
Dalam output ini, Anda dapat melihat bahwa
cs-cluster
berhasil menyinkronkan dari dua repositori. Selain itu, karena semua resource memiliki statusCurrent
, status resource akan cocok dengan status yang Anda inginkan.Pembersihan
Buka menu GKE di konsol Google Cloud.
Di samping
cs-cluster
, klik more_vert Tindakan, lalu klik delete Hapus.Saat diminta untuk mengonfirmasi, klik Hapus lagi.
Langkah selanjutnya
- Pelajari cara memvalidasi konfigurasi.
-