Questo argomento illustra come configurare i cluster del carico di lavoro di Tanzu Kubernetes Grid (TKG) utilizzando una specifica di oggetto di tipo Kubernetes. Per istruzioni specifiche di IaaS, vedere:
La modalità di configurazione di un cluster del carico di lavoro dipende dal tipo di cluster, come indicato nelle sezioni seguenti.
I cluster basati sulla classe (tipo predefinito) utilizzano una specifica di oggetto di tipo Kubernetes per l'oggetto Cluster
. Per creare un cluster basato sulla classe, è possibile passare questa specifica di oggetto o un file di configurazione del cluster con una struttura flat che imposta variabili maiuscole con il carattere di sottolineatura come CLUSTER_NAME
a tanzu cluster create
.
ClusterBootstrap
e gli oggetti a cui fa riferimento.I cluster basati sul piano e i cluster TKC (tipo legacy) utilizzano un file di configurazione del cluster con una struttura flat che imposta variabili maiuscole con il carattere di sottolineatura come CLUSTER_NAME
. Per creare un cluster legacy, passare questo file di configurazione a tanzu cluster create
.
ytt
, vedere Installazione degli strumenti Carvel.Per ulteriori informazioni sui tipi di cluster precedenti e sui Cluster API Provider che utilizzano, vedere:
kubectl
.Per informazioni su quale file di configurazione scegliere per il cluster del carico di lavoro, vedere la tabella seguente.
È possibile utilizzare un... con la CLI di Tanzu | per creare cluster del carico di lavoro di tipo... | nell'infrastruttura... |
---|---|---|
File di configurazione del cluster flat |
|
|
Specifica di un oggetto di tipo Kubernetes | Cluster basati sulla classe | vSphere 8 con supervisore; vSphere 6.7, 7 e 8 con un cluster di gestione autonomo; AWS; Azure |
È possibile utilizzare un file di configurazione del cluster per configurare i seguenti tipi di cluster:
Cluster basati sulla classe: Sono incluse le distribuzioni in:
Se si desidera distribuire un carico di lavoro basato sulla classe in vSphere 8 con supervisore, è necessario distribuirlo dalla specifica di un oggetto, come descritto in Configurazione di un cluster basato sulla classe distribuito dal supervisore (solo vSphere 8).
(Legacy) Cluster TKC e basati sul piano: Sono incluse le distribuzioni in:
Prima di distribuire un cluster del carico di lavoro in vSphere, AWS o Azure, creare un file di configurazione per il cluster. Quando si passa questo file all'opzione --file
di tanzu cluster create
, la CLI di Tanzu utilizza le informazioni di configurazione definite nel file per connettersi alla piattaforma di destinazione e creare le risorse che il cluster utilizzerà.
Per creare un file di configurazione del cluster, è possibile copiare un file di configurazione esistente per una distribuzione precedente e aggiornarlo. In alternativa, è possibile creare un file da zero utilizzando un modello vuoto:
Per impostare le informazioni di configurazione pertinenti per l'infrastruttura, vedere:
Per l'elenco completo delle opzioni che è possibile specificare nel file di configurazione del cluster, vedere Informazioni di riferimento sulle variabili del file di configurazione.
Quando si distribuisce un cluster del carico di lavoro, la maggior parte della configurazione per il cluster è uguale alla configurazione del cluster di gestione autonomo utilizzato per distribuirlo. Per questo motivo, il modo più semplice per creare un file di configurazione per un cluster del carico di lavoro consiste nell'iniziare con una copia del file di configurazione del cluster di gestione autonomo.
Individuare il file di configurazione YAML per il cluster di gestione:
--file
durante tanzu mc create --ui
, il file di configurazione viene salvato in ~/.config/tanzu/tkg/clusterconfigs/
. Il nome del file è generato in modo casuale, ad esempio bm8xk9bv1v.yaml
.--file
, la configurazione del cluster di gestione viene prelevata dal file specificato.--file
o dalla posizione predefinita ~/.config/tanzu/tkg/cluster-config.yaml
.Creare una copia del file di configurazione del cluster di gestione e salvarlo con un nuovo nome. Ad esempio, salvare il file come my-aws-cluster.yaml
, my-azure-cluster.yaml
o my-vsphere-cluster.yaml
.
Aggiornare le impostazioni nel file di configurazione del cluster. Se si desidera configurare un cluster del carico di lavoro per l'utilizzo di un sistema operativo diverso da quello predefinito, ovvero Ubuntu 20.04, è necessario impostare i valori di OS_NAME
e OS_VERSION
. L'interfaccia del programma di installazione non include i valori del sistema operativo della macchina virtuale dei nodi nei file di configurazione del cluster di gestione che salva in ~/.config/tanzu/tkg/clusterconfigs
.
Salvare il file.
Per preparare un file di configurazione del cluster per un cluster TKC in vSphere 8 con supervisore, vedere Configurazione di un cluster TKC distribuito da un supervisore (Legacy).
È possibile utilizzare un file di specifica di oggetto di tipo Kubernetes per distribuire un cluster del carico di lavoro basato sulla classe in:
Un file della specifica di oggetto ha lo stesso scopo di un file di configurazione del cluster. Quando si passa una specifica di oggetto all'opzione --file
di tanzu cluster create
, la CLI di Tanzu crea il cluster utilizzando le informazioni di configurazione definite nella specifica dell'oggetto.
Come per gli altri oggetti di Kubernetes, configurare un cluster del carico di lavoro basato sulla classe creando e modificando le specifiche degli oggetti. Per gli oggetti cluster, tali specifiche sono:
Cluster
: configura la maggior parte delle opzioni del cluster, ad esempio la topologia del cluster. È possibile modificare e riapplicare questa specifica dell'oggetto per modificare la configurazione di un cluster in esecuzione.ClusterBootstrap
: configura le opzioni non predefinite che vengono applicate solo quando il cluster viene creato, ad esempio Container Network Interface (CNI) e Container Storage Interface (CSI), e che non possono essere riconfigurate in un cluster in esecuzione. Per ulteriori informazioni, vedere Configurazione delle impostazioni una tantum dell'infrastruttura.Per creare il primo file di specifica di oggetto:
Se si distribuisce un cluster del carico di lavoro basato sulla classe in vSphere senza supervisore, AWS o Azure, è possibile utilizzare la CLI di Tanzu per convertire un file di configurazione del cluster in un file di specifica di oggetto senza distribuire il cluster:
(Configurazione globale) Utilizzare la funzionalità auto-apply-generated-clusterclass-based-configuration
della CLI di Tanzu. Per impostazione predefinita, questa funzionalità è impostata su false
. Quando auto-apply-generated-clusterclass-based-configuration
è impostato 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 dell'oggetto ed esce senza creare il cluster. Dopo aver esaminato la configurazione, eseguire nuovamente tanzu cluster create
con il file di specifica di oggetto generato dalla CLI di Tanzu, come descritto in Creazione di un cluster basato sulla classe dalla specifica di oggetto. Se è stata aggiornata la configurazione predefinita, per impostarla nuovamente su false
, eseguire:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
(Cluster singolo) 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
È quindi possibile utilizzare questa specifica di oggetto per distribuire un cluster come descritto in Creazione di un cluster basato sulla classe dalla specifica di un oggetto.
Se si distribuisce un cluster del carico di lavoro basato sulla classe su vSphere 8 con supervisore, creare o adattare la specifica di un oggetto Cluster
come descritto in Configurazione di un cluster basato sulla classe distribuito dal supervisore (solo vSphere 8). La documentazione di vSphere 8 include specifiche dell'oggetto Cluster
di esempio da utilizzare a questo scopo, come Esempio v1beta1: cluster predefinito.
È possibile configurare le impostazioni dei cluster più comuni nella specifica dell'oggetto Cluster
, ma alcuni componenti del cluster provengono dalla versione di Tanzu Kubernetes (TKr) su cui si basano i nodi del cluster. Ad esempio, TKr specifica le versioni di CNI, CSI e Pinniped utilizzate da un cluster.
Queste opzioni a livello di infrastruttura vengono applicate al momento della creazione del cluster dall'oggetto ClusterBootstrap
e non possono essere modificate in un cluster in esecuzione. La procedura generale per configurare queste opzioni prima di creare un cluster è:
Creare le specifiche di oggetto per l'oggetto ClusterBootstrap
e tutti gli oggetti personalizzati a cui fa riferimento, ad esempio un oggetto CalicoConfig
.
Creare una specifica di oggetto per l'oggetto Cluster
stesso.
In metadata
per tutte le specifiche di oggetto, includere il nome e lo spazio dei nomi per il cluster che si sta creando, ad esempio:
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
name: MY-CLUSTER
namespace: MY-NAMESPACE
La personalizzazione potrebbe richiedere metadati aggiuntivi, ad esempio annotazioni.
Concatenare tutte le specifiche di oggetto, inclusa la definizione di Cluster
, in un singolo file. Separare le specifiche con righe costituite da tre trattini (---
).
Passare la specifica di oggetto all'opzione --file
di kubectl apply
, ad esempio:
kubectl config use-context CONTEXT-NAME
kubectl apply -f my-custom-cluster-objects.yaml
Metodo alternativo: In alternativa agli ultimi due passaggi, è possibile eseguire kubectl apply -f
in tutte le specifiche di oggetto, ad eccezione dell'oggetto Cluster
e quindi eseguire tanzu cluster create --file
con la specifica dell'oggetto Cluster
.
Per un esempio specifico di questa procedura, vedere Creazione di un cluster con una CNI non predefinita, che imposta la CNI di un cluster su Calico.
kubectl
e kubeconfig
Tanzu Kubernetes Grid non imposta automaticamente il contesto kubectl
per un cluster del carico di lavoro quando lo si crea. È necessario impostare manualmente il contesto kubectl
per un cluster del carico di lavoro utilizzando il comando kubectl config use-context
.
Per impostazione predefinita, a meno che non si specifichi l'opzione KUBECONFIG
per salvare kubeconfig
per un cluster in un file specifico, tutti i cluster del carico di lavoro distribuiti vengono aggiunti in un file .kube/config
condiviso. Se si elimina il file .kube/config
condiviso e si dispone comunque del file .kube-tkg/config
per il cluster di gestione, è possibile ripristinare il file .kube/config
dei cluster del carico di lavoro con il comando tanzu cluster kubeconfig get CLUSTER-NAME
.
Non modificare il contesto e il file .kube-tkg/config
o .kube/config
mentre sono in esecuzione le operazioni di Tanzu Kubernetes Grid.
Passare all'argomento di configurazione del cluster per l'infrastruttura: