Eseguire questo workflow per effettuare il provisioning di un cluster TKG Service in modo dichiarativo utilizzando i comandi kubectl e una specifica del cluster definita in YAML.
Questo workflow supporta il provisioning di un cluster TKG in modo dichiarativo utilizzando kubectl e YAML.
Prerequisiti
Prima di avviare il workflow di provisioning, verificare o completare i prerequisiti seguenti:
- Installare o aggiornare l'ambiente all'ultima versione Supervisore. Vedere Esecuzione di cluster Servizio TKG.
- Creare o aggiornare una libreria di contenuti con più Release di Tanzu Kubernetes. Vedere Amministrazione delle versioni di Kubernetes per i cluster Servizio TKG.
- Creare e configurare un Spazio dei nomi vSphere per l'hosting dei cluster TKG. Vedere Configurazione di Spazi dei nomi vSphere per l'hosting di cluster Servizio TKG.
Procedura
- Installare Strumenti CLI Kubernetes di vSphere.
- Eseguire l'autenticazione con Supervisore utilizzando kubectl.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
Nota: Il nome di dominio completo (FQDN) per Supervisore può essere utilizzato solo se è abilitato. Per ulteriori dettagli, fare riferimento alla documentazione della configurazione di Supervisore. - Verificare che l'accesso a Supervisore sia stato eseguito correttamente.
Viene visualizzato un messaggio simile al seguente:
Logged in successfully. You have access to the following contexts: 192.197.2.65 tkg2-cluster-namespace
Dove192.197.2.65
è il contesto di Supervisore etkg2-cluster-namespace
è il contesto per Spazio dei nomi vSphere in cui si intende eseguire il provisioning del cluster TKG. - Verificare che Spazio dei nomi vSphere di destinazione sia il contesto corrente.
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE 192.197.2.65 192.197.2.65 wcp:10.197.154.65:[email protected] * tkg2-cluster-namespace 10.197.154.65 wcp:10.197.154.65:[email protected] tkg2-cluster-namespace
Se Spazio dei nomi vSphere di destinazione non è il contesto corrente, passare ad esso.kubectl config use-context tkg2-cluster-namespace
- Recuperare l'elenco delle classi di macchine virtuali disponibili in Spazio dei nomi vSphere.
kubectl get virtualmachineclass
È possibile utilizzare solo le classi di macchine virtuali associate allo spazio dei nomi di destinazione. Se non viene visualizzata alcuna classe di macchine virtuali, verificare che le classi di macchine virtuali predefinite siano state associate a Spazio dei nomi vSphere. Vedere anche Risoluzione dei problemi relativi alla classe di macchine virtuali. - Ottenere le classi di storage dei volumi persistenti disponibili.
kubectl describe namespace VSPHERE-NAMESPACE-NAME
Il comando restituisce i dettagli relativi allo spazio dei nomi, inclusa la classe di storage nel formatotkg2-storage-policy.storageclass.storage.k8s.io/requests.storage
. Il primo token della stringa è il nome della classe di storage, in questo esempiotkg2-storage-policy
. Il comandokubectl describe storageclasses
restituisce anche classi di storage disponibili, ma richiede autorizzazioni di amministratore vSphere. - Elencare le Release di Tanzu Kubernetes disponibili.
Per eseguire questa operazione è possibile utilizzare uno dei seguenti comandi:
kubectl get tkr
kubectl get tanzukubernetesreleases
Questo comando restituisce le TKr che possono essere visualizzate in questo Spazio dei nomi vSphere e indica la loro compatibilità con il Supervisore in cui si sta eseguendo la distribuzione. È possibile utilizzare solo le versioni restituite da questo comando. Se non viene visualizzata alcuna versione o le versioni desiderate, verificare di aver eseguito le operazioni seguenti: a) aver creato una libreria di contenuti TKR; b) aver sincronizzato la libreria dei contenuti con i file OVA desiderati; e c) aver associato la libreria di contenuti al Spazio dei nomi vSphere di cui si esegue il provisioning del cluster TKG. - Creare il file YAML per il provisioning di un cluster TKG.
- Determinare il tipo di cluster che verrà creato e rivedere l'API e le funzionalità:
- TanzuKubernetesCluster: Utilizzo dell'API TanzuKubernetesCluster v1alpha3
- Cluster: Utilizzo dell'API del cluster v1beta1
- Iniziare con uno dei file YAML di esempio per il provisioning del cluster.
- Salvare il file YAML come
tkg2-cluster-1.yaml
o simile. - Compilare il file YAML utilizzando le informazioni contrassegnate dall'output dei comandi precedenti, tra cui:
- Nome del cluster, ad esempio
tkg2-cluster-1
- Spazio dei nomi vSphere di destinazione
- Classi di macchine virtuali associate, ad esempio
guaranteed-medium
- Classe di storage per i nodi del cluster e i volumi persistenti
- Numero di piani di controllo e nodi di lavoro (repliche)
- La versione Tanzu Kubernetes specificata dalla stringa NOME TKR, ad esempio
v1.25.7+vmware.3-fips.1-tkg.1
- Nome del cluster, ad esempio
- Personalizzare il file YAML del cluster TGK in base alle esigenze.
- Aggiungere volumi separati per i componenti ad alta rotazione, ad esempio
containerd
- Specificare una classe di storage persistente predefinita per i nodi del cluster e i volumi persistenti
- Personalizzare i servizi di rete del cluster, inclusi CNI, pod e CIDR di servizio
- Aggiungere volumi separati per i componenti ad alta rotazione, ad esempio
- Utilizzare un controllo della sintassi del file YAML e verificare che il file YAML sia valido.
Il risultato di questo passaggio è un file YAML valido per il provisioning del cluster TKG. - Determinare il tipo di cluster che verrà creato e rivedere l'API e le funzionalità:
- Eseguire il provisioning del cluster TKG eseguendo il comando seguente.
kubectl apply -f tkg2-cluster-1.yaml
Risultato previsto:tanzukubernetescluster.run.tanzu.vmware.com/tkg2-cluster-1 created
- Monitorare il provisioning del cluster TKG.
kubectl get tanzukubernetesclusters
kubectl get tkc
Se si crea un cluster utilizzando l'API v1beta1:kubectl get cluster
Inizialmente, lo stato PRONTO è False poiché il provisioning del cluster è in corso. Dopo alcuni minuti dovrebbe essere True.NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE tkg2-cluster-1 3 6 v1.25.7+vmware.3-fips.1-tkg.1 49m True True
Eseguire altri comandi per visualizzare i dettagli relativi al cluster.kubectl get tanzukubernetescluster,cluster,virtualmachinesetresourcepolicy,virtualmachineservice,kubeadmcontrolplane,machinedeployment,machine,virtualmachine
kubectl describe tanzukubernetescluster tkg2-cluster-1
- Monitorare la distribuzione dei nodi del cluster utilizzando vSphere Client.
Nell'inventario vSphere per Host e cluster è necessario visualizzare le macchine virtuali del nodo del cluster distribuite nello Spazio dei nomi vSphere di destinazione.
- Una volta che tutti i nodi del cluster TKG sono nello stato PRONTO, accedere al cluster utilizzando il Plug-in vSphere per kubectl.
kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN \ --vsphere-username USERNAME \ --tanzu-kubernetes-cluster-name CLUSTER-NAME \ --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
Ad esempio:kubectl vsphere login --server=192.197.2.65 --vsphere-username [email protected] \ --tanzu-kubernetes-cluster-name tkg2-cluster-1 --tanzu-kubernetes-cluster-namespace tkg2-cluster-namespace
Nota: Il comando di accesso avrà esito positivo solo dopo che i nodi del piano di controllo sono in esecuzione e il plug-in del servizio di autenticazione è stato avviato. Se è in corso la creazione dei nodi di lavoro, è possibile che l'accesso sia irregolare. È consigliabile accedere quando tutti i nodi del cluster sono PRONTI. - Passare al contesto del cluster TKG in modo che sia il contesto corrente.
Dopo aver eseguito l'accesso al cluster TKG, verrà visualizzato un messaggio simile al seguente.
Logged in successfully. You have access to the following contexts: 192.197.2.65 tkg2-cluster-namespace tkg2-cluster-1
Dove192.197.2.65
è il contesto di Supervisore,tkg2-cluster-namespace
è il contesto Spazio dei nomi vSphere etkg2-cluster-1
è il contesto del cluster TKG.Passare al contesto del cluster TKG.kubect config use-context tkg2-cluster-1
- Controllare le risorse del cluster TKG.
kubectl get nodes
kubectl get namespaces
kubectl get pods -A
kubectl cluster-info
kubectl api-resources
- Esercitare il cluster TKG distribuendo un pod di prova e verificare che funzioni come previsto.