Gestione dei cluster di gestione

Questo argomento spiega come gestire più cluster di gestione dalla stessa macchina di bootstrap, inclusi i cluster di gestione distribuiti da Tanzu Kubernetes Grid in vSphere, Azure o Amazon Web Services (AWS) e i supervisori vSphere with Tanzu designati come cluster di gestione di Tanzu Kubernetes Grid.

Importante

Tanzu Kubernetes Grid v2.4.x è l'ultima versione di TKG che supporta la gestione dei cluster di gestione TKG autonomi in AWS e Azure. La possibilità di gestire cluster di gestione TKG autonomi in AWS e Azure verrà rimossa nella versione Tanzu Kubernetes Grid v2.5.

A partire da ora, VMware consiglia di utilizzare Tanzu Mission Control per creare cluster AWS EKS e Azure AKS nativi. La gestione dei cluster di gestione TKG autonomi esistenti in AWS e Azure rimane comunque completamente supportata per tutte le versioni di TKG fino a TKG v2.4.x incluso.

Per ulteriori informazioni, vedere Deprecazione dei cluster di gestione e del carico di lavoro TKG in AWS e Azure nelle Note di rilascio di VMware Tanzu Kubernetes Grid v2.4.

Elenco dei cluster di gestione e modifica del contesto

Per visualizzare un elenco dei cluster di gestione disponibili in cui sia indicato quello a cui si è attualmente connessi, eseguire tanzu context use nella macchina di bootstrap:

tanzu context use
  • Per modificare il contesto di accesso corrente, utilizzare i tasti freccia su e freccia giù per evidenziare il nuovo cluster di gestione, quindi premere Invio.
  • Per mantenere il contesto corrente, premere Invio senza modificare l'evidenziazione.
Nota

Per accedere a un contesto, è necessario creare il contesto utilizzando il comando tanzu context create.

Ad esempio, se si dispone di due cluster di gestione, my-vsphere-mgmt-cluster e my-aws-mgmt-cluster, si è attualmente connessi a my-vsphere-mgmt-cluster:

$ tanzu context use
? Select a server  [Use arrows to move, type to filter]
> my-vsphere-mgmt-cluster  ()
 my-aws-mgmt-cluster      ()
 + new server

Cluster di gestione, kubectl e kubeconfig

Tanzu Kubernetes Grid non modifica automaticamente il contesto di kubectl quando si esegue tanzu context use per modificare il contesto della CLI di Tanzu. Inoltre, Tanzu Kubernetes Grid non imposta automaticamente il contesto di kubectl su un cluster del carico di lavoro quando lo si crea. Per modificare il contesto di kubectl, utilizzare il comando kubectl config use-context.

Per impostazione predefinita, Tanzu Kubernetes Grid salva le informazioni relative al contesto del cluster nei seguenti file nella macchina di bootstrap:

  • Contesti del cluster di gestione: ~/.kube-tkg/config
  • Contesti del cluster del carico di lavoro: ~/.kube/config

Visualizzazione dei dettagli del cluster di gestione

Per visualizzare i dettagli di un cluster di gestione:

  1. Eseguire tanzu context use per accedere al cluster di gestione, come descritto in Elenco dei cluster di gestione e modifica del contesto.

    tanzu context use
    
  2. eseguire tanzu mc get.

    tanzu mc get
    
    NAME         NAMESPACE   STATUS   CONTROLPLANE  WORKERS  KUBERNETES         ROLES       PLAN  TKR
    mc-test-cli  tkg-system  running  3/3           3/3      v1.27.5+vmware.1  management  prod  v1.27.5---vmware.2-tkg.1
    
    
    Details:
    
    NAME                                                         READY  SEVERITY  REASON  SINCE  MESSAGE
    /mc-test-cli                                                 True                     2d1h
    ├─ClusterInfrastructure - VSphereCluster/mc-test-cli-jjtpf   True                     2d1h
    ├─ControlPlane - KubeadmControlPlane/mc-test-cli-mffw9       True                     2d1h
    │ ├─Machine/mc-test-cli-mffw9-5zcbj                          True                     2d1h
    │ ├─Machine/mc-test-cli-mffw9-fs6zh                          True                     2d1h
    │ └─Machine/mc-test-cli-mffw9-jlwnm                          True                     2d1h
    └─Workers
      ├─MachineDeployment/mc-test-cli-md-0-tnz59                 True                     15h
      │ └─Machine/mc-test-cli-md-0-tnz59-64bdc75d94-gtg54        True                     2d1h
      ├─MachineDeployment/mc-test-cli-md-1-2d26b                 True                     15h
      │ └─Machine/mc-test-cli-md-1-2d26b-776885b84-6hzkj         True                     2d1h
      └─MachineDeployment/mc-test-cli-md-2-fs824                 True                     15h
        └─Machine/mc-test-cli-md-2-fs824-7bfd7b9c7b-c7n95        True                     2d1h
    
    
    Providers:
    
      NAMESPACE                          NAME                            TYPE                    PROVIDERNAME     VERSION  WATCHNAMESPACE
      caip-in-cluster-system             infrastructure-ipam-in-cluster  InfrastructureProvider  ipam-in-cluster  v0.1.0
      capi-kubeadm-bootstrap-system      bootstrap-kubeadm               BootstrapProvider       kubeadm          v1.2.8
      capi-kubeadm-control-plane-system  control-plane-kubeadm           ControlPlaneProvider    kubeadm          v1.2.8
      capi-system                        cluster-api                     CoreProvider            cluster-api      v1.2.8
      capv-system                        infrastructure-vsphere          InfrastructureProvider  vsphere          v1.5.1
    

Per visualizzare altre opzioni, eseguire tanzu mc get --help. L'alias della CLI di Tanzu mc è l'abbreviazione di management-cluster.

Aggiunta di cluster di gestione esistenti alla CLI di Tanzu

La CLI di Tanzu consente di accedere a un cluster di gestione creato da un altro utente. Per accedere, è possibile utilizzare i dettagli del kubeconfig locale o l'opzione dell'endpoint del server.

Per accedere a un cluster di gestione esistente utilizzando un kubeconfig locale:

  1. Eseguire tanzu context use, utilizzare il tasto freccia giù per evidenziare + new server e premere Invio.

    tanzu context use
    
    ? Select a server + new server
    
  2. Quando richiesto, selezionare Local kubeconfig come tipo di accesso e immettere il percorso del file kubeconfig locale, il contesto e il nome del server. Ad esempio:

    ✔tanzu context use
    ? Select a server + new server
    ? Select login type Local kubeconfig
    ? Enter path to kubeconfig (if any) /Users/exampleuser/examples/kubeconfig
    ? Enter kube context to use new-mgmt-cluster-admin@new-mgmt-cluster
    ? Give the server a name new-mgmt-cluster
      successfully logged in to management cluster using the kubeconfig new-mgmt-cluster
    

Per accedere a un cluster di gestione esistente utilizzando l'opzione Server endpoint:

  1. Eseguire tanzu context use, utilizzare il tasto freccia giù per evidenziare + new server e premere Invio.

    tanzu context use
    ? Select a server + new server
    
  2. Quando richiesto, selezionare Server endpoint come tipo di accesso.

  3. Nel campo Enter Server endpoint, immettere l'indirizzo IP del server dell'API di Kubernetes del cluster di gestione.
  4. Nel campo Give the server a name, immettere un nome per il server e premere Invio.
  5. Se nel cluster di gestione è abilitata la gestione delle identità, nella pagina di accesso di Okta che viene aperta nel browser predefinito, immettere le credenziali di Okta. Si viene quindi connessi al cluster di gestione.
  6. Verificare che nella CLI di Tanzu sia visualizzato l'output seguente:
successfully logged in to management cluster by using the kubeconfig <server name>

Eliminazione dei cluster di gestione dalla configurazione della CLI di Tanzu

È possibile che nella propria istanza della CLI di Tanzu sia stato aggiunto un cluster di gestione creato da un altro utente, che a un certo punto non è più necessario. Analogamente, se è stato distribuito un cluster di gestione e tale cluster di gestione viene eliminato dalla piattaforma di destinazione con un metodo diverso dall'esecuzione di tanzu mc delete, tale cluster di gestione continuerà a essere presente nell'elenco dei cluster di gestione di cui la CLI tiene traccia quando si esegue tanzu context use. In questi casi, è possibile rimuovere il cluster di gestione dall'elenco dei cluster di gestione di cui la CLI di Tanzu tiene traccia.

  1. Eseguire tanzu context list per visualizzare l'elenco dei cluster di gestione di cui la CLI di Tanzu tiene traccia.

    tanzu context list
    

    Verranno visualizzati tutti i cluster di gestione che sono stati distribuiti o aggiunti alla CLI di Tanzu, la posizione dei rispettivi file kubeconfig e i relativi contesti.

  2. Eseguire il comando tanzu context delete per rimuovere un cluster di gestione.

    tanzu context delete my-vsphere-mc
    

Se si esegue il comando tanzu context delete, vengono rimossi i dettagli del cluster dai file ~/.config/tanzu/config.yaml e ~/.kube-tkg/config.yaml. Non viene eliminato il cluster di gestione stesso, se esiste ancora. Per eliminare un cluster di gestione anziché semplicemente rimuoverlo dalla configurazione della CLI di Tanzu, vedere Eliminazione dei cluster di gestione.

Aggiornamento del certificato del cluster di gestione nella configurazione della CLI di Tanzu

Nella macchina di bootstrap, la CLI di Tanzu utilizza un certificato archiviato localmente per eseguire l'autenticazione nel cluster di gestione. Se il certificato scade, quando si eseguono i comandi della CLI di tanzu, vengono visualizzati messaggi di errore.

Quando il certificato si avvicina alla scadenza, è quindi consigliabile eseguire i passaggi seguenti per aggiornarlo:

  1. Recuperare il nome del cluster di gestione con tanzu mc get.

    tanzu mc get
    
  2. Recuperare i dati di configurazione del cluster:

    kubectl -n tkg-system get secrets CLUSTER-NAME-kubeconfig -o 'go-template={{ index .data "value"}}' | base64 -d > mc_kubeconfig.yaml
    

    In cui CLUSTER-NAME è il nome del cluster di gestione. Ad esempio:

    apiVersion: v1
    clusters:
    - cluster:
      certificate-authority-data: LS0tLS1CRUdJTiBD<redacted>
      server: https://192.168.100.90:6443
      name: tkg-mgmt
    contexts:
    - context:
      cluster: tkg-mgmt
      user: tkg-mgmt-admin
    name: tkg-mgmt-admin@tkg-mgmt
    current-context: tkg-mgmt-admin@tkg-mgmt
    kind: Config
    preferences: {}
    users:
    - name: tkg-mgmt-admin
      user:
      client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZ<redacted>
      client-key-data: LS0tLS1CRUdJTiBSU<redacted>`
    
  3. Eliminare la voce del cluster di gestione esistente dall'elenco dei cluster di gestione di cui la CLI di Tanzu tiene attualmente traccia:

    tanzu context delete CLUSTER-NAME
    
  4. Utilizzare il comando tanzu context create per aggiungere una nuova voce del cluster di gestione con il kubeconfig aggiornato:

    tanzu context create --kubeconfig mc_kubeconfig.yaml --name CLUSTER-NAME --context CLUSTER-NAME-admin@CLUSTER-NAME
    

Applicazione di una scala ai cluster di gestione

Dopo aver distribuito un cluster di gestione, è possibile scalarlo verticalmente oppure orizzontalmente aumentando o riducendo il numero di macchine virtuali dei nodi che contiene. Per scalare un cluster di gestione, utilizzare il comando tanzu cluster scale con una o entrambe le opzioni seguenti:

  • --controlplane-machine-count modifica il numero di nodi del piano di controllo del cluster di gestione.
  • --worker-machine-count modifica il numero di nodi worker del cluster di gestione.

Poiché i cluster di gestione vengono eseguiti nello spazio dei nomi tkg-system anziché nello spazio dei nomi default, è necessario specificare anche l'opzione --namespace quando si scala un cluster di gestione.

  1. Eseguire tanzu context use prima di eseguire tanzu cluster scale per assicurarsi che il cluster di gestione da scalare sia il contesto corrente della CLI di Tanzu.
  2. Per scalare un cluster di gestione di produzione originariamente distribuito con 3 nodi del piano di controllo e 5 nodi worker aumentando il numero di nodi rispettivamente a 5 e 10, eseguire il comando seguente:

    tanzu cluster scale MANAGEMENT-CLUSTER-NAME --controlplane-machine-count 5 --worker-machine-count 10 --namespace tkg-system
    

Se si distribuisce un cluster di gestione di sviluppo con un nodo del piano di controllo e poi lo si scala fino a 3 nodi del piano di controllo, Tanzu Kubernetes Grid abilita automaticamente HA con stack nel piano di controllo.

Importante

Non modificare il contesto o modificare il file .kube-tkg/config mentre sono in esecuzione le operazioni di Tanzu Kubernetes Grid.

Aggiornamento delle credenziali del cluster di gestione (vSphere)

Per aggiornare le credenziali di vSphere utilizzate da un cluster di gestione e facoltativamente da tutti i cluster del carico di lavoro che gestisce, vedere Aggiornamento delle credenziali dei cluster in Creazione e gestione di cluster del carico di lavoro TKG 2.4 con la CLI di Tanzu.

Gestione della partecipazione al programma CEIP

Quando si distribuisce un cluster di gestione utilizzando l'interfaccia del programma di installazione o la CLI, la partecipazione al Programma di Miglioramento dell'Esperienza del Cliente (CEIP) di VMware è abilitata per impostazione predefinita, a meno che non si selezioni l'opzione per disabilitarla. Se si sceglie di partecipare al programma, il cluster di gestione invia a intervalli regolari informazioni sull'utilizzo di Tanzu Kubernetes Grid a VMware, che potrà così apportare miglioramenti alle versioni future.

Per ulteriori informazioni sul programma CEIP, vedere Gestione della partecipazione al programma CEIP.

Se si sceglie di non partecipare al programma CEIP quando si distribuisce un cluster di gestione e in seguito si desidera partecipare oppure se si è scelto di partecipare e si desidera annullare la partecipazione, vedere Scelta o rifiuto del programma CEIP di VMware in Gestione della partecipazione al programma CEIP per modificare l'impostazione di partecipazione al programma CEIP dopo la distribuzione

Creazione di spazi dei nomi nel cluster di gestione

Per semplificare l'organizzazione e la gestione dei progetti di sviluppo, è possibile dividere il cluster di gestione in spazi dei nomi Kubernetes. È quindi possibile utilizzare la CLI di Tanzu per distribuire i cluster del carico di lavoro in spazi dei nomi specifici nel cluster di gestione. Ad esempio, potrebbe essere necessario creare diversi tipi di cluster in spazi dei nomi dedicati. Se non si creano spazi dei nomi aggiuntivi, Tanzu Kubernetes Grid crea tutti i cluster del carico di lavoro nello spazio dei nomi default. Per informazioni sugli spazi dei nomi Kubernetes, vedere la documentazione di Kubernetes.

  1. Assicurarsi che kubectl sia connesso al contesto del cluster di gestione corretto visualizzando il contesto corrente.

    kubectl config current-context
    
  2. Visualizzare l'elenco degli spazi dei nomi attualmente presenti nel cluster di gestione.

    kubectl get namespaces
    

    Si noterà che il cluster di gestione include già diversi spazi dei nomi per i diversi servizi che fornisce:

    capi-kubeadm-bootstrap-system       Active   4m7s
    capi-kubeadm-control-plane-system   Active   4m5s
    capi-system                         Active   4m11s
    capi-webhook-system                 Active   4m13s
    capv-system                         Active   3m59s
    cert-manager                        Active   6m56s
    default                             Active   7m11s
    kube-node-lease                     Active   7m12s
    kube-public                         Active   7m12s
    kube-system                         Active   7m12s
    tkg-system                          Active   3m57s
    
  3. Utilizzare kubectl create -f per creare nuovi spazi dei nomi, ad esempio per lo sviluppo e la produzione.

    In questi esempi vengono utilizzati gli spazi dei nomi production e development della documentazione di Kubernetes.

    kubectl create -f https://k8s.io/examples/admin/namespace-dev.json
    
    kubectl create -f https://k8s.io/examples/admin/namespace-prod.json
    
  4. Eseguire kubectl get namespaces --show-labels per visualizzare i nuovi spazi dei nomi.

    development                         Active   22m   name=development
    production                          Active   22m   name=production
    

Eliminazione di uno spazio dei nomi in un cluster di gestione

Prima di eliminare uno spazio dei nomi per i cluster del carico di lavoro in un cluster di gestione, è necessario eliminare i cluster del carico di lavoro stessi. Non è possibile eliminare i cluster del carico di lavoro eliminando il relativo spazio dei nomi del cluster di gestione.

Per eliminare uno spazio dei nomi per i cluster del carico di lavoro in un cluster di gestione:

  1. Impostare il contesto di kubectl sul cluster di gestione:

    kubectl config use-context MY-MGMT-CLUSTER@MY-MGMT-CLUSTER
    

    In cui MY-MGMT-CLUSTER è il nome del cluster di gestione.

  2. Elencare i cluster in esecuzione nello spazio dei nomi che si sta eliminando:

    tanzu cluster list -n NAMESPACE
    
  3. Eseguire la procedura Eliminazione dei cluster del carico di lavoro per eliminare volumi e servizi, migrare i carichi di lavoro, se necessario, ed eliminare i cluster nello spazio dei nomi.

  4. Utilizzare kubectl per eliminare lo spazio dei nomi:

    kubectl delete namespace NAMESPACE
    

Eliminazione dei cluster di gestione

Per eliminare un cluster di gestione, eseguire il comando tanzu mc delete.

Quando si esegue tanzu mc delete, Tanzu Kubernetes Grid crea un cluster di pulizia kind temporaneo nella macchina di bootstrap per gestire il processo di eliminazione. Il cluster kind viene rimosso al termine del processo di eliminazione.

  1. AWS: Assicurarsi che le credenziali di AWS utilizzate da TKG siano ancora valide. Possono essere profili delle credenziali o variabili di ambiente statiche locali, come descritto in Configurazione delle credenziali dell'account AWS.

    • Non è possibile utilizzare le credenziali del profilo dell'istanza di AWS per eliminare un cluster di gestione.
    • Se le credenziali sono scadute, è possibile che i nodi del cluster di gestione rimangano come descritto in Non è possibile eliminare il cluster di gestione in AWS.
  2. Per visualizzare tutti i cluster di gestione, eseguire tanzu context use come descritto in Elenco dei cluster di gestione e modifica del contesto.

  3. Se sono presenti cluster di gestione non più necessari, eseguire tanzu mc delete.

    È necessario essere connessi al cluster di gestione che si desidera eliminare.

    tanzu mc delete my-mgmt-cluster
    

    Per ignorare il passaggio di verifica yes/no quando si esegue tanzu mc delete, specificare l'opzione --yes.

    tanzu mc delete my-mgmt-cluster --yes
    
  4. Se nel cluster di gestione sono in esecuzione cluster del carico di lavoro, l'operazione di eliminazione non viene eseguita.

    In questo caso, è possibile eliminare il cluster di gestione in due modi:

    • Eseguire tanzu cluster delete per eliminare tutti i cluster in esecuzione e quindi eseguire nuovamente tanzu mc delete.
    • Eseguire tanzu mc delete con l'opzione --force.
    tanzu mc delete my-mgmt-cluster --force
    
Importante

Non modificare il contesto o modificare il file .kube-tkg/config mentre sono in esecuzione le operazioni di Tanzu Kubernetes Grid.

Passaggi successivi

È possibile utilizzare Tanzu Kubernetes Grid per iniziare a distribuire i cluster del carico di lavoro in istanze diverse di Tanzu Kubernetes Grid. Per informazioni, vedere Creazione di cluster del carico di lavoro in Creazione e gestione di cluster del carico di lavoro TKG 2.4 con la CLI di Tanzu.

Se si dispone di vSphere 8 con un supervisore, è possibile utilizzare la CLI di Tanzu per distribuire cluster TKG 2.x. Per informazioni, vedere Creazione e gestione di cluster del carico di lavoro TKG 2.4 con la CLI di Tanzu.

check-circle-line exclamation-circle-line close-line
Scroll to top icon