Menginstal Config Connector dalam mode dengan namespace
Halaman ini menjelaskan cara menginstal Config Connector dalam mode namespace.
Menginstal dalam mode dengan namespace adalah ekstensi dari Config Connector penginstalan. Mode namespace mendukung pengelolaan beberapa project, yang masing-masing memiliki identitas Google Cloud mereka sendiri.
Sebelum memulai
Sebelum mengonfigurasi Config Connector untuk berjalan dalam mode namespace, pastikan Anda telah menginstal Config Connector.
Mengonfigurasi Config Connector untuk dijalankan dalam mode namespace
Untuk mengaktifkan mode dengan namespace, selesaikan langkah-langkah berikut:
Salin manifes YAML berikut ke dalam file bernama
configconnector.yaml
: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: Absent
Terapkan konfigurasi ke cluster Anda dengan
kubectl apply
:kubectl apply -f configconnector.yaml
Mengonfigurasi Config Connector untuk mengelola resource di namespace Anda
Di bagian berikut, project Google Cloud tempat Anda menginstal Config Connector dikenal sebagai project host, atau HOST_PROJECT_ID. Project lain tempat Anda mengelola resource dikenal sebagai project terkelola, atau MANAGED_PROJECT_ID. Ini bisa menjadi proyek yang sama jika Anda hanya bermaksud untuk gunakan Config Connector untuk membuat resource Google Cloud di project yang sama dengan cluster Anda.
Membuat namespace
Anda dapat melewatkan langkah ini jika sudah memiliki namespace yang akan digunakan untuk mengatur akses terperinci ke resource Google Cloud tertentu.
Gunakan kubectl
untuk membuat namespace baru dengan menjalankan perintah berikut:
kubectl create namespace NAMESPACE
Mengganti NAMESPACE dengan nama untuk namespace.
Membuat Identitas
Membuat akun layanan Identity and Access Management (IAM) dan membuat binding antara Akun Layanan IAM dan layanan Kubernetes Config Connector akun:
Buat akun layanan IAM. Jika Anda sudah memiliki akun layanan, Anda dapat menggunakannya daripada membuat akun layanan baru. Gunakan
gcloud
untuk membuat akun layanan dengan menjalankan perintah berikut:gcloud iam service-accounts create NAMESPACE_GSA --project HOST_PROJECT_ID
Ganti kode berikut:
- NAMESPACE_GSA dengan nama akun layanan Google (GSA) yang terikat ke namespace.
- HOST_PROJECT_ID dengan ID project host Anda.
Untuk mempelajari lebih lanjut cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.
Memberi akun layanan IAM izin yang ditingkatkan pada project yang dikelola.
gcloud projects add-iam-policy-binding MANAGED_PROJECT_ID \ --member="serviceAccount:NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" \ --role="roles/owner"
Ganti kode berikut:
- MANAGED_PROJECT_ID dengan ID project terkelola Anda.
- NAMESPACE_GSA dengan nama akun layanan Google yang terikat ke namespace.
- HOST_PROJECT_ID dengan ID project host Anda.
Buat binding kebijakan IAM antara Akun layanan IAM dan Kubernetes Config Connector akun layanan Anda. Anda akan mengikat akun layanan dengan menjalankan perintah berikut Perintah
gcloud
: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" \ --project HOST_PROJECT_ID
Ganti kode berikut:
- HOST_PROJECT_ID dengan ID project host Anda.
- NAMESPACE_GSA dengan nama akun layanan Google yang terikat ke namespace.
- NAMESPACE dengan namespace Anda.
Memberi akun layanan IAM izin untuk memublikasikan Metrik Prometheus terhadap Kemampuan Observasi Google Cloud 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"
Ganti kode berikut:
- HOST_PROJECT_ID dengan ID project host Anda.
- NAMESPACE_GSA dengan nama akun layanan Google yang terikat ke namespace.
Membuat ConfigConnectorContext
Untuk membuat resource Google Cloud, Anda perlu mengonfigurasi Config Connector
untuk memantau namespace dengan menambahkan objek ConfigConnectorContext
dalam namespace yang ingin Anda gunakan.
Untuk membuat ConfigConnectorContext
, selesaikan langkah-langkah berikut:
Salin manifes YAML berikut ke dalam file bernama
configconnectorcontext.yaml
:apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnectorContext metadata: # you can only have one ConfigConnectorContext per namespace name: configconnectorcontext.core.cnrm.cloud.google.com namespace: NAMESPACE spec: googleServiceAccount: "NAMESPACE_GSA@HOST_PROJECT_ID.iam.gserviceaccount.com" stateIntoSpec: Absent
Ganti kode berikut:
- NAMESPACE dengan nama namespace Anda.
- NAMESPACE_GSA dengan nama akun layanan Google yang terikat ke namespace.
- HOST_PROJECT_ID dengan ID project host Anda.
Terapkan file tersebut ke cluster Anda dengan
kubectl
:kubectl apply -f configconnectorcontext.yaml
Memastikan Operator Config Connector membuat layanan Kubernetes akun untuk namespace Anda dengan
kubectl
dengan menjalankan perintah berikut:kubectl get serviceaccount/cnrm-controller-manager-NAMESPACE -n cnrm-system
Ganti NAMESPACE dengan nama namespace Anda.
Memastikan Pod pengontrol Config Connector berjalan untuk namespace Anda dengan
kubectl
dengan menjalankan perintah berikut: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=NAMESPACE
Ganti NAMESPACE dengan nama namespace Anda.
Jika pengontrol Config Connector sedang berjalan, output-nya mirip dengan:
cnrm-controller-manager-abcdefghijk-0 condition met.
Mengonfigurasi Config Connector agar tidak lagi mengelola resource di namespace Anda
Untuk mengonfigurasi Config Connector agar tidak lagi mengelola namespace, Anda harus menghapus semua
Resource Config Connector di namespace Anda dan menghapus ConfigConnectorContext
dalam namespace.
Menghapus resource Config Connector di namespace Anda
Untuk menyelesaikan penghapusan ConfigConnectorContext
, hapus semua Config Connector
resource dari namespace Anda.
Untuk menemukan semua resource Config Connector di namespace Anda, untuk setiap Config Connector Definisi Resource Kustom, cantumkan semua resource.
kubectl get gcp -n NAMESPACE
Ganti NAMESPACE dengan nama namespace Anda.
Untuk menghapus semua resource Config Connector, untuk setiap resource di output langkah sebelumnya, berikan perintah {i>delete<i}.
kubectl delete -n NAMESPACE KIND NAME
Ganti kode berikut:
NAMESPACE
: nama namespace AndaKIND
: jenis resource yang ditemukan dalam langkahNAME
: nama resource yang ditemukan di langkah sebelumnya
Menghapus ConfigConnectorContext
Untuk mengonfigurasi Config Connector agar tidak lagi mengelola resource Config Connector
di namespace, hapus ConfigConnectorContext
di namespace Anda.
kubectl delete -n NAMESPACE ConfigConnectorContext configconnectorcontext.core.cnrm.cloud.google.com
Ganti NAMESPACE dengan nama namespace Anda.
Penghapusan ConfigConnectorContext
tidak akan selesai hingga semua Config Connector
resource dihapus dari namespace Anda.
Meng-uninstal Config Connector
Jangan gunakan langkah-langkah berikut untuk meng-uninstal Pengontrol Konfigurasi .
Gunakan kubectl delete
untuk menghapus CRD Config Connector beserta
komponen pengontrol:
kubectl delete ConfigConnectorContext --all -A –wait=false
kubectl delete ConfigConnector configconnector.core.cnrm.cloud.google.com \
--wait=true
Untuk meng-uninstal operator Config Connector, jalankan perintah berikut:
kubectl delete -f operator-system/configconnector-operator.yaml --wait=true
Langkah selanjutnya
- Mulai menggunakan Config Connector.
- Pelajari praktik terbaik untuk Config Connector.