Hierarchy Controller memungkinkan Anda mengatur namespace Kubernetes ke dalam hierarki, menerapkan kebijakan ke namespace tersebut (seperti RBAC dan kuota resource hierarkis), dan mengamati workload 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 lakukan inisialisasi Google Cloud CLI, yang menyediakan perintah
gcloud
dankubectl
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 untuk 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 dengan cara yang Anda inginkan sekaligus 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 hierarkis 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 yang dijelaskan di bagian berikut.
Mengaktifkan Pengontrol Hierarki
Ikuti langkah-langkah berikut untuk mengonfigurasi Config Sync guna menginstal Hierarchy Controller.
gcloud
Ikuti langkah-langkah berikut untuk mengonfigurasi Config Sync guna menginstal Hierarchy Controller, termasuk semua komponen opsional. Jika Anda tidak ingin mengaktifkan observabilitas hierarkis atau kuota resource hierarkis, komentari baris yang ditunjukkan.
(Opsional) Jika Anda menggunakan cluster pribadi, tambahkan aturan firewall ke project setiap cluster untuk mengizinkan bidang kontrol cluster GKE 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 Anda. Contoh,172.16.0.16/28
.NODE_TAG
: Tag yang diterapkan ke semua node di cluster GKE Anda.
Tetapkan nilai berikut dalam objek
spec.hierarchyController
ketrue
dalam 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...
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: tambahkan cluster terdaftar yang ingin Anda terapkan konfigurasi ini.
- CONFIG_YAML: tambahkan jalur ke file
apply-spec.yaml
Anda. - 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 berikut untuk mengonfigurasi Config Sync guna menginstal Hierarchy Controller, termasuk semua komponen opsional. Jika Anda tidak ingin mengaktifkan observabilitas hierarkis atau kuota resource hierarkis, komentari baris yang ditunjukkan.
(Opsional) Jika Anda menggunakan cluster pribadi, tambahkan aturan firewall ke project setiap cluster untuk mengizinkan bidang kontrol cluster GKE 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 Anda. Contoh,172.16.0.16/28
.NODE_TAG
: Tag yang diterapkan ke semua node di cluster GKE Anda.
Dalam file konfigurasi untuk Operator, di objek
spec.hierarchyController
, tetapkan nilaienabled
ketrue
:# 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...
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
Anda dapat berinteraksi dengan Pengontrol Hierarki hanya melalui
alat klien Kubernetes seperti kubectl
. Namun, plugin kubectl
kubectl-hns
open source
sangat menyederhanakan beberapa tugas. Plugin ini adalah bagian dari
Hierarchical Namespace Controller (HNC),
yang merupakan komponen Hierarchy Controller.
Plugin ini didistribusikan oleh komunitas OSS, dan saat ini tersedia untuk
Linux dan macOS. Untuk menginstalnya di workstation, 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 memiliki status INSTALLED
di
kolom Hierarchy_Controller
. Mungkin perlu waktu beberapa menit hingga status
muncul setelah Anda mengaktifkan Pengontrol Hierarki.
kubectl
Jika Pengontrol Hierarki diinstal dengan benar, Pod-nya akan berjalan. Pod mungkin 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 Hierarchy Controller
Pengontrol Hierarki diupgrade setiap kali Anda mengupgrade Config Sync. Untuk mempelajari lebih lanjut, lihat Mengupgrade Sinkronisasi Konfigurasi.
Meng-uninstal Hierarchy Controller
Ikuti langkah-langkah berikut untuk meng-uninstal Hierarchy Controller dari cluster Anda.
gcloud
Untuk meng-uninstal Pengontrol Hierarki:
Edit konfigurasi Pengontrol Hierarki di file
apply-spec.yaml
dan tetapkanhierarchyController.enabled
kefalse
.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: tambahkan cluster terdaftar yang ingin Anda terapkan konfigurasi ini.
- CONFIG_YAML: tambahkan jalur ke file
apply-spec.yaml
Anda. - PROJECT_ID: tambahkan project ID Anda.
Setelah Pengontrol Hierarki menghapus
finalizer hierarchycontroller.configmanagement.gke.io
, uninstal
selesai.
kubectl
Untuk meng-uninstal Pengontrol Hierarki, edit konfigurasi Config Sync
di file config-management.yaml
dan tetapkan
hierarchyController.enabled
ke false
. Setelah Config Sync menghapus
penyelesaian hierarchycontroller.configmanagement.gke.io
, uninstal
selesai.
Jika Anda ingin meng-uninstal Config Sync sepenuhnya, lihat Meng-uninstal Config Sync dari cluster.
Langkah selanjutnya
- Pelajari Pengontrol Hierarki lebih lanjut
- Menerapkan kuota resource hierarkis
- Mengamati workload hierarkis
- Menjelajahi fitur namespace hierarkis dasar
- Menjelajahi fitur namespace hierarkis lanjutan