Menginstal Config Connector dalam mode namespace


Halaman ini menjelaskan cara menginstal Config Connector dalam mode namespace.

Untuk mengetahui informasi selengkapnya tentang berbagai opsi penginstalan, lihat Memilih jenis penginstalan.

Menginstal dalam mode namespace adalah ekstensi dari penginstalan Config Connector. Mode namespace mendukung pengelolaan banyak project, masing-masing dengan identitas Google Cloud-nya sendiri.

Sebelum memulai

Sebelum mengonfigurasi Config Connector agar berjalan dalam mode dengan namespace, pastikan Anda telah mengaktifkan add-on GKE Config Connector atau menginstal Config Connector Operator secara manual.

Mengonfigurasi Config Connector untuk berjalan dalam mode namespace

Untuk mengaktifkan mode dengan namespace, selesaikan langkah-langkah berikut:

  1. 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
    
  2. 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 disebut sebagai project terkelola, atau MANAGED_PROJECT_ID. Project ini bisa menjadi project yang sama jika Anda hanya ingin menggunakan Config Connector untuk membuat resource Google Cloud dalam project yang sama dengan cluster Anda.

Membuat namespace

Anda dapat melewati langkah ini jika sudah memiliki namespace yang akan digunakan untuk mengatur resource Google Cloud.

Gunakan kubectl untuk membuat 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:

  1. Membuat akun layanan IAM. Jika 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 dengan namespace Anda.
    • HOST_PROJECT_ID dengan ID project host Anda.

    Untuk mempelajari lebih lanjut cara membuat akun layanan, lihat Membuat dan mengelola akun layanan.

  2. Beri akun layanan IAM izin yang lebih tinggi pada 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 kode berikut:

    • MANAGED_PROJECT_ID dengan ID project terkelola Anda.
    • NAMESPACE_GSA dengan nama akun layanan Google yang terikat dengan namespace Anda.
    • HOST_PROJECT_ID dengan ID project host Anda.
  3. Buat binding kebijakan IAM antara akun layanan IAM dan akun layanan Kubernetes Config Connector. Anda mengikat akun layanan dengan menjalankan perintah gcloud berikut:

    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 dengan namespace Anda.
    • NAMESPACE dengan namespace Anda.
  4. Memberi akun layanan IAM izin untuk memublikasikan metrik Prometheus ke 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 dengan namespace Anda.

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:

  1. 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 dengan namespace Anda.
    • HOST_PROJECT_ID dengan ID project host Anda.
  2. Terapkan file tersebut ke cluster Anda dengan kubectl:

    kubectl apply -f configconnectorcontext.yaml
    
  3. Pastikan Operator Config Connector membuat akun layanan Kubernetes untuk namespace Anda menggunakan kubectl dengan menjalankan perintah berikut:

    kubectl get serviceaccount/cnrm-controller-manager-NAMESPACE  -n cnrm-system
    

    Ganti NAMESPACE dengan nama namespace Anda.

  4. Pastikan bahwa Pod pengontrol Config Connector sedang berjalan untuk namespace Anda menggunakan 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, outputnya akan serupa 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, hapus semua resource Config Connector di namespace Anda dan hapus ConfigConnectorContext di namespace Anda.

Menghapus resource Config Connector di namespace Anda

Untuk menyelesaikan penghapusan ConfigConnectorContext, hapus semua resource Config Connector dari namespace Anda.

  1. Untuk menemukan semua resource Config Connector di namespace Anda, cantumkan semua resource untuk setiap Definisi Resource Kustom Config Connector.

    kubectl get gcp -n NAMESPACE
    

    Ganti NAMESPACE dengan nama namespace Anda.

  2. Untuk menghapus semua resource Config Connector, untuk setiap resource dalam output langkah sebelumnya, berikan perintah hapus.

    kubectl delete -n NAMESPACE KIND NAME
    

    Ganti kode berikut:

    • NAMESPACE: nama namespace Anda
    • KIND: jenis resource yang ditemukan pada langkah sebelumnya
    • NAME: nama resource yang ditemukan pada langkah sebelumnya

Menghapus ConfigConnectorContext

Agar dapat mengonfigurasi Config Connector agar tidak lagi mengelola resource Config Connector di namespace Anda, 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 resource Config Connector dihapus dari namespace Anda.

Meng-uninstal Config Connector

Jangan gunakan langkah-langkah berikut untuk meng-uninstal cluster 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