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:

Procedura

  1. Installare Strumenti CLI Kubernetes di vSphere.
  2. 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.
  3. 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
    Dove 192.197.2.65 è il contesto di Supervisore e tkg2-cluster-namespace è il contesto per Spazio dei nomi vSphere in cui si intende eseguire il provisioning del cluster TKG.
  4. 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
  5. 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.
  6. 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 formato tkg2-storage-policy.storageclass.storage.k8s.io/requests.storage. Il primo token della stringa è il nome della classe di storage, in questo esempio tkg2-storage-policy. Il comando kubectl describe storageclasses restituisce anche classi di storage disponibili, ma richiede autorizzazioni di amministratore vSphere.
  7. 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.
  8. Creare il file YAML per il provisioning di un cluster TKG.
    1. Determinare il tipo di cluster che verrà creato e rivedere l'API e le funzionalità:
    2. Iniziare con uno dei file YAML di esempio per il provisioning del cluster.
    3. Salvare il file YAML come tkg2-cluster-1.yaml o simile.
    4. 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
    5. 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
    6. 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.
  9. 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
  10. 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
  11. 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.
  12. 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.
  13. 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
    Dove 192.197.2.65 è il contesto di Supervisore, tkg2-cluster-namespace è il contesto Spazio dei nomi vSphere e tkg2-cluster-1 è il contesto del cluster TKG.
    Passare al contesto del cluster TKG.
    kubect config use-context tkg2-cluster-1
  14. Controllare le risorse del cluster TKG.
    kubectl get nodes
    kubectl get namespaces
    kubectl get pods -A
    kubectl cluster-info
    kubectl api-resources
  15. Esercitare il cluster TKG distribuendo un pod di prova e verificare che funzioni come previsto.