Cluster del carico di lavoro

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.

Tipi di cluster del carico di lavoro: basato sulla classe, TKC e basato sul piano

In Tanzu Kubernetes Grid sono disponibili tre tipi diversi di cluster del carico di lavoro:

  • Cluster basati sulla classe
    • Si tratta di oggetti Kubernetes di tipo Cluster
    • Sono nuovi tipi di cluster introdotti in vSphere with Tanzu 8 e TKG 2.x
    • La loro topologia di base è definita in un blocco spec.topology
      • Ad esempio, numero e tipo di nodi worker e del piano di controllo
    • Ereditano la configurazione dal valore di spec.topology.class
      • Si riferisce a un oggetto ClusterClass
      • Nel supervisore, l'elemento class predefinito è tanzukubernetescluster
      • In un cluster di gestione autonomo, l'elemento class predefinito è tkg-INFRASTRUCTURE-default-VERSION, ad esempio tkg-vsphere-default-v1.0.0.
    • Possono essere creati utilizzando il supervisore in vSphere with Tanzu 8 oppure utilizzando un cluster di gestione TKG v2.x autonomo in vSphere 6.7, 7 e 8 senza supervisore, in AWS o in Azure
  • Cluster basati su TKC (legacy)
    • Si tratta di oggetti Kubernetes di tipo TanzuKubernetesCluster
    • Possono essere creati utilizzando un cluster supervisore in vSphere 7 o dal supervisore in vSphere 8 per garantire la compatibilità con le versioni legacy
  • Cluster basati sul piano (legacy)
    • Si tratta di oggetti Kubernetes di tipo Cluster
    • Possono essere creati utilizzando un cluster di gestione TKG v2.x o v1.x autonomo in vSphere 6.7, 7 e 8 senza supervisore, in AWS o in Azure

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.

Importante

Tanzu 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.

Tipi di cluster e Cluster API

Per creare e gestire cluster del carico di lavoro, i cluster di gestione eseguono il software Cluster API:

  • Cluster API: software Kubernetes open source per la creazione e la gestione di cluster Kubernetes.
  • Cluster API Provider: software che viene eseguito in infrastrutture cloud o fisiche specifiche come un'interfaccia per il supporto di Cluster API.
    • La maggior parte dei progetti del software Cluster API Provider è open source, ma alcuni sono proprietari.

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

Tipi di cluster e compatibilità con la CLI di Tanzu

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.

Sottocomponenti di oggetti del cluster del carico di lavoro

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
      • Oggetto macchina specifico di IaaS, ad esempio vSphereMachine, AWSMachine DockerMachine
      • Machine: oggetto generico per la macchina virtuale del nodo
      • KubeAdmConfig: 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
      • Oggetto macchina specifico di IaaS
      • Machine
      • KubeAdmConfig

Per ulteriori informazioni, vedere CustomResourceDefinitions relationships in The Cluster API Book.

Modalità di creazione dei cluster del carico di lavoro

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/

Informazioni sulla configurazione di cluster legacy basati su TKC o su un piano

Quando la CLI di Tanzu crea un cluster del carico di lavoro basato su TKC, combina i valori di configurazione degli elementi seguenti:

  • Input in tempo reale alla chiamata
    • Input della CLI
  • Variabili di ambiente
  • ~/.config/tanzu/tkg/cluster-config.yaml o un altro file passato all'opzione --file della CLI
  • File di configurazione YAML del piano del cluster in ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere, come descritto in File di configurazione del piano di seguito.
  • Altri file di configurazione YAML che non appartengono al piano in ~/.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.

File di configurazione del piano

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:

  • File di configurazione forniti con la CLI di tanzu
  • File personalizzati che gli utenti creano e aggiungono all'elenco spec.paths
  • Overlay ytt che gli utenti creano o modificano per sovrascrivere i valori negli altri file di configurazione

File da modificare e file da non modificare

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:

  • Creare nuovi file di configurazione e aggiungerli all'elenco spec.paths.
    • Questo è il metodo più semplice.
  • Modificare i file overlay ytt esistenti.
    • Questo è il metodo più potente per gli utenti che hanno familiarità con 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

    • Questi file di configurazione utilizzano i valori del repository di Cluster API Provider in SIG Kubernetes e in altri progetti open source upstream ed è consigliabile non modificarli.
    • Creare invece nuovi file di configurazione o vedere Cluster e piani di cluster in Configurazione di TKC avanzata con ytt per impostare i valori del file overlay.yaml nella stessa directory ytt.
  • ~/.config/tanzu/tkg/providers/config_default.yaml - Solo aggiunta

    • Questo file contiene i valori predefiniti a livello di sistema per Tanzu Kubernetes Grid.
    • Non modificare i valori esistenti in questo file, ma è possibile aggiungere una sezione User Customizations alla fine.
    • Anziché modificare i valori in questo file, personalizzare le configurazioni del cluster nei file che vengono passati all'opzione --file di tanzu cluster create.
  • ~/.config/tanzu/tkg/providers/config.yaml

    • La CLI di tanzu utilizza questo file come riferimento per tutti i provider presenti nella directory /providers e nelle relative versioni predefinite.

Precedenza dei valori della configurazione

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:
check-circle-line exclamation-circle-line close-line
Scroll to top icon