Questo argomento spiega come creare i cluster del carico di lavoro con la CLI di Tanzu.
Le procedure seguenti spiegano come distribuire un cluster del carico di lavoro da un file di configurazione del cluster. Da un file di configurazione del cluster, è possibile creare i seguenti tipi di cluster:
Cluster basati sulla classe: Eseguire i passaggi descritti in Creazione di un cluster basato sulla classe di seguito se si distribuisce il cluster del carico di lavoro in:
Se si desidera distribuire un carico di lavoro basato sulla classe in vSphere 8 con supervisore, è necessario distribuirlo da una specifica di oggetto, come descritto in Configurazione di un cluster basato sulla classe distribuito dal supervisore. Per ulteriori informazioni sui file di configurazione del cluster e sulle specifiche degli oggetti, vedere File di configurazione.
(Legacy) Cluster TKC e basati sul piano: Eseguire i passaggi descritti in (Legacy) Creazione di un cluster basato sul piano o TKC, di seguito.
Per ulteriori informazioni su questi tipi di cluster, vedere Tipi di cluster del carico di lavoro in Informazioni su Tanzu Kubernetes Grid.
La procedura seguente spiega come distribuire un cluster del carico di lavoro basato sulla classe da un file di configurazione del cluster. Il cluster risultante è rappresentato da un oggetto Cluster
in Kubernetes.
ImportanteVMware consiglia di utilizzare e mantenere un file di configurazione dedicato per ogni cluster che si distribuisce.
Individuare il file di configurazione preparato nel contesto dei Prerequisiti indicati sopra.
Creare il cluster. È possibile creare un cluster in uno o due passaggi, a seconda che si desideri esaminarne o modificarne la specifica dell'oggetto prima che venga creato:
–file
di tanzu cluster create
e il comando lo applica automaticamente.–file
di tanzu cluster create
, quindi il comando converte il file in una specifica dell'oggetto Cluster
ed esce senza creare il cluster. Dopo aver esaminato o modificato la specifica, creare il cluster eseguendo nuovamente tanzu cluster create
.Impostare auto-apply-generated-clusterclass-based-configuration
su true
se non lo è già. In questo modo, viene configurata la CLI di Tanzu in modo che crei sempre cluster basati sulla classe utilizzando il processo con un solo passaggio. Per ulteriori informazioni su auto-apply-generated-clusterclass-based-configuration
, vedere Funzionalità in Configurazione e architettura della CLI di Tanzu.
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration true
Eseguire tanzu cluster create
specificando il percorso del file di Cluster configurazione nell'opzione --file
. Ad esempio, se è stato salvato il file di configurazione my-workload-cluster.yaml
nella cartella predefinita clusterconfigs
, eseguire il comando seguente per creare un cluster con un nome specificato nel file di configurazione:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Se non è stato specificato un nome nel file di configurazione del cluster o si desidera creare un cluster con un nome diverso da quello specificato, specificare il nome del cluster nel comando tanzu cluster create
. Ad esempio, per creare un cluster denominato another-workload-cluster
dal file di configurazione my-workload-cluster.yaml
, eseguire il comando seguente:
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Impostare la funzionalità auto-apply-generated-clusterclass-based-configuration
su false
se non lo è già. In questo modo, viene configurata la CLI di Tanzu in modo che crei sempre cluster basati sulla classe utilizzando il processo in due passaggi. false
è l'impostazione predefinita. Se è stata cambiata l'impostazione predefinita, per impostarla nuovamente su false
, eseguire:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
Per ulteriori informazioni su auto-apply-generated-clusterclass-based-configuration
, vedere Funzionalità in Configurazione e architettura della CLI di Tanzu.
Per generare la specifica dell'oggetto, eseguire tanzu cluster create
specificando il percorso del file di configurazione del cluster nell'opzione --file
. Il comando salva la specifica dell'oggetto risultante nella cartella ~/.config/tanzu/tkg/clusterconfigs
, ne stampa la posizione ed esce.
Ad esempio, se è stato salvato il file di configurazione del cluster my-workload-cluster.yaml
nella cartella clusterconfigs
, eseguire il comando seguente per generare la specifica dell'oggetto:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Se non è stato specificato un nome nel file di configurazione per il cluster o si desidera creare un cluster con un nome diverso da quello specificato, specificare il nome del cluster nel comando tanzu cluster create
. Ad esempio:
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Esaminare o modificare il file delle specifiche dell'oggetto generato da tanzu cluster create
.
Eseguire nuovamente tanzu cluster create
, specificando il percorso dell'oggetto nell'opzione --file
. Ad esempio:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml
Includere tutti i flag utilizzati nel primo passaggio, incluso il flag --tkr
se si sta creando un cluster che esegue una versione di Kubernetes diversa da quella del cluster di gestione. Ad esempio:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml -v 6 --tkr v1.23.16---vmware.1-tkg.2
Per generare la specifica dell'oggetto, eseguire tanzu cluster create
con l'opzione --dry-run
. L'opzione --dry-run
sostituisce l'impostazione auto-apply-generated-clusterclass-based-configuration
.
tanzu cluster create CLUSTER-NAME --dry-run --file PATH-TO-CLUSTER-CONFIG-FILE.yaml > PATH-TO-OBJECT-SPEC-FILE.yaml
In cui:
CLUSTER-NAME
è il nome del cluster. È possibile omettere CLUSTER-NAME
se è stato specificato nel file di configurazione del cluster.PATH-TO-CLUSTER-CONFIG-FILE
è il percorso del file di configurazione del cluster che si trova nel passaggio 1.PATH-TO-OBJECT-SPEC-FILE
è la posizione in cui si desidera salvare il file delle specifiche dell'oggetto risultante.Ad esempio, per salvare la specifica dell'oggetto risultante in un file denominato my-workload-cluster-spec.yaml
, eseguire:
tanzu cluster create my-cluster --dry-run --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml > my-workload-cluster-spec.yaml
Esaminare o modificare il file della specifica dell'oggetto generato dall'opzione --dry-run
nel passaggio precedente. Nell'esempio precedente, il nome del file della specifica è my-workload-cluster-spec.yaml
.
Dopo aver esaminato o modificato il file delle specifiche dell'oggetto, eseguire nuovamente tanzu cluster create
senza l'opzione --dry-run
. Nell'opzione --file
, specificare il percorso del file della specifica dell'oggetto. Ad esempio:
tanzu cluster create my-cluster --file my-workload-cluster-spec.yaml
Includere tutti i flag utilizzati nel primo passaggio, incluso il flag --tkr
se si sta creando un cluster che esegue una versione di Kubernetes diversa da quella del cluster di gestione. Ad esempio:
tanzu cluster create --file my-workload-cluster-spec.yaml -v 6 --tkr v1.23.16---vmware.1-tkg.2
NotaQuando si creano cluster basati sulla classe, la CLI di Tanzu non utilizza le personalizzazioni
ytt
descritte in Configurazione di un cluster legacy con ytt. Se la CLI li rileva nella macchina, genera un erroreIt seems like you have done some customizations to the template overlays.
Dopo aver creato il cluster, eseguire il comando tanzu cluster get
per visualizzare le informazioni sul cluster:
tanzu cluster get CLUSTER-NAME
Nell'output sono elencate le informazioni sullo stato dei nodi del piano di controllo e dei nodi worker, la versione di Kubernetes in esecuzione nel cluster e i nomi dei nodi.
La procedura seguente spiega come distribuire un cluster TKC o basato sul piano da un file di configurazione:
AWSCluster
, AzureCluster
o VSphereCluster
in Kubernetes, in base alla piattaforma dell'infrastruttura di destinazione.TanzuKubernetesCluster
in Kubernetes.Per creare il cluster:
Impostare la funzionalità allow-legacy-cluster
su true
nella CLI di Tanzu:
tanzu config set features.cluster.allow-legacy-cluster true
Creare il cluster:
Eseguire il comando tanzu cluster create
specificando il percorso del file di configurazione nell'opzione --file
. Ad esempio, se è stato salvato il file di configurazione del carico di lavoro my-workload-cluster.yaml
nella cartella predefinita clusterconfigs
, eseguire il comando seguente per creare un cluster con un nome specificato nel file di configurazione:
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Se non è stato specificato un nome nel file di configurazione o si desidera creare un cluster con un nome diverso da quello specificato, specificare il nome del cluster nel comando tanzu cluster create
. Ad esempio, per creare un cluster denominato another-workload-cluster
dal file di configurazione my-workload-cluster.yaml
, eseguire il comando seguente:
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Dopo aver creato il cluster, eseguire il comando tanzu cluster get
per visualizzare le informazioni sul cluster:
tanzu cluster get CLUSTER-NAME
Nell'output sono elencate le informazioni sullo stato dei nodi del piano di controllo e dei nodi worker, la versione di Kubernetes in esecuzione nel cluster e i nomi dei nodi.
Creare o copiare un file di configurazione per il cluster del carico di lavoro come descritto in Configurazione di un cluster TKC distribuito da un supervisore (legacy).
Dopo aver connesso la CLI di Tanzu al supervisore, recuperare lo spazio dei nomi vSphere di destinazione:
tanzu namespaces get
Determinare la versione di Tanzu Kubernetes (TKr) per il cluster:
Recuperare l'elenco di TKr disponibili nel cluster supervisore:
tanzu kubernetes-release get
Dall'output del comando, prendere nota del valore desiderato indicato in NAME
, ad esempio v1.22.5---vmware.1-tkg.1
. Il valore NAME
di tkr
è uguale a quello di VERSION
ma con +
sostituito da ---
.
Distribuire il cluster eseguendo tanzu cluster create
con il valore TKR-NAME
e il nome del file di configurazione:
tanzu cluster create CLUSTER-NAME --file CONFIGURATION-FILE --tkr=TKR-NAME
In cui:
CLUSTER-NAME
è un nome qualsiasi fornito per il cluster. Questo valore della riga di comando sostituisce qualsiasi impostazione CLUSTER_NAME
nel file di configurazione.CONFIGURATION-FILE
è il percorso locale del file di configurazione del cluster, ad esempio ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
.TKR-NAME
è il nome di TKr recuperato in precedenza.Dopo aver creato il cluster, eseguire tanzu cluster get
per visualizzare lo stato corrente del cluster:
tanzu cluster get CLUSTER-NAME
Configurare gli indirizzi IP dei nodi e dell'endpoint del piano di controllo in modo che siano statici, come descritto in Configurazione delle prenotazioni DHCP dei nodi e del record DNS dell'endpoint (solo vSphere).
Le procedure seguenti spiegano come creare un cluster del carico di lavoro basato sulla classe utilizzando una specifica di oggetto di tipo Kubernetes:
Per creare un file di specifica di oggetto di tipo Kubernetes per un cluster del carico di lavoro basato sulla classe, seguire i passaggi seguenti.
Se è stata aggiornata la configurazione predefinita della funzionalità auto-apply-generated-clusterclass-based-configuration
, impostarla nuovamente su false
e quindi eseguire tanzu cluster create
con il flag --file
. Per impostare auto-apply-generated-clusterclass-based-configuration
su false
:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
Quando questa funzione è impostata su false
e si esegue tanzu cluster create
con il flag --file
, il comando converte il file di configurazione del cluster in un file di specifiche degli oggetti ed esce senza creare il cluster. Dopo aver rivisto la configurazione, si esegue nuovamente tanzu cluster create
con il file di specifiche dell'oggetto generato dalla CLI di Tanzu.
Per creare il file di specifiche per un singolo cluster, passare l'opzione --dry-run
a tanzu cluster create
e salvare l'output in un file. Utilizzare le stesse opzioni e lo stesso --file
di configurazione che si utilizzerebbero se si stesse creando il cluster, ad esempio:
tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
L'opzione --dry-run
sostituisce l'impostazione auto-apply-generated-clusterclass-based-configuration
.
Per un file di specifica di oggetto di esempio, vedere Oggetto Cluster
di esempio e relativi oggetti subordinati.
Cluster
come descritto in
Configurazione un cluster basato sulla classe distribuito dal supervisore.
Cluster
di esempio da utilizzare a questo scopo, come Esempio v1beta1: cluster predefinito.topology
del file della specifica.Cluster
stesso, ad esempio le impostazioni una tantum dell'interfaccia del container nell'infrastruttura del cluster, vedere Configurazione delle impostazioni una tantum dell'infrastruttura.Per distribuire un cluster del carico di lavoro basato sulla classe dalla specifica di un oggetto, passare la specifica dell'oggetto all'opzione --file
di tanzu cluster create
, ad esempio:
tanzu cluster create my-cluster --file my-cluster-spec.yaml
NotaQuando si creano cluster basati sulla classe, la CLI di Tanzu non utilizza le personalizzazioni
ytt
descritte in Configurazione di un cluster legacy con ytt. Se la CLI li rileva nella macchina, genera un erroreIt seems like you have done some customizations to the template overlays.
Per i cluster del carico di lavoro gestiti da un cluster di gestione creato con tanzu management-cluster create
o tanzu mc create
anziché con un cluster supervisore vSphere with Tanzu, la distribuzione di Harbor o altri servizi consente a tutti i carichi di lavoro di condividere una singola istanza del servizio.
Ogni istanza di Tanzu Kubernetes Grid può avere un solo cluster di servizi condivisi.
La distribuzione di Harbor in un cluster di servizi condivisi consente a tutti i cluster del carico di lavoro gestiti dallo stesso cluster di gestione di condividere una singola istanza di Harbor. Per istruzioni sulla distribuzione di Harbor, vedere Installazione di Harbor per il registro del servizio.
Per creare un cluster di servizi condivisi:
Creare un file YAML di configurazione del cluster per il cluster. È consigliabile utilizzare il piano del cluster prod
anziché il piano dev
. Ad esempio:
INFRASTRUCTURE_PROVIDER: vsphere
CLUSTER_NAME: YOUR-CLUSTER-NAME
CLUSTER_PLAN: prod
In cui YOUR-CLUSTER-NAME
è il nome scelto per il cluster. Ad esempio, tkg-services
.
(Solo vSphere) Se si utilizza il bilanciamento del carico Kube-Vip predefinito per l'API del piano di controllo del cluster, è necessario specificarne l'endpoint impostando VSPHERE_CONTROL_PLANE_ENDPOINT
. Assicurarsi che questo indirizzo VIP non sia incluso nell'intervallo DHCP, ma si trovi nella stessa subnet dell'intervallo DHCP. Se un nome dominio completo (FQDN) è stato mappato all'indirizzo VIP, è possibile specificare il nome di dominio completo anziché l'indirizzo VIP.
Se si utilizza NSX Advanced Load Balancer (ALB), non impostare VSPHERE_CONTROL_PLANE_ENDPOINT
a meno che non sia necessario che l'endpoint del piano di controllo sia a un indirizzo specifico. In tal caso, utilizzare un indirizzo statico dell'intervallo di rete VIP del profilo IPAM di NSX ALB che è stato aggiunto manualmente al pool di IP statici oppure un nome di dominio completo mappato all'indirizzo statico.
Ad esempio:
VSPHERE_CONTROL_PLANE_ENDPOINT: 10.10.10.10
Creare il cluster dei servizi condivisi come descritto in precedenza in Creazione di un cluster da un file di configurazione.
Impostare il contesto di kubectl
sul contesto del cluster di gestione. Ad esempio:
kubectl config use-context mgmt-cluster-admin@mgmt-cluster
In questo esempio, mgmt-cluster
è il nome del cluster di gestione.
Aggiungere l'etichetta tanzu-services
al cluster dei servizi condivisi come ruolo del cluster. Questa etichetta identifica il cluster dei servizi condivisi nel cluster di gestione e nei cluster del carico di lavoro. Ad esempio:
kubectl label cluster.cluster.x-k8s.io/tkg-services cluster-role.tkg.tanzu.vmware.com/tanzu-services="" --overwrite=true
In questo esempio, tkg-services
è il nome del cluster dei servizi condivisi. Dovrebbe essere presente la conferma cluster.cluster.x-k8s.io/tkg-services labeled
.
Verificare che l'etichetta sia stata applicata correttamente eseguendo il comando seguente:
tanzu cluster list --include-management-cluster
Il cluster dei servizi condivisi risulta avere il ruolo tanzu-services
. Ad esempio:
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
another-cluster default running 1/1 1/1 v1.25.7+vmware.1 <none> dev v1.25.7---vmware.1-tkg
tkg-services default running 3/3 3/3 v1.25.7+vmware.1 tanzu-services prod v1.25.7---vmware.1-tkg
mgmt-cluster tkg-system running 1/1 1/1 v1.25.7+vmware.1 management dev v1.25.7---vmware.1-tkg
Recuperare le credenziali admin
del cluster dei servizi condivisi. Ad esempio:
tanzu cluster kubeconfig get tkg-services --admin
Impostare il contesto di kubectl
sul cluster dei servizi condivisi. Ad esempio:
kubectl config use-context tkg-services-admin@tkg-services