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.
ImportanteTanzu 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.
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
NotaPer 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
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:
~/.kube-tkg/config
~/.kube/config
Per visualizzare i dettagli di un cluster di gestione:
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
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
.
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:
Eseguire tanzu context use
, utilizzare il tasto freccia giù per evidenziare + new server e premere Invio.
tanzu context use
? Select a server + new server
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:
Eseguire tanzu context use
, utilizzare il tasto freccia giù per evidenziare + new server e premere Invio.
tanzu context use
? Select a server + new server
Quando richiesto, selezionare Server endpoint come tipo di accesso.
successfully logged in to management cluster by using the kubeconfig <server name>
È 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.
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.
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.
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:
Recuperare il nome del cluster di gestione con tanzu mc get
.
tanzu mc get
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>`
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
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
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.
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.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.
ImportanteNon modificare il contesto o modificare il file
.kube-tkg/config
mentre sono in esecuzione le operazioni di Tanzu Kubernetes Grid.
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.
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
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.
Assicurarsi che kubectl
sia connesso al contesto del cluster di gestione corretto visualizzando il contesto corrente.
kubectl config current-context
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
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
Eseguire kubectl get namespaces --show-labels
per visualizzare i nuovi spazi dei nomi.
development Active 22m name=development
production Active 22m name=production
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:
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.
Elencare i cluster in esecuzione nello spazio dei nomi che si sta eliminando:
tanzu cluster list -n NAMESPACE
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.
Utilizzare kubectl
per eliminare lo spazio dei nomi:
kubectl delete namespace NAMESPACE
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.
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.
Per visualizzare tutti i cluster di gestione, eseguire tanzu context use
come descritto in Elenco dei cluster di gestione e modifica del contesto.
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
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:
tanzu cluster delete
per eliminare tutti i cluster in esecuzione e quindi eseguire nuovamente tanzu mc delete
.tanzu mc delete
con l'opzione --force
.tanzu mc delete my-mgmt-cluster --force
ImportanteNon modificare il contesto o modificare il file
.kube-tkg/config
mentre sono in esecuzione le operazioni di Tanzu Kubernetes Grid.
È 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.