Menginstal di distribusi Kubernetes lainnya


Halaman ini menunjukkan cara menginstal Config Connector di distribusi Kubernetes selain Google Kubernetes Engine (GKE) di Google Cloud, misalnya GKE di AWS.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

Menginstal Config Connector

Untuk menginstal Config Connector di lingkungan Kubernetes lain, setelah Anda membuat atau mengidentifikasi cluster Kubernetes, buat akun layanan Identity and Access Management (IAM), lalu instal komponen Config Connector di cluster Anda.

Membuat ClusterRoleBinding

Config Connector memerlukan izin untuk membuat peran Kubernetes sebelum dapat membuat resource.

Pastikan Anda dapat membuat peran dengan menjalankan perintah berikut:

kubectl auth can-i create roles

Jika outputnya adalah yes, lanjutkan ke bagian Membuat identitas.

Jika output-nya adalah no, buat ClusterRoleBinding di cluster Anda, yang memungkinkan Anda membuat peran:

kubectl create clusterrolebinding cluster-admin-binding \
    --clusterrole cluster-admin \
    --user ACCOUNT_EMAIL

Ganti ACCOUNT_EMAIL dengan email yang Anda gunakan untuk login ke akun Penagihan Cloud Anda.

Output harus berisi frasa cluster-admin-binding created. Jika frasa tersebut tidak muncul, hubungi akun Cloud Billing atau administrator cluster GKE Anda terkait izin.

Membuat identitas

Config Connector memerlukan Cloud Identity untuk berkomunikasi dengan resource lain. Untuk menyiapkan identitas, Anda membuat akun layanan dan kunci akun layanan IAM. Setelah itu, Anda mengimpor kredensial kunci sebagai Secret di setiap cluster yang menjalankan Config Connector.

Dalam kumpulan petunjuk berikutnya, Anda akan mengimpor kunci Kredensial Akun Layanan Google Cloud ke cluster Kubernetes. Mengimpor Kredensial Akun Layanan langsung ke cluster umumnya dianggap tidak aman, terutama jika Anda menjalankan workload kustom atau pihak ketiga di cluster yang sama. Pendekatan ini berpotensi memanfaatkan celah eskalasi node ke cluster dan meniru akun layanan Google Cloud melalui secret ini. Jika Anda menggunakan cluster GKE, sebaiknya gunakan Workload Identity Federation for GKE.

Membuat akun layanan

Untuk membuat akun layanan, selesaikan langkah-langkah berikut:

  1. Buat akun layanan IAM. Jika sudah memiliki akun layanan, Anda dapat menggunakannya, bukan membuat akun layanan baru.

    Gunakan gcloud CLI untuk membuat akun layanan dengan menjalankan perintah berikut:

     gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
    

    Ganti SERVICE_ACCOUNT_NAME dengan nama akun layanan Anda.

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

  2. Berikan izin yang ditingkatkan ke 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/owner"
    

    Ganti kode berikut:

    • PROJECT_ID dengan ID project Google Cloud Anda.
    • SERVICE_ACCOUNT_NAME dengan nama akun layanan Anda.
  3. Buat kunci akun layanan dan ekspor kredensialnya ke file bernama key.json:

    gcloud iam service-accounts keys create --iam-account \
        SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com key.json
    

    Ganti kode berikut:

    • SERVICE_ACCOUNT_NAME dengan nama akun layanan Anda.
    • PROJECT_ID dengan ID project Google Cloud Anda.

Menerapkan kredensial ke cluster Anda

Untuk menerapkan kredensial ke cluster tempat Anda ingin menjalankan Config Connector, selesaikan langkah-langkah berikut:

  1. Buat namespace cnrm-system:

    kubectl create namespace cnrm-system
    
  2. Impor kredensial kunci sebagai Secret.

    kubectl create secret generic SECRET_NAME \
        --from-file key.json \
        --namespace cnrm-system
    

    Ganti SECRET_NAME dengan nama yang ingin Anda berikan untuk Secret.

  3. Hapus kredensial dari sistem Anda:

    rm key.json
    

Menginstal Operator Config Connector

Selesaikan langkah-langkah berikut untuk menginstal Operator Konektor Konfigurasi:

  1. Download file tar Operator Config Connector terbaru:

    gcloud storage cp gs://configconnector-operator/latest/release-bundle.tar.gz release-bundle.tar.gz
    
  2. Ekstrak file tar:

    tar zxvf release-bundle.tar.gz
    
  3. Instal Operator Config Connector di cluster Anda:

    kubectl apply -f operator-system/configconnector-operator.yaml
    

Mengonfigurasi Config Connector

Untuk mengonfigurasi Config Connector menggunakan operator, Anda membuat file konfigurasi untuk CustomResource ConfigConnector, lalu menerapkannya menggunakan perintah kubectl apply.

Untuk mengonfigurasi Config Connector menggunakan operator:

  1. Salin 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
      # instance installed in your cluster
      name: configconnector.core.cnrm.cloud.google.com
    spec:
      mode: cluster
      credentialSecretName: SECRET_NAME
      stateIntoSpec: Absent
    

    Ganti SECRET_NAME dengan nama Secret yang Anda buat sebelumnya.

  2. 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 Mengelola resource.

Jika Anda tidak memiliki Namespace untuk tujuan ini, buat Namespace dengan kubectl.
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 dalam project tertentu, jalankan perintah berikut:

    kubectl annotate namespace \
    NAMESPACE cnrm.cloud.google.com/project-id=PROJECT_ID

Ganti kode berikut:

  • NAMESPACE dengan nama namespace Anda.
  • PROJECT_ID dengan ID project 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:

  • NAMESPACE dengan nama namespace Anda.
  • FOLDER_ID dengan 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:

  • NAMESPACE dengan nama namespace Anda.
  • ORGANIZATION_ID dengan ID organisasi Google Cloud Anda.

Saat Anda menganotasi 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 project Google Cloud.

Memverifikasi penginstalan

Config Connector menjalankan semua komponennya di 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

Mengupgrade Config Connector

Untuk mengupgrade Config Connector, download dan instal operator Config Connector versi terbaru:

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

Meng-uninstal Config Connector

Gunakan kubectl delete untuk menghapus CRD Config Connector beserta komponen pengontrol:

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