Menginstal Config Connector secara manual
Halaman ini menjelaskan cara menginstal Config Connector secara manual. Penginstalan manual adalah opsi fleksibel yang memberi Anda kontrol atas versi yang diinstal dan jadwal upgrade.
Untuk mengetahui informasi selengkapnya tentang berbagai opsi penginstalan, lihat Memilih jenis penginstalan.
Untuk sebagian besar kasus penggunaan, sebaiknya instal Config Connector secara manual dalam mode namespace. Alternatifnya adalah mode cluster. Mode namespace lebih skalabel dan menawarkan isolasi izin yang lebih baik, yang ideal untuk kasus penggunaan multi-tenant atau saat mengelola resource dari beberapa project.
Jika Anda lebih memilih akun layanan tunggal di seluruh cluster, ikuti petunjuk untuk menginstal dalam mode cluster.
Sebelum memulai
Sebelum menginstal operator Config Connector secara manual, selesaikan langkah-langkah berikut:
- Buat atau identifikasi cluster GKE tempat Config Connector belum diinstal dan yang telah mengaktifkan Workload Identity dan Kubernetes Engine Monitoring.
- Konfigurasi
kubectluntuk terhubung ke cluster Anda.
Menginstal operator Config Connector
Config Connector menggunakan operator Kubernetes untuk memastikan instalasinya selalu yang terbaru. Operator harus diinstal, baik Anda menginstal Config Connector dalam mode namespace maupun mode cluster.
Untuk menginstal operator Config Connector, selesaikan langkah-langkah berikut:
Download file .tar operator Config Connector terbaru:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gzEkstrak file tar:
tar zxvf release-bundle.tar.gzInstal operator Config Connector di cluster Anda:
Autopilot
kubectl apply -f operator-system/autopilot-configconnector-operator.yamlStandar
kubectl apply -f operator-system/configconnector-operator.yamlUntuk mengonfigurasi operator Config Connector agar berjalan dalam mode namespace, selesaikan langkah-langkah berikut:
Buat manifes bernama
configconnector.yamldengan konten berikut:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: namespaced stateIntoSpec: AbsentTerapkan manifes ke cluster Anda:
kubectl apply -f configconnector.yaml
Menginstal Config Connector dalam mode namespace
Di bagian berikut, project tempat Anda menginstal Config Connector adalah project host. Project lain tempat Anda dapat meminta Config Connector mengelola resource adalah project terkelola. Project host dan project terkelola dapat berupa project yang sama, jika Anda ingin Config Connector hanya membuat resource dalam project yang sama dengan cluster Anda.
Buat namespace
Buat namespace baru dengan menjalankan perintah berikut:
kubectl create namespace NAMESPACE
Mengganti NAMESPACE dengan nama untuk namespace.
Membuat identitas
Buat akun layanan Identity and Access Management (IAM) dan buat binding antara Akun Layanan IAM dan akun layanan Kubernetes Config Connector dengan menyelesaikan langkah-langkah berikut:
Buat akun layanan IAM. Jika memiliki akun layanan yang sudah ada, Anda dapat menggunakannya, bukan membuat akun layanan baru. Gunakan
gclouduntuk membuat akun layanan dengan menjalankan perintah berikut:gcloud iam service-accounts create NAMESPACE_GSA --project HOST_PROJECT_IDGanti kode berikut:
- NAMESPACE_GSA dengan nama akun layanan Google (GSA) yang terikat ke namespace Anda.
- HOST_PROJECT_ID dengan ID project host Anda.
Untuk mempelajari lebih lanjut cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.
Beri akun layanan IAM izin yang lebih tinggi di project terkelola Anda:
gcloud projects add-iam-policy-binding MANAGED_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"Ganti MANAGED_PROJECT_ID dengan ID project terkelola Anda.
Buat binding kebijakan IAM antara akun layanan IAM dan akun layanan Kubernetes Config Connector:
gcloud iam service-accounts add-iam-policy-binding \ NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:HOST_PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager-NAMESPACE]" \ --role="roles/iam.workloadIdentityUser"Berikan izin akun layanan IAM untuk memublikasikan metrik Prometheus ke Google Cloud Observability di project host Anda:
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/monitoring.metricWriter"
Buat ConfigConnectorContext
Untuk membuat resource Google Cloud , konfigurasi Config Connector
untuk memantau namespace Anda dengan menambahkan objek ConfigConnectorContext
di namespace tersebut.
Untuk membuat ConfigConnectorContext, selesaikan langkah-langkah berikut:
Buat manifes bernama
configconnectorcontext.yamldengan konten berikut:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnectorContext metadata: # you need one ConfigConnectorContext per namespace name: configconnectorcontext.core.cnrm.cloud.google.com namespace: NAMESPACE spec: googleServiceAccount: "NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" stateIntoSpec: AbsentTerapkan manifes ke cluster Anda:
kubectl apply -f configconnectorcontext.yamlPastikan operator Config Connector membuat akun layanan Kubernetes untuk namespace Anda dengan menjalankan perintah berikut:
kubectl get serviceaccount/cnrm-controller-manager-NAMESPACE -n cnrm-systemPastikan Pod pengontrol Config Connector berjalan untuk namespace Anda:
kubectl wait -n cnrm-system \ --for=condition=Ready pod \ -l cnrm.cloud.google.com/component=cnrm-controller-manager \ -l cnrm.cloud.google.com/scoped-namespace=NAMESPACEJika pengontrol Config Connector sedang berjalan, outputnya akan mirip dengan:
cnrm-controller-manager-abcdefghijk-0 condition met.
Berhenti mengelola resource dalam namespace
Jika Anda ingin Config Connector berhenti mengelola resource dalam namespace, hapus semua
resource Config Connector dan objek ConfigConnectorContext
dalam namespace tersebut.
Untuk menemukan semua resource Config Connector di namespace Anda, buat daftar semua resource untuk setiap Definisi Resource Kustom Config Connector.
kubectl get gcp -n NAMESPACEOutput perintah ini mencantumkan semua Definisi Resource Kustom (CRD) yang merepresentasikan resource yang dikelola oleh Config Connector di namespace tersebut, termasuk nama dan jenis Kubernetes dari resource tersebut.
Untuk menghapus semua resource Config Connector, untuk setiap resource dalam output langkah sebelumnya, jalankan perintah berikut:
kubectl delete -n NAMESPACE KIND NAMEGanti kode berikut:
KIND: jenis resource Kubernetes.NAME: nama resource.
Hapus objek
ConfigConnectorContextdi namespace Anda.kubectl delete -n NAMESPACE ConfigConnectorContext configconnectorcontext.core.cnrm.cloud.google.com
Meng-uninstal Config Connector
Untuk meng-uninstal Config Connector, selesaikan langkah-langkah berikut:
Untuk menghapus CRD dan komponen pengontrol Config Connector, jalankan perintah berikut:
kubectl delete ConfigConnectorContext --all -A –wait=false kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \ --wait=trueUntuk meng-uninstal operator Config Connector, jalankan perintah berikut:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Menginstal dalam mode cluster
Anda mungkin lebih memilih untuk menginstal dan mengelola Config Connector dalam mode cluster jika ingin mengelola resource dalam satu project dan tidak memerlukan pemisahan izin yang disediakan oleh mode namespace.
Membuat identitas
Config Connector membuat dan mengelola Google Cloud resource dengan mengautentikasi menggunakan akun layanan Identity and Access Management (IAM) dan menggunakan Workload Identity Federation untuk GKE guna mengikat akun layanan IAM dengan akun layanan Kubernetes.
Untuk membuat identitas, selesaikan langkah-langkah berikut:
Buat akun layanan IAM. Jika ingin menggunakan akun layanan yang sudah ada, Anda dapat menggunakan akun tersebut dan melewati langkah ini:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAMEGanti SERVICE_ACCOUNT_NAME dengan nama untuk akun layanan Anda.
Untuk mempelajari lebih lanjut cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.
Berikan izin yang lebih tinggi kepada akun layanan IAM di project Anda:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/editor"Ganti PROJECT_ID dengan project ID Anda.
Buat binding kebijakan IAM antara akun layanan IAM dan akun layanan Kubernetes standar yang menjalankan Config Connector:
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --member="serviceAccount:PROJECT_ID.svc.id.goog[cnrm-system/cnrm-controller-manager]" \ --role="roles/iam.workloadIdentityUser"
Mengonfigurasi Config Connector
Untuk menyelesaikan penginstalan, buat file konfigurasi untuk
ConfigConnector
CustomResource,
lalu terapkan menggunakan perintah kubectl apply. Operator Config Connector menginstal
CRD resourceGoogle Cloud dan komponen Config Connector di cluster Anda.
Untuk mengonfigurasi operator sebagai mode cluster, selesaikan langkah-langkah berikut:
-
Salin file YAML berikut ke dalam file bernama
configconnector.yaml: Ganti kode berikut:# configconnector.yaml apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only one # ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster googleServiceAccount: "SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" # Setting `stateIntoSpec` to `Absent` is recommended. It means setting `cnrm.cloud.google.com/state-into-spec` # annotation to `absent` for all Config Connector resources created in the cluster in the future. # It prevents Config Connector from populating unspecified fields into the spec. stateIntoSpec: Absent
SERVICE_ACCOUNT_NAMEdengan nama akun layanan Anda.PROJECT_IDdengan ID project Anda.
-
Terapkan konfigurasi ke cluster Anda dengan
kubectl apply:kubectl apply -f configconnector.yaml
Menentukan tempat untuk membuat resource
Config Connector dapat mengatur resource menurut project, folder, atau organisasi, yang sama dengan cara Anda mengatur resource dengan Google Cloud.
Sebelum membuat resource dengan Config Connector, Anda harus mengonfigurasi tempat untuk membuat resource. Untuk menentukan tempat membuat resource, Config Connector menggunakan anotasi pada konfigurasi resource atau Namespace yang ada. Untuk mengetahui informasi selengkapnya, lihat Mengatur resource.
Jika Anda tidak memiliki Namespace untuk tujuan ini, buat Namespace dengankubectl.
kubectl create namespace NAMESPACE
Ganti NAMESPACE dengan nama namespace Anda. Contoh config-connector.
Pilih tab untuk memilih tempat Anda ingin Config Connector membuat resource.
Project
Untuk membuat resource di project tertentu, jalankan perintah berikut:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID
Ganti kode berikut:
NAMESPACEdengan nama namespace Anda.PROJECT_IDdengan project ID Google Cloud Anda.
Folder
Untuk membuat resource di folder tertentu, jalankan perintah berikut:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/folder-id=FOLDER_ID
Ganti kode berikut:
NAMESPACEdengan nama namespace Anda.FOLDER_IDdengan ID folder Google Cloud Anda.
Organisasi
Untuk membuat resource di organisasi tertentu, jalankan perintah berikut:
kubectl annotate namespace \ NAMESPACE cnrm.cloud.google.com/organization-id=ORGANIZATION_ID
Ganti kode berikut:
NAMESPACEdengan nama namespace Anda.ORGANIZATION_IDdengan ID organisasi Google Cloud Anda.
Saat Anda membuat anotasi namespace, Config Connector akan membuat resource di project, folder, atau organisasi yang sesuai. Untuk mempelajari lebih lanjut cara Config Connector menggunakan namespace Kubernetes, lihat Namespace Kubernetes dan Google Cloud project.
Memverifikasi penginstalan Anda
Config Connector menjalankan semua komponennya dalam namespace bernama cnrm-system.
Anda dapat memverifikasi bahwa Pod sudah siap dengan menjalankan perintah berikut:
kubectl wait -n cnrm-system \
--for=condition=Ready pod --all
Jika Config Connector diinstal dengan benar, outputnya akan mirip dengan berikut:
pod/cnrm-controller-manager-0 condition met
Meng-uninstal Config Connector
Untuk meng-uninstal Config Connector, selesaikan langkah-langkah berikut:
Untuk menghapus CRD dan komponen pengontrol Config Connector, jalankan perintah berikut:
kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \ --wait=trueUntuk meng-uninstal operator Config Connector, jalankan perintah berikut:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Mengupgrade Config Connector
Untuk mendownload dan menginstal operator Config Connector versi terbaru, jalankan perintah berikut:
gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
tar zxvf release-bundle.tar.gz
kubectl apply -f operator-system/configconnector-operator.yaml
Menurunkan versi Config Connector
Downgrade Config Connector sepenuhnya tidak didukung. Untuk melakukan downgrade operator dan CRD Config Connector, Anda harus meng-uninstal, menginstal ulang Config Connector, lalu menerapkan kembali resource Anda.
Di Config Connector versi 1.123.1 dan yang lebih baru, Anda dapat melakukan roll back versi operator untuk penginstalan yang menggunakan mode namespace.
Di setiap namespace yang memiliki operator yang ingin Anda rollback, tetapkan kolom spec.version
di objek ConfigConnectorContext ke versi Config Connector
sebelumnya.
Anda dapat melakukan roll back pengontrol Config Connector hingga maksimal 3 versi minor. Anda harus selalu melakukan roll back ke versi patch terbaru untuk versi minor tertentu.
Melakukan upgrade dari penginstalan non-operator
Config Connector versi 1.33.0 dan yang lebih tinggi hanya mendukung penginstalan dengan add-on GKE, atau operator.
Untuk mengupgrade ke operator (dan mempertahankan semua resource Config Connector), Anda harus menghapus semua komponen sistem Config Connector kecuali CRD, lalu menginstal operator.
Jalankan perintah berikut untuk menghapus komponen non-CRD sistem Config Connector:
kubectl delete sts,deploy,po,svc,roles,clusterroles,clusterrolebindings --all-namespaces -l cnrm.cloud.google.com/system=true --wait=true kubectl delete validatingwebhookconfiguration abandon-on-uninstall.cnrm.cloud.google.com --ignore-not-found --wait=true kubectl delete validatingwebhookconfiguration validating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=true kubectl delete mutatingwebhookconfiguration mutating-webhook.cnrm.cloud.google.com --ignore-not-found --wait=trueInstal Config Connector dengan add-on GKE, atau operator.
Beralih dari add-on ke penginstalan manual
Saat diinstal sebagai add-on, versi Config Connector terikat langsung dengan versi GKE yang diinstal.
Penginstalan manual memungkinkan update yang lebih cepat dengan mengorbankan upgrade manual.
Untuk beralih metode penginstalan dan mempertahankan resource Anda dengan aman, selesaikan langkah-langkah berikut:
Menonaktifkan add-on tanpa menghapus objek
ConfigConnectoratauConfigConnectorContext:gcloud container clusters update CLUSTER_NAME --update-addons ConfigConnector=DISABLEDGanti
CLUSTER_NAMEdengan nama cluster tempat Anda menginstal Config Connector.Instal operator manual versi yang dipilih.
Untuk mencegah potensi error validasi CRD (misalnya,
KNV2009: Invalid value: "v1beta1": must appear in spec.versions), versi operator manual yang dipilih harus sama atau lebih baru dari versi yang Anda gunakan untuk add-on. Melakukan downgrade versi operator manual dapat menyebabkan error (misalnya, KNV2009) karena add-on GKE mungkin telah mengupgrade CRD tertentu ke versi Config Connector yang lebih baru.
Langkah berikutnya
- Mulai menggunakan Config Connector.
- Pelajari praktik terbaik untuk Config Connector.