Il controller della gerarchia ti consente di organizzare gli spazi dei nomi Kubernetes in gerarchie, applicarvi criteri (ad esempio RBAC e quote delle risorse gerarchiche) e osservare i carichi di lavoro dagli spazi dei nomi correlati.
Questa pagina mostra come installare, configurare e disinstallare Hierarchy Controller.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti attività:
Installa e inizializza Google Cloud CLI, che fornisce i comandi
gcloud
ekubectl
utilizzati in queste istruzioni. Se utilizzi Cloud Shell, Google Cloud CLI è preinstallato.Avere un cluster che esegue una versione di Kubernetes 1.16.x o successiva.
Hierarchy Controller è progettato per funzionare a stretto contatto con Config Sync, per consentirti di gestire gli spazi dei nomi e i criteri gerarchici tramite un repository Git. Se scegli di farlo, ti consigliamo di selezionare un repository non strutturato quando installi Config Sync, che ti consente di organizzare il repository nel modo che preferisci, mantenendo i vantaggi dei criteri gerarchici. Al contrario, un repository gerarchico può entrare in conflitto con Hierarchy Controller. Non è consigliabile utilizzare i due insieme.
In alternativa, puoi scegliere di installare Hierarchy Controller senza configurare un repository Config Sync. Gli spazi dei nomi gerarchici possono essere definiti interamente nel cluster tramite l'API Kubernetes. Se non prevedi di utilizzare Git, non è necessario concedere all'operatore l'accesso a Git o configurarlo in alcun modo ad eccezione di quanto descritto nella sezione seguente.
Abilita Hierarchy Controller
Segui questi passaggi per configurare Config Sync per l'installazione di Hierarchy Controller.
gcloud
Segui questi passaggi per configurare Config Sync in modo da installare Hierarchy Controller, inclusi tutti i componenti facoltativi. Se non vuoi abilitare l'osservabilità gerarchica o le quote delle risorse gerarchiche, commenta le righe indicate.
(Facoltativo) Se utilizzi cluster privati, aggiungi regole firewall ai progetti di ogni cluster per consentire ai piani di controllo del cluster GKE di connettersi ai webhook Hierarchy Controller sulla porta
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
Sostituisci quanto segue:
CONTROL_PLANE_CIDR
: l'intervallo IP per il piano di controllo del cluster GKE. Ad esempio,172.16.0.16/28
.NODE_TAG
: un tag applicato a tutti i nodi nel cluster GKE.
Imposta i seguenti valori nell'oggetto
spec.hierarchyController
sutrue
nel file di configurazione 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...
Applica il file
apply-spec.yaml
:gcloud beta container fleet config-management apply \ --membership=CLUSTER_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Sostituisci quanto segue:
- CLUSTER_NAME: aggiungi il cluster registrato a cui vuoi applicare questa configurazione.
- CONFIG_YAML: aggiungi il percorso al file
apply-spec.yaml
. - PROJECT_ID: aggiungi il tuo ID progetto.
Viene eseguito il deployment di diversi carichi di lavoro e poi Hierarchy Controller diventa utilizzabile sul cluster. L'operazione può richiedere fino a un minuto.
kubectl
Segui questi passaggi per configurare Config Sync in modo da installare Hierarchy Controller, inclusi tutti i componenti facoltativi. Se non vuoi abilitare l'osservabilità gerarchica o le quote delle risorse gerarchiche, commenta le righe indicate.
(Facoltativo) Se utilizzi cluster privati, aggiungi regole firewall ai progetti di ogni cluster per consentire ai piani di controllo del cluster GKE di connettersi ai webhook Hierarchy Controller sulla porta
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
Sostituisci quanto segue:
CONTROL_PLANE_CIDR
: l'intervallo IP per il piano di controllo del cluster GKE. Ad esempio,172.16.0.16/28
.NODE_TAG
: un tag applicato a tutti i nodi nel cluster GKE.
Nel file di configurazione dell'operatore, nell'oggetto
spec.hierarchyController
, imposta il valore dienabled
sutrue
:# 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...
Applica la configurazione:
kubectl apply -f config-management.yaml
Viene eseguito il deployment di diversi carichi di lavoro e poi Hierarchy Controller diventa utilizzabile sul cluster. L'operazione può richiedere fino a un minuto.
Installa il plug-in kubectl
È possibile interagire con Hierarchy Controller esclusivamente tramite
strumenti client Kubernetes come kubectl
. Tuttavia, il kubectl-hns
plug-in kubectl open source semplifica notevolmente diverse attività. Questo plug-in fa parte di Hierarchical Namespace Controller (HNC), un componente di Hierarchy Controller.
Questo plug-in è distribuito dalla community OSS ed è attualmente disponibile per Linux e macOS. Per installarlo sulla workstation, vedi Installare il plug-in kubectl
nella documentazione di Config Sync.
Verifica l'installazione
Dopo aver installato Hierarchy Controller, puoi verificare che l'installazione sia stata completata correttamente.
gcloud
Esegui questo comando:
gcloud beta container fleet config-management status \
--project=PROJECT_ID
Sostituisci PROJECT_ID
con l'ID del progetto.
Dovresti vedere un output simile al seguente esempio:
Name ...other columns... Hierarchy_Controller
CLUSTER_NAME ...other fields ... INSTALLED
Lo stato di un'installazione riuscita è INSTALLED
nella
colonna Hierarchy_Controller
. Potrebbero essere necessari diversi minuti prima che lo stato
venga visualizzato dopo l'abilitazione di Hierarchy Controller.
kubectl
Se il controller Hierarchy è installato correttamente, i relativi pod saranno in esecuzione. I pod possono riavviarsi più volte prima di essere disponibili.
Poiché i pod di Hierarchy Controller vengono eseguiti nello spazio dei nomi hnc-system
, puoi visualizzarne lo stato eseguendo il comando seguente:
kubectl get pods -n hnc-system
Dovresti vedere un output simile al seguente esempio:
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
Esegui l'upgrade di Hierarchy Controller
Hierarchy Controller viene aggiornato ogni volta che esegui l'upgrade di Config Sync. Per saperne di più, consulta Eseguire l'upgrade di Config Sync.
Disinstalla Hierarchy Controller
Segui questi passaggi per disinstallare Hierarchy Controller dai tuoi cluster.
gcloud
Per disinstallare il controller Hierarchy:
Modifica la configurazione di Hierarchy Controller nel tuo file
apply-spec.yaml
e impostahierarchyController.enabled
sufalse
.Applica le modifiche nel file
apply-spec.yaml
:gcloud beta container fleet config-management apply \ --membership=CLUSTER_NAME \ --config=CONFIG_YAML \ --project=PROJECT_ID
Sostituisci quanto segue:
- CLUSTER_NAME: aggiungi il cluster registrato a cui vuoi applicare questa configurazione.
- CONFIG_YAML: aggiungi il percorso al file
apply-spec.yaml
. - PROJECT_ID: aggiungi il tuo ID progetto.
Dopo che Hierarchy Controller rimuove il finalizzatore hierarchycontroller.configmanagement.gke.io
, la disinstallazione è completa.
kubectl
Per disinstallare Hierarchy Controller, modifica la configurazione di Config Sync nel file config-management.yaml
e imposta hierarchyController.enabled
su false
. Dopo che Config Sync rimuove il finalizzatore hierarchycontroller.configmanagement.gke.io
, la disinstallazione è completa.
Se vuoi disinstallare completamente Config Sync, consulta Disinstallare Config Sync da un cluster.
Passaggi successivi
- Scopri di più su Hierarchy Controller
- Applicare quote delle risorse gerarchiche
- Osservazione dei carichi di lavoro gerarchici
- Esplora le funzionalità di base degli spazi dei nomi gerarchici
- Esplora le funzionalità avanzate degli spazi dei nomi gerarchici