Panduan memulai: Sinkronisasi konfigurasi dari repositori
Dalam tutorial ini, Anda akan membuat cluster edisi Google Kubernetes Engine (GKE) Enterprise dan menggunakan Config Sync untuk menyinkronkan konfigurasi di repositori contoh multi-repo.
Bayangkan bahwa tim kepatuhan Anda bertanggung jawab untuk memastikan bahwa semua orang di organisasi Anda mengikuti aturan internal. Untuk menerapkan aturan ini, tim kepatuhan telah membuat konfigurasi, yang telah mereka tambahkan ke repositori contoh. Setiap cluster di organisasi Anda harus disinkronkan ke repositori dan Anda bertanggung jawab untuk membuat dan menyinkronkan cluster.
Sebelum memulai
- Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
-
Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.
-
Pastikan Anda memiliki peran berikut di project: GKE Hub Admin
Memeriksa peran
-
Di konsol Google Cloud, buka halaman IAM.
Buka IAM - Pilih project.
-
Di kolom Akun utama, cari baris yang berisi alamat email Anda.
Jika alamat email Anda tidak ada di kolom tersebut, berarti Anda tidak memiliki peran apa pun.
- Di kolom Peran untuk baris yang berisi alamat email Anda, periksa apakah daftar peran menyertakan peran yang diperlukan.
Memberikan peran
-
Di konsol Google Cloud, buka halaman IAM.
Buka IAM - Pilih project.
- Klik Berikan akses.
- Di kolom Akun utama baru, masukkan alamat email Anda.
- 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 nyata, Anda mungkin perlu mengelola beberapa cluster, untuk menyederhanakan tutorial ini, Anda hanya perlu 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, lalu biarkan semua kolom lainnya dengan default yang direkomendasikan.Klik Create. Anda akan diarahkan ke halaman Cluster Kubernetes. Perlu waktu beberapa menit untuk membuat cluster. Jika muncul tanda centang hijau di kolom Status di samping cluster, berarti cluster sudah siap.
Konfigurasi cluster Anda
Setelah membuat cluster, Anda dapat mengonfigurasi Config Sync untuk disinkronkan ke konfigurasi di direktori config-sync-quickstart
pada repositori contoh.
Untuk mengonfigurasi Config Sync pada Konsol Google Cloud, selesaikan langkah-langkah berikut:
Di Konsol Google Cloud, aktifkan GKE Hub API.
- Di konsol Google Cloud, buka halaman Konfigurasi di bagian Fitur.
Klik add Install Config Sync.
Pilih Auto-upgrades untuk mengaktifkan Config Sync agar dapat mengupgrade versi secara otomatis.
Di bagian Opsi penginstalan, pilih Instal Config Sync pada cluster individual.
Di tabel Available clusters, pilih
cs-cluster
dan klik Install Config Sync. Di tab Setelan, Anda akan melihat status untukcs-cluster
sebagai Enabled setelah beberapa menit.Di dasbor Config Sync, klik Deploy Package.
Di tabel Select clusters for package deployment, pilih
cs-cluster
lalu klik Continue.Biarkan Package hosts on Git tetap dipilih, lalu klik Continue.
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 semua 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 dalam repositori.
Mempelajari penginstalan Config Sync
Di bagian berikut, Anda akan menggunakan Cloud Shell untuk mempelajari repositori tempat cs-cluster
disinkronkan dan mengonfirmasi bahwa konfigurasi di repositori sedang di-deploy.
Buka Cloud Shell
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
-
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
Output-nya adalah sebagai berikut:
Fetching cluster endpoint and auth data. kubeconfig entry generated for cs-cluster.
Jika diminta untuk melakukan otorisasi, klik Authorize.
Memeriksa cluster dan repositori Anda
Direktori config-sync-quickstart
mencakup konfigurasi ClusterRole,
CustomResourceDefinition, Rolebinding, Namespace, dan RepoSync. SDK ini juga mencakup konfigurasi untuk Operator Prometheus untuk pemantauan.
Konfigurasi ini diterapkan segera setelah Config Sync dikonfigurasi untuk
dibaca dari repositori.
Semua objek yang dikelola oleh Config Sync memiliki label app.kubernetes.io/managed-by
yang ditetapkan ke configmanagement.gke.io
. Anda dapat menggunakan label ini untuk melihat objek terkelola.
Untuk mencantumkan 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 /config-sync-quickstart/multirepo/ repositori di GitHub untuk mempelajari konfigurasi yang menyebabkan namespace ini dibuat.
Anda dapat memeriksa objek lainnya, 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 memberi Anda 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
disinkronkan dari dua repositori. Selain itu, karena semua resource memiliki status
Current
, status resource 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.