Menginstal Pengontrol Hierarki

Pengontrol Hierarki memungkinkan Anda mengatur namespace Kubernetes ke dalam hierarki, menerapkan kebijakan padanya (seperti RBAC dan kuota resource hierarkis), serta mengamati beban kerja dari namespace terkait.

Halaman ini menunjukkan cara menginstal, mengonfigurasi, dan meng-uninstal Hierarchy Controller.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Instal dan inisialisasi Google Cloud CLI, yang menyediakan perintah gcloud dan kubectl yang digunakan dalam petunjuk ini. Jika Anda menggunakan Cloud Shell, Google Cloud CLI sudah diinstal sebelumnya.

  • Memiliki cluster yang menjalankan Kubernetes versi 1.16.x atau yang lebih baru.

Pengontrol Hierarki dirancang agar dapat bekerja sama dengan Config Sync agar Anda dapat mengelola namespace dan kebijakan hierarkis melalui repositori Git. Jika Anda memilih untuk melakukannya, sebaiknya pilih repositori tidak terstruktur saat menginstal Config Sync, yang memungkinkan Anda mengatur repositori sesuai keinginan Anda dengan tetap mempertahankan manfaat kebijakan hierarkis. Sebaliknya, repositori hierarkis dapat bertentangan dengan Pengontrol Hierarki; menggunakan keduanya secara bersamaan tidak direkomendasikan.

Atau, Anda dapat memilih untuk menginstal Pengontrol Hierarki tanpa mengonfigurasi repositori Config Sync. Namespace hierarki dapat ditentukan sepenuhnya di cluster melalui Kubernetes API. Jika tidak berencana menggunakan Git, Anda tidak perlu memberikan akses ke Git kepada Operator atau mengonfigurasinya dengan cara apa pun kecuali seperti dijelaskan di bagian berikut.

Aktifkan Pengontrol Hierarki

Ikuti langkah-langkah berikut untuk mengonfigurasi Pengontrol Kebijakan, Sinkronisasi Konfigurasi, dan Pengontrol Konfigurasi untuk menginstal Pengontrol Hierarki.

gcloud

Ikuti langkah-langkah berikut untuk mengonfigurasi Pengontrol Kebijakan, Sinkronisasi Konfigurasi, dan Pengontrol Konfigurasi untuk menginstal Pengontrol Hierarki, termasuk semua komponen opsional. Jika Anda tidak ingin mengaktifkan kemampuan observasi hierarkis atau kuota resource hierarkis, tuliskan baris yang ditunjukkan tersebut.

  1. (Opsional) Jika Anda menggunakan cluster pribadi, tambahkan aturan firewall ke project setiap cluster agar bidang kontrol cluster GKE dapat terhubung ke webhook Hierarchy Controller di port 9443:

     gcloud compute firewall-rules create allow-cluster-control-plane-tcp-9443 \
       --allow tcp:9443 \
       --network default \
       --source-ranges CONTROL_PLANE_CIDR \
       --target-tags NODE_TAG
    

    Ganti kode berikut:

    • CONTROL_PLANE_CIDR: Rentang IP untuk bidang kontrol cluster GKE Anda. Contoh, 172.16.0.16/28.
    • NODE_TAG: Tag yang diterapkan ke semua node di cluster GKE Anda.
  2. Tetapkan nilai berikut dalam objek spec.hierarchyController ke true di file konfigurasi gcloud:

    # apply-spec.yaml
    
    applySpecVersion: 1
    spec:
      hierarchyController:
        # Set to true to enable hierarchical namespaces
        enabled: true
        # Comment to disable hierarchical quota:
        enableHierarchicalResourceQuota: true
        # Comment to disable hierarchical observability:
        enablePodTreeLabels: true
      # ...other fields...
    
  3. Terapkan file apply-spec.yaml:

     gcloud beta container fleet config-management apply \
         --membership=CLUSTER_NAME \
         --config=CONFIG_YAML \
         --project=PROJECT_ID
    

    Ganti kode berikut:

    • CLUSTER_NAME: menambahkan cluster terdaftar tempat Anda ingin menerapkan konfigurasi ini.
    • CONFIG_YAML: menambahkan jalur ke file apply-spec.yaml Anda.
    • PROJECT_ID: tambahkan project ID Anda.

    Beberapa workload di-deploy, lalu Pengontrol Hierarki dapat digunakan di cluster Anda. Mungkin perlu waktu hingga satu menit untuk menyelesaikan prosesnya.

kubectl

Ikuti langkah-langkah berikut untuk mengonfigurasi Pengontrol Kebijakan, Sinkronisasi Konfigurasi, dan Pengontrol Konfigurasi untuk menginstal Pengontrol Hierarki, termasuk semua komponen opsional. Jika Anda tidak ingin mengaktifkan kemampuan observasi hierarkis atau kuota resource hierarkis, beri komentar pada baris yang ditunjukkan.

  1. (Opsional) Jika Anda menggunakan cluster pribadi, tambahkan aturan firewall ke project setiap cluster agar bidang kontrol cluster GKE dapat terhubung ke webhook Hierarchy Controller di port 9443:

     gcloud compute firewall-rules create allow-cluster-control-plane-tcp-9443 \
       --allow tcp:9443 \
       --network default \
       --source-ranges CONTROL_PLANE_CIDR \
       --target-tags NODE_TAG
    

    Ganti kode berikut:

    • CONTROL_PLANE_CIDR: Rentang IP untuk bidang kontrol cluster GKE Anda. Contoh, 172.16.0.16/28.
    • NODE_TAG: Tag yang diterapkan ke semua node di cluster GKE Anda.
  2. Di file konfigurasi untuk Operator, pada objek spec.hierarchyController, tetapkan nilai enabled ke true:

    # config-management.yaml
    
    apiVersion: configmanagement.gke.io/v1
    kind: ConfigManagement
    metadata:
      name: config-management
    spec:
      # Set to true to enable hierarchical namespaces
      hierarchyController:
        enabled: true
        # Comment to disable hierarhical quota:
        enableHierarchicalResourceQuota: true
        # Comment to disable hierarchical observability:
        enablePodTreeLabels: true
       # ...other fields...
    
  3. Terapkan konfigurasi:

      kubectl apply -f config-management.yaml
    

    Beberapa workload di-deploy, lalu Pengontrol Hierarki dapat digunakan di cluster Anda. Mungkin perlu waktu hingga satu menit untuk menyelesaikan prosesnya.

Menginstal plugin kubectl

Anda dapat berinteraksi dengan Hierarchy Controller hanya melalui alat klien Kubernetes seperti kubectl. Namun, open source kubectl-hns plugin kubectl sangat menyederhanakan beberapa tugas. Plugin ini adalah bagian dari Hierarki Namespace Controller (HNC), yang merupakan komponen Pengontrol Hierarki.

Plugin ini didistribusikan oleh komunitas OSS, dan saat ini tersedia untuk Linux serta macOS. Untuk menginstalnya di workstation Anda, lihat Menginstal plugin kubectl dalam dokumentasi Config Sync.

Memverifikasi penginstalan

Setelah menginstal Hierarchy Controller, Anda dapat memverifikasi bahwa penginstalan berhasil diselesaikan.

gcloud

Jalankan perintah berikut:

gcloud beta container fleet config-management status \
    --project=PROJECT_ID

Ganti PROJECT_ID dengan ID project Anda.

Anda akan melihat output yang mirip dengan contoh berikut ini:

Name          ...other columns... Hierarchy_Controller
CLUSTER_NAME  ...other fields ... INSTALLED

Penginstalan yang berhasil akan menampilkan status INSTALLED di kolom Hierarchy_Controller. Mungkin perlu waktu beberapa menit hingga status muncul setelah Anda mengaktifkan Hierarchy Controller.

kubectl

Jika Hierarchy Controller diinstal dengan benar, Pod-nya akan berjalan. Pod dapat dimulai ulang beberapa kali sebelum tersedia.

Karena Pod Pengontrol Hierarki berjalan di namespace hnc-system, Anda dapat melihat statusnya dengan menjalankan perintah berikut:

kubectl get pods -n hnc-system

Anda akan melihat output yang mirip dengan contoh berikut ini:

NAME                                         READY   STATUS    RESTARTS   AGE
gke-hc-controller-manager-6f4dbb484d-t8tdm   2/2     Running   1          1m
hnc-controller-manager-7b75655894-tzqvx      2/2     Running   1          1m

Mengupgrade Pengontrol Hierarki

Pengontrol Hierarki diupgrade setiap kali Anda mengupgrade Pengontrol Kebijakan, Sinkronisasi Konfigurasi, dan Pengontrol Konfigurasi. Untuk mempelajari lebih lanjut, lihat Pengontrol Kebijakan Upgrade, Sinkronisasi Konfigurasi, dan Pengontrol Konfigurasi.

Meng-uninstal Pengontrol Hierarki

Ikuti langkah-langkah ini untuk meng-uninstal Hierarchy Controller dari cluster Anda.

gcloud

Untuk meng-uninstal Hierarchy Controller:

  1. Edit konfigurasi Hierarchy Controller di file apply-spec.yaml dan tetapkan hierarchyController.enabled ke false.

  2. Terapkan perubahan dalam file apply-spec.yaml:

     gcloud beta container fleet config-management apply \
         --membership=CLUSTER_NAME \
         --config=CONFIG_YAML \
         --project=PROJECT_ID
    

    Ganti kode berikut:

    • CLUSTER_NAME: menambahkan cluster terdaftar tempat Anda ingin menerapkan konfigurasi ini.
    • CONFIG_YAML: menambahkan jalur ke file apply-spec.yaml Anda.
    • PROJECT_ID: tambahkan project ID Anda.

Setelah Hierarchy Controller menghapus resolver hierarchycontroller.configmanagement.gke.io, uninstal selesai.

kubectl

Untuk meng-uninstal Hierarchy Controller, edit konfigurasi Pengontrol Kebijakan, Sinkronisasi Konfigurasi, dan Pengontrol Konfigurasi di file config-management.yaml Anda, lalu tetapkan hierarchyController.enabled ke false. Setelah Pengontrol Kebijakan, Config Sync dan Pengontrol Konfigurasi menghapus finalr hierarchycontroller.configmanagement.gke.io, uninstal selesai.

Jika Anda ingin meng-uninstal Pengontrol Kebijakan, Sinkronisasi Konfigurasi, dan Pengontrol Konfigurasi sepenuhnya, lihat Meng-uninstal Pengontrol Kebijakan, Sinkronisasi Konfigurasi, dan Pengontrol Konfigurasi dari cluster.

Langkah selanjutnya