Menginstal Pengontrol Hierarki

Pengontrol Hierarki memungkinkan Anda mengatur namespace Kubernetes menjadi hierarki, menerapkan kebijakan pada mereka (seperti RBAC dan kuota resource hierarkis), dan mengamati workload dari namespace terkait.

Halaman ini menunjukkan cara menginstal, mengonfigurasi, dan meng-uninstal Pengontrol Hierarki.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

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

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

Pengontrol Hierarki adalah yang dirancang untuk bekerja sama dengan Config Sync yang memungkinkan Anda mengelola namespace dan kebijakan hierarkis melalui Git repositori resource. Jika Anda memilih untuk melakukannya, sebaiknya Anda memilih repositori tidak terstruktur saat Anda menginstal Config Sync, yang memungkinkan Anda mengatur repositori di dengan cara yang Anda inginkan sambil mempertahankan manfaat dari kebijakan hierarkis. Menurut kontras, repositori hierarkis bisa konflik dengan {i>Hierarchy Controller<i}; tidak disarankan untuk menggunakan keduanya secara bersamaan.

Atau, Anda dapat memilih untuk menginstal {i>Hierarchy Controller<i} tanpa mengonfigurasi repositori Config Sync; namespace hierarkis dapat ditentukan sepenuhnya di cluster melalui Kubernetes API. Jika Anda tidak berencana menggunakan Git, Anda tidak perlu memberi Operator akses ke Git atau mengonfigurasinya dengan cara apa pun kecuali seperti yang dijelaskan di bagian berikut.

Aktifkan Pengontrol Hierarki

Ikuti langkah-langkah ini untuk mengonfigurasi Config Sync agar dapat menginstal Pengontrol Hierarki.

gcloud

Ikuti langkah-langkah ini untuk mengonfigurasi Config Sync agar dapat menginstal Pengontrol Hierarki, termasuk semua komponen opsional. Jika Anda tidak ingin mengaktifkan kemampuan observasi hierarkis atau kuota resource hierarkis, jadikan baris yang ditunjukkan sebagai komentar.

  1. (Opsional) Jika Anda menggunakan cluster pribadi, tambahkan aturan firewall ke project setiap cluster untuk mengizinkan cluster GKE bidang kontrol agar terhubung ke webhook Pengontrol Hierarki 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. Contoh, 172.16.0.16/28.
    • NODE_TAG: Tag yang diterapkan ke semua node di cluster GKE.
  2. Tetapkan nilai berikut di objek spec.hierarchyController ke true di gcloud configuration file:

    # 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 yang ingin Anda menerapkan konfigurasi ini.
    • CONFIG_YAML: menambahkan jalur ke apply-spec.yaml .
    • PROJECT_ID: tambahkan project ID Anda.

    Beberapa workload di-deploy, lalu Pengontrol Hierarki menjadi dapat digunakan di cluster Anda. Proses ini dapat memerlukan waktu hingga satu menit.

kubectl

Ikuti langkah-langkah ini untuk mengonfigurasi Config Sync agar dapat menginstal Pengontrol Hierarki, termasuk semua komponen opsional. Jika Anda tidak ingin mengaktifkan kemampuan observasi hierarkis atau kuota resource hierarkis, jadikan baris yang ditunjukkan sebagai komentar.

  1. (Opsional) Jika Anda menggunakan cluster pribadi, tambahkan aturan firewall ke project setiap cluster untuk mengizinkan cluster GKE bidang kontrol agar terhubung ke webhook Pengontrol Hierarki 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. Contoh, 172.16.0.16/28.
    • NODE_TAG: Tag yang diterapkan ke semua node di cluster GKE.
  2. Di file konfigurasi untuk Operator, dalam 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 hierarchical 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 menjadi dapat digunakan di cluster Anda. Proses ini dapat memerlukan waktu hingga satu menit.

Menginstal plugin kubectl

Hal ini dimungkinkan untuk berinteraksi dengan Pengendali Hierarki hanya melalui Alat klien Kubernetes seperti kubectl. Namun, opsi {i>open source<i} kubectl-hns plugin kubectl sangat menyederhanakan beberapa tugas. Plugin ini adalah bagian dari Hierarchical Namespace Controller (HNC), yang merupakan komponen {i>Hierarchy Controller<i}.

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

Memverifikasi penginstalan

Setelah Anda menginstal {i>Hierarchy Controller<i}, Anda dapat memverifikasi bahwa instalasi 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:

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

Penginstalan yang berhasil memiliki status INSTALLED di Kolom Hierarchy_Controller. Mungkin diperlukan waktu beberapa menit agar status akan muncul setelah Anda mengaktifkan {i>Hierarchy Controller<i}.

kubectl

Jika {i>Hierarchy Controller<i} diinstal dengan benar, Pod akan dijalankan. Pod mungkin akan dimulai ulang beberapa kali sebelum yang 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:

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

Upgrade Pengontrol Hierarki

Pengontrol Hierarki diupgrade setiap kali Anda melakukan upgrade Sinkronisasi Konfigurasi. Untuk mempelajari lebih lanjut, lihat Upgrade Config Sync.

Uninstal Pengontrol Hierarki

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

gcloud

Untuk meng-uninstal Hierarchy Controller:

  1. Edit konfigurasi Pengontrol Hierarki di File apply-spec.yaml dan tetapkan hierarchyController.enabled ke false.

  2. Terapkan perubahan di 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 yang ingin Anda menerapkan konfigurasi ini.
    • CONFIG_YAML: menambahkan jalur ke apply-spec.yaml .
    • PROJECT_ID: tambahkan project ID Anda.

Setelah Pengontrol Hierarki menghapus finaler hierarchycontroller.configmanagement.gke.io, proses uninstal selesai.

kubectl

Untuk meng-uninstal Hierarchy Controller, edit Config Sync dalam file config-management.yaml Anda dan setel hierarchyController.enabled untuk false. Setelah Config Sync dihapus finaler hierarchycontroller.configmanagement.gke.io, proses uninstal selesai.

Jika Anda ingin meng-uninstal Config Sync sepenuhnya, lihat Uninstal Config Sync dari cluster.

Langkah selanjutnya