Controller gerarchia consente di organizzare gli spazi dei nomi Kubernetes in gerarchie, applicare criteri (come RBAC e quote gerarchiche delle risorse), e osserva i carichi di lavoro dagli spazi dei nomi correlati.
Questa pagina mostra come installare, configurare e disinstallare Controller gerarchia.
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.
Il controller gerarchia è progettato per lavorare a stretto contatto con Config Sync che consente di gestire gli spazi dei nomi gerarchici e i criteri tramite un repository Git. Per farlo, ti consigliamo di selezionare un'opzione repository non strutturato quando installi Config Sync, che ti consente di organizzare il repository che preferisci, mantenendo i vantaggi dei criteri gerarchici. Al contrario, un repository gerarchico può entrare in conflitto con Hierarchy Controller. Non è consigliabile utilizzarli insieme.
In alternativa, puoi scegliere di installare Hierarchy Controller senza configurare un repository Config Sync; gli spazi dei nomi gerarchici possono essere definiti interamente sul cluster tramite l'API Kubernetes. Se non hai intenzione di utilizzando Git, non è necessario concedere all'operatore l'accesso a Git configurarla in qualsiasi modo, ad eccezione di quanto descritto nella sezione seguente.
Attiva Hierarchy Controller
Segui questi passaggi per configurare l'installazione di Config Sync Controller gerarchia.
gcloud
Per configurare Config Sync in modo da installare Hierarchy Controller, inclusi tutti i componenti facoltativi, segui questi passaggi. Se non vuoi attivare l'osservabilità gerarchica o le quote per risorse gerarchiche, commenta le righe indicate.
(Facoltativo) Se utilizzi cluster privati, aggiungi regole firewall ai progetti di ogni cluster per consentire al cluster GKE piani di controllo per connettersi ai webhook di 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 tuo dal piano di controllo del cluster GKE. Ad esempio,172.16.0.16/28
.NODE_TAG
: un tag applicato a tutti i nodi in 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 a
apply-spec.yaml
. - PROJECT_ID: aggiungi il tuo ID progetto.
Vengono eseguiti il deployment di diversi carichi di lavoro e Hierarchy Controller diventa utilizzabile nel cluster. L'operazione può richiedere fino a un minuto.
kubectl
Segui questi passaggi per configurare l'installazione di Config Sync Controller gerarchia, inclusi tutti i componenti facoltativi. In caso contrario vuoi attivare osservabilità gerarchica o quote gerarchiche delle risorse, commentate le righe indicate.
(Facoltativo) Se utilizzi cluster privati, aggiungi regole firewall ai progetti di ciascun cluster per consentire ai piani di controllo del cluster GKE di connettersi agli webhook di 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 tuo dal piano di controllo del cluster GKE. Ad esempio,172.16.0.16/28
.NODE_TAG
: un tag applicato a tutti i nodi del 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, quindi Hierarchy Controller diventa utilizzabili nel cluster. L'operazione può richiedere fino a un minuto.
Installa il plug-in kubectl
È possibile interagire con Hierarchy Controller esclusivamente tramite
Strumenti client di Kubernetes come kubectl
. Tuttavia, il plug-in kubectl
kubectl-hns
open source
semplifica notevolmente diverse attività. Questo plug-in fa parte della
HNC (Hierarchical Namespace Controller)
che è un componente
di Gerarchia Controller.
Questo plug-in è distribuito dalla community OSS ed è attualmente disponibile per Linux e macOS. Per installarlo sulla tua workstation, consulta Installare il plug-in kubectl
nella documentazione di Config Sync.
Verificare l'installazione
Dopo aver installato Hierarchy Controller, puoi verificare che l'installazione è 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 all'esempio seguente:
Name ...other columns... Hierarchy_Controller
CLUSTER_NAME ...other fields ... INSTALLED
Un'installazione eseguita correttamente è associata allo stato INSTALLED
in
Hierarchy_Controller
. Potrebbero essere necessari diversi minuti prima che lo stato
vengono visualizzati dopo l'attivazione di Hierarchy Controller.
kubectl
Se Hierarchy Controller è installato correttamente, i relativi pod saranno in esecuzione. I pod potrebbero riavviarsi più volte prima di essere disponibili.
Poiché i pod del controller gerarchia vengono eseguiti nello spazio dei nomi hnc-system
,
puoi visualizzarne lo stato eseguendo questo comando:
kubectl get pods -n hnc-system
Dovresti vedere un output simile all'esempio seguente:
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 del controller gerarchia
Il controller gerarchia viene aggiornato ogni volta che esegui l'upgrade Config Sync. Per scoprire di più, consulta Eseguire l'upgrade di Config Sync.
Disinstalla Hierarchy Controller
Per disinstallare Hierarchy Controller dai cluster:
gcloud
Per disinstallare Hierarchy Controller:
Modifica la configurazione di Hierarchy Controller nel tuo
apply-spec.yaml
file 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 a
apply-spec.yaml
. - PROJECT_ID: aggiungi il tuo ID progetto.
Dopo la rimozione del controller gerarchia
nel finalizzatore hierarchycontroller.configmanagement.gke.io
, la disinstallazione è
completato.
kubectl
Per disinstallare Hierarchy Controller, modifica Config Sync
configurazione nel file config-management.yaml
e imposta
hierarchyController.enabled
a false
. Dopo la rimozione da Config Sync
nel finalizzatore hierarchycontroller.configmanagement.gke.io
, la disinstallazione è
completato.
Se vuoi disinstallare completamente Config Sync, consulta Disinstallare Config Sync da un cluster.
Passaggi successivi
- Scopri di più su Hierarchy Controller
- Applicare quote per le risorse gerarchiche
- Osservare i carichi di lavoro gerarchici
- Esplora le funzionalità degli spazi dei nomi gerarchici di base
- Esplora le funzionalità avanzate degli spazi dei nomi gerarchici