In questo argomento vengono descritti i diversi tipi di cluster del carico di lavoro creati da Tanzu Kubernetes Grid (TKG) e il modo in cui vengono configurati e creati.
In Tanzu Kubernetes Grid sono disponibili tre tipi diversi di cluster del carico di lavoro:
Cluster
spec.topology
spec.topology.class
ClusterClass
class
predefinito è tanzukubernetescluster
class
predefinito è tkg-INFRASTRUCTURE-default-VERSION
, ad esempio tkg-vsphere-default-v1.0.0
.TanzuKubernetesCluster
Cluster
Si tenga presente che i cluster basati sulla classe con class: tanzukubernetescluster
, tutto minuscolo, sono diversi dai cluster basati su TKC, che hanno il tipo di oggetto TanzuKubernetesCluster
.
I cluster basati sulla classe sono progettati per sostituire gli altri due tipi di cluster presentando la stessa API a entrambi i tipi di cluster di gestione, ovvero supervisore e cluster di gestione autonomi.
ImportanteTanzu Kubernetes Grid v2.4.x è l'ultima versione di TKG che supporta la creazione di cluster del carico di lavoro di TKG in AWS e Azure. La possibilità di creare cluster del carico di lavoro TKG in AWS e Azure verrà rimossa nella versione Tanzu Kubernetes Grid v2.5. 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 creare e gestire cluster del carico di lavoro, i cluster di gestione eseguono il software Cluster API:
La seguente tabella mappa i tipi di cluster di gestione e del carico di lavoro ai Cluster API Provider che utilizzano:
TKG con... | utilizza il Cluster API Provider... | in... | per creare e gestire cluster del carico di lavoro di tipo... | nelle versioni dei prodotti... |
---|---|---|---|---|
Supervisore | CAPW (proprietario) | vSphere | Oggetti Cluster basati sulla classe |
TKG 2.x e vSphere with Tanzu 8 |
Oggetti TanzuKubernetesCluster |
vSphere with Tanzu 7 e 8 | |||
Cluster di gestione autonomo | CAPA (OSS) | AWS | Oggetti Cluster basati sulla classe |
TKG v2.x |
Oggetti AWSCluster basati sul piano |
TKG v2.x e v1.x | |||
CAPZ (OSS) | Azure | Oggetti Cluster basati sulla classe |
TKG v2.x | |
Oggetti AzureCluster basati sul piano |
TKG v2.x e v1.x | |||
CAPV (OSS) | vSphere | Oggetti Cluster basati sulla classe |
TKG v2.x | |
Oggetti VSphereCluster basati sul piano |
TKG v2.x e v1.x |
Le versioni della CLI di Tanzu con versioni diverse di Tanzu Kubernetes Grid consentono di creare tipi di cluster diversi a seconda che si utilizzi un supervisore in vSphere 8, un cluster supervisore in vSphere 7 o un cluster di gestione autonomo in vSphere 6.7, 7 e 8 senza supervisore, in AWS o in Azure.
Versione della CLI | Versione di TKG | Creare cluster basati sulla classe con... | Creare cluster basati su un piano con... | Creare TanzuKubernetesClusters con... |
||||||
---|---|---|---|---|---|---|---|---|---|---|
Cluster di gestione autonomo | Supervisore in vSphere 8 | Cluster supervisore in vSphere 7 | Cluster di gestione autonomo | Supervisore in vSphere 8 | Cluster supervisore in vSphere 7 | Cluster di gestione autonomo | Supervisore in vSphere 8 | Cluster supervisore in vSphere 7 | ||
v0.90.1* | 2.3.0 | ✓ | ✓ | x | ✓ | ✓ | x | x | ✓ | x |
v0.29.0 | 2.2.0 | ✓ | ✓ | x | ✓ | ✓ | x | x | ✓ | x |
v0.28.1 | 2.1.1 | ✓ | ✓ | x | ✓ | ✓ | x | x | ✓ | x |
v0.25.4 | 1.6.1 | x | ✓ | x | ✓ | ✓ | x | x | ✓ | ✓ |
v0.25.0 | 1.6.0 | x | ✓ | x | ✓ | ✓ | x | x | ✓ | ✓ |
v0.11.x | 1.5.x | x | x | x | ✓ | x | x | x | x | ✓ |
* Per un elenco completo delle versioni della CLI compatibili con Tanzu Kubernetes Grid v2.4, vedere Product Interoperability Matrix.
I cluster basati sulla classe hanno la seguente gerarchia generale di tipi di oggetti. Gli oggetti sottostanti a KubeAdmControlPlane
e MachineDeployment
sono dello stesso tipo, ma sono in genere oggetti diversi:
Cluster
: numero e tipo di nodi worker e del piano di controllo impostati in base al blocco topology
nella specifica
KubeAdmControlPlane
: definisce i nodi del piano di controllo
vSphereMachine
, AWSMachine
DockerMachine
Machine
: oggetto generico per la macchina virtuale del nodoKubeAdmConfig
: configurazione di Kubernetes, che include la versione di Kubernetes, il repository delle immagini, gli hook di pre-distribuzione e post-distribuzione e così via.MachineDeployment
: definisce i nodi worker
Machine
KubeAdmConfig
Per ulteriori informazioni, vedere CustomResourceDefinitions relationships in The Cluster API Book.
In base all'ambiente installato, è possibile creare cluster del carico di lavoro Tanzu Kubernetes Grid in più modi: con la CLI di Tanzu, Tanzu Mission Control e kubectl
.
Il grafico seguente illustra come gli utenti possono creare diversi tipi di cluster di carichi di lavoro su infrastrutture diverse:
L'utilizzo di... | per creare un... | acquisisce i valori di configurazione da... | e i modelli di configurazione da... | Istruzioni |
---|---|---|---|---|
CLI di Tanzu:tanzu cluster create |
Cluster dei carichi di lavoro basati sulla classe (vSphere) | Cluster e specifiche dell'oggetto sottostante |
Utente, ad esempio classycluster.yaml | Creazione di un cluster basato sulla classe |
Cluster del carico di lavoro TanzuKubernetesCluster (vSphere) |
File di configurazione del cluster, ambiente locale, (impostazione avanzata) overlay ytt |
infrastructure-tkg-service-vsphere * |
(Legacy) Creazione di un cluster TKC o basato su un piano | |
Cluster del carico di lavoro basato su un piano (vSphere, AWS, Azure) | infrastructure-vsphere , infrastructure-aws , infrastructure-azure * |
|||
Tanzu Mission Control (TMC) | TanzuKubernetesCluster o cluster del carico di lavoro basato su un piano |
Interfaccia utente TMC | Cluster di gestione registrato | Provisioning dei cluster dei carichi di lavoro |
kubectl apply |
Cluster dei carichi di lavoro basati sulla classe o TanzuKubernetesCluster (vSphere) |
Cluster e specifiche dell'oggetto sottostante |
Utente, ad esempio classycluster.yaml, tkc.yaml | Creazione di cluster di carichi di lavoro in modo dichiarativo |
*Directory locali in .config/tanzu/tkg/providers/
Quando la CLI di Tanzu crea un cluster del carico di lavoro basato su TKC, combina i valori di configurazione degli elementi seguenti:
~/.config/tanzu/tkg/cluster-config.yaml
o un altro file passato all'opzione --file
della CLI~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
, come descritto in File di configurazione del piano di seguito.~/.config/tanzu/tkg/providers
L'input in tempo reale applica valori di configurazione univoci per ogni chiamata. Le variabili di ambiente li conservano tra una sessione del terminale e l'altra e i file di configurazione e gli overlay li conservano indefinitamente. È possibile personalizzare i cluster tramite le seguenti origini, con i consigli e le condizioni disponibili di seguito.
Vedere Precedenza dei valori della configurazione per informazioni su come la CLI di tanzu
deriva valori di configurazione del cluster specifici da più origini in cui possono entrare in conflitto.
La directory ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
contiene i file di configurazione del piano del cluster del carico di lavoro TKC denominati cluster-template-definition-PLAN.yaml
. I valori di configurazione di ciascun piano provengono da questi file e dai file elencati in spec.paths
:
tanzu
spec.paths
Per personalizzare i piani del cluster tramite YAML, modificare i file in ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
, ma è consigliabile evitare di modificare gli altri file.
File da modificare
I percorsi dei file di configurazione del cluster del carico di lavoro hanno il formato ~/.config/tanzu/tkg/providers/infrastructure-infrastructure-tkg-service-vsphere/VERSION/cluster-template-definition-PLAN.yaml
, in cui:
VERSION
è la versione del modulo Cluster API Provider utilizzato dalla configurazione.PLAN
è dev
, prod
o un piano personalizzato.Ogni file di configurazione del piano include una sezione spec.paths
in cui sono elencati i file di origine e le directory ytt
che configurano il piano del cluster. Ad esempio:
apiVersion: providers.tanzu.vmware.com/v1alpha1
kind: TemplateDefinition
spec:
paths:
- path: providers/infrastructure-tkg-service-vsphere/v1.1.0/ytt
- path: providers/ytt
- path: bom
filemark: text-plain
- path: providers/config_default.yaml
Questi file vengono elaborati nell'ordine in cui sono elencati. Se lo stesso campo di configurazione è impostato in più file, l'ultima impostazione elaborata è quella utilizzata dalla CLI di tanzu
.
Per personalizzare la configurazione del cluster, è possibile:
spec.paths
.
ytt
esistenti.
ytt
.File da non modificare
VMware sconsiglia la modifica dei seguenti file in ~/.config/tanzu/tkg/providers
, ad eccezione di quanto indicato:
File base-template.yaml
nelle directory ytt
ytt
per impostare i valori del file overlay.yaml
nella stessa directory ytt
.~/.config/tanzu/tkg/providers/config_default.yaml
- Solo aggiunta
User Customizations
alla fine.--file
di tanzu cluster create
.~/.config/tanzu/tkg/providers/config.yaml
tanzu
utilizza questo file come riferimento per tutti i provider presenti nella directory /providers
e nelle relative versioni predefinite.Quando la CLI di Tanzu crea un cluster del carico di lavoro basato su TKC, combina valori di configurazione provenienti da più origini. Se tali origini sono in conflitto, risolve i conflitti nell'ordine di precedenza decrescente seguente:
Livelli di elaborazione, in ordine di precedenza decrescente | Origine | Esempi |
---|---|---|
1. Variabili di configurazione del cluster impostate nell'ambiente locale | Impostate nella shell. | export WORKER_VM_CLASS=best-effort-large |
2. Variabili di configurazione del cluster impostate nella CLI di Tanzu, con tanzu config set env. |
Impostate nella shell; salvate nel file di configurazione globale della CLI di Tanzu, ~/.config/tanzu/config.yaml . |
tanzu config set env.WORKER_VM_CLASS best-effort-large |
3. Variabili di configurazione del cluster impostate nel file di configurazione del cluster | Impostate nel file passato all'opzione --file di tanzu cluster create . Il file predefinito è ~/.config/tanzu/tkg/cluster-config.yaml . |
WORKER_VM_CLASS: best-effort-large |
4. Valori di configurazione predefiniti | Impostati in providers/config_default.yaml , ma alcuni campi sono elencati senza valori predefiniti. Non modificare questo file. |
WORKER_VM_CLASS: |