Cette rubrique décrit les différents types de clusters de charge de travail créés par Tanzu Kubernetes Grid (TKG) et la manière dont ils sont configurés et créés.
Tanzu Kubernetes Grid héberge trois types différents de clusters de charge de travail :
Cluster
.spec.topology
.
spec.topology.class
.
ClusterClass
.class
par défaut est tanzukubernetescluster
.class
est tkg-INFRASTRUCTURE-default-VERSION
, par exemple, tkg-vsphere-default-v1.0.0
.TanzuKubernetesCluster
.Cluster
.Notez que les clusters basés sur une classe avec class: tanzukubernetescluster
, tous en minuscules, sont différents des clusters basés sur TKC, qui ont le type d'objet TanzuKubernetesCluster
.
Les clusters basés sur une classe sont conçus pour remplacer les deux autres types de clusters, en présentant la même API aux deux types de cluster de gestion : Superviseurs et clusters de gestion autonomes.
ImportantTanzu Kubernetes Grid v2.4.x est la dernière version de TKG qui prend en charge la création de clusters de charge de travail TKG sur AWS et Azure. La possibilité de créer des clusters de charge de travail TKG sur AWS et Azure sera supprimée dans la version v2.5 de Tanzu Kubernetes Grid. Pour plus d'informations, reportez-vous à la section Obsolescence des clusters de gestion et de charge de travail TKG sur AWS et Azure des Notes de mise à jour de VMware Tanzu Kubernetes Grid v2.4.
Pour créer et gérer des clusters de charge de travail, les clusters de gestion exécutent le logiciel d'API de cluster :
Le tableau suivant mappe les types de clusters de gestion et de charge de travail aux fournisseurs d'API de cluster qu'ils utilisent :
TKG avec… | utilise le fournisseur d'API de cluster… | sur… | pour créer et gérer des clusters de charge de travail de type… | dans les versions de produit… |
---|---|---|---|---|
Superviseur | CAPW (propriétaire) | vSphere | Objets Cluster basés sur une classe |
TKG 2.x et vSphere with Tanzu 8 |
Objets TanzuKubernetesCluster |
vSphere with Tanzu 7 et 8 | |||
Cluster de gestion autonome | CAPA (OSS) | AWS | Objets Cluster basés sur une classe |
TKG v2.x |
Objets AWSCluster basés sur un plan |
TKG v2.x et v1.x | |||
CAPZ (OSS) | Azure | Objets Cluster basés sur une classe |
TKG v2.x | |
Objets AzureCluster basés sur un plan |
TKG v2.x et v1.x | |||
CAPV (OSS) | vSphere | Objets Cluster basés sur une classe |
TKG v2.x | |
Objets VSphereCluster basés sur un plan |
TKG v2.x et v1.x |
Les différentes versions de la CLI Tanzu fournies avec différentes versions de Tanzu Kubernetes Grid permettent de créer différents types de clusters selon que vous utilisez le superviseur sur vSphere 8, un cluster superviseur sur vSphere 7 ou un cluster de gestion autonome sur vSphere 6.7, 7 et 8 sans superviseur, sur AWS, ou sur Azure.
Version de CLI | Version de TKG | Créer des clusters basés sur une classe avec… | Créer des clusters basés sur un plan avec… | Créer TanzuKubernetesClusters avec… |
||||||
---|---|---|---|---|---|---|---|---|---|---|
Cluster de gestion autonome | Superviseur sur vSphere 8 | Cluster superviseur sur vSphere 7 | Cluster de gestion autonome | Superviseur sur vSphere 8 | Cluster superviseur sur vSphere 7 | Cluster de gestion autonome | Superviseur sur vSphere 8 | Cluster superviseur sur 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 | ✓ |
* Pour obtenir la liste des versions de CLI compatibles avec Tanzu Kubernetes Grid v2.4, reportez-vous à la Matrice d'interopérabilité des produits.
Les clusters basés sur une classe présentent la hiérarchie de haut niveau suivante des types d'objets. Les objets sous-jacents KubeAdmControlPlane
et MachineDeployment
ont les mêmes types, mais sont généralement des objets différents :
Cluster
: nombre et type de nœuds de plan de contrôle et worker définis par le bloc topology
dans la spécification
KubeAdmControlPlane
: définit les nœuds de plan de contrôle (control plane)
vSphereMachine
, AWSMachine
ou DockerMachine
Machine
: objet générique pour la machine virtuelle de nœudKubeAdmConfig
: configuration de Kubernetes, notamment la version de Kubernetes, le référentiel d'images, les hooks antérieurs et postérieurs au déploiement, etc.MachineDeployment
: définit les nœuds worker
Machine
KubeAdmConfig
Pour plus d'informations, reportez-vous à la page CustomResourceDefinitions relationships du site The Cluster API Book.
En fonction de votre environnement installé, vous pouvez créer des clusters de charge de travail Tanzu Kubernetes Grid de plusieurs manières : avec la CLI Tanzu, Tanzu Mission Control et kubectl
.
Le diagramme suivant décrit comment les utilisateurs peuvent créer différents types de clusters de charge de travail sur différentes infrastructures :
Utilisation du… | pour créer un… | récupère les valeurs de configuration à partir de… | et les modèles de configuration à partir de… | Instructions |
---|---|---|---|---|
CLI Tanzu :tanzu cluster create |
Cluster de charge de travail basé sur une classe (vSphere) | Cluster et spécifications d'objets sous-jacents |
Utilisateur (par exemple, classycluster.yaml) | Créer un cluster basé sur une classe |
TanzuKubernetesCluster , cluster de charge de travail (vSphere) |
Fichier de configuration de cluster, environnement local, superpositions (avancé) ytt |
infrastructure-tkg-service-vsphere * |
(Hérité) Créer un cluster basé sur un plan ou un cluster TKC | |
Cluster de charge de travail basé sur le plan (vSphere, AWS, Azure) | infrastructure-vsphere , infrastructure-aws , infrastructure-azure * |
|||
Tanzu Mission Control (TMC) | TanzuKubernetesCluster ou cluster de charge de travail basé sur un plan |
Interface utilisateur TMC | Cluster de gestion enregistré | Provisionnement de clusters de charge de travail |
kubectl apply |
Clusters de charge de travail basés sur une classe ou TanzuKubernetesCluster (vSphere) |
Cluster et spécifications d'objets sous-jacents |
Utilisateur (par exemple, classycluster.yaml, tkc.yaml) | Création de clusters de charge de travail de manière déclarative |
*Répertoires locaux sous .config/tanzu/tkg/providers/
Lorsque la CLI Tanzu crée un cluster de charge de travail basé sur TKC, elle combine les valeurs de configuration des éléments suivants :
~/.config/tanzu/tkg/cluster-config.yaml
ou un autre fichier transmis à l'option --file
de l'interface de ligne de commande~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
, comme décrit dans la section Fichiers de configuration de plan ci-dessous.~/.config/tanzu/tkg/providers
L'entrée en direct applique des valeurs de configuration qui sont uniques à chaque appel. Les variables d'environnement les transmettent sur une session de terminal, et les fichiers de configuration et les superpositions les appliquent indéfiniment. Vous pouvez personnaliser les clusters à l'aide de l'une de ces sources, avec des recommandations et des mises en garde décrites ci-dessous.
Reportez-vous à la section Priorité des valeurs de configuration pour savoir comment la CLI tanzu
dérive des valeurs de configuration de cluster spécifiques à partir de ces sources multiples où elles peuvent être en conflit.
Le répertoire ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
contient des fichiers de configuration du plan de cluster de charge de travail TKC nommés cluster-template-definition-PLAN.yaml
. Les valeurs de configuration de chaque plan proviennent de ces fichiers et des fichiers qu'ils répertorient sous spec.paths
:
tanzu
spec.paths
Pour personnaliser des plans de cluster via YAML, modifiez les fichiers sous ~/.config/tanzu/tkg/providers/infrastructure-tkg-service-vsphere
. Vous devez cependant éviter de modifier d'autres fichiers.
Fichiers à modifier
Les chemins d'accès au fichier de configuration du plan de cluster de charge de travail suivent le format ~/.config/tanzu/tkg/providers/infrastructure-infrastructure-tkg-service-vsphere/VERSION/cluster-template-definition-PLAN.yaml
, où :
VERSION
est la version du module de fournisseur d'API de cluster que la configuration utilise.PLAN
est dev
, prod
ou un plan personnalisé.Chaque fichier de configuration de plan comporte une section spec.paths
qui répertorie les fichiers sources et les répertoires ytt
qui configurent le plan de cluster. Par exemple :
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
Ces fichiers sont traités dans l’ordre indiqué. Si le même champ de configuration est défini dans plusieurs fichiers, le dernier paramètre traité est celui que la CLI tanzu
utilise.
Pour personnaliser la configuration de votre cluster, vous pouvez :
spec.paths
.
ytt
existants.
ytt
.Fichiers à ne pas modifier
VMware déconseille de modifier les fichiers suivants sous ~/.config/tanzu/tkg/providers
, à l'exception des instructions suivantes :
Fichiers base-template.yaml
, dans les répertoires ytt
ytt
pour définir des valeurs dans le fichier overlay.yaml
du même répertoire ytt
.~/.config/tanzu/tkg/providers/config_default.yaml
- Ajouter uniquement
User Customizations
à la fin.--file
de tanzu cluster create
.~/.config/tanzu/tkg/providers/config.yaml
tanzu
utilise ce fichier comme référence pour tous les fournisseurs présents dans le répertoire /providers
et leurs versions par défaut.Lorsque la CLI Tanzu crée un cluster de charge de travail basé sur TKC, elle combine des valeurs de configuration provenant de sources multiples. Si ces sources sont en conflit, elle résout les conflits dans l'ordre de priorité décroissant suivant :
Traitement des couches, classé par priorité décroissante | Source | Exemples |
---|---|---|
1. Variables de configuration de cluster définies dans votre environnement local | Définies dans le shell. | export WORKER_VM_CLASS=best-effort-large |
2. Variables de configuration de cluster définies dans la CLI Tanzu, avec tanzu config set env. |
Définies dans le shell ; enregistrées dans le fichier de configuration de la CLI Tanzu, ~/.config/tanzu/config.yaml . |
tanzu config set env.WORKER_VM_CLASS best-effort-large |
3. Variables de configuration de cluster définies dans le fichier de configuration du cluster | Définies dans le fichier transmis à l'option --file de tanzu cluster create . Le fichier est défini par défaut sur ~/.config/tanzu/tkg/cluster-config.yaml . |
WORKER_VM_CLASS: best-effort-large |
4. Valeurs de configuration par défaut d'usine | Définies dans providers/config_default.yaml , mais certains champs sont répertoriés sans valeurs par défaut. Ne modifiez pas ce fichier. |
WORKER_VM_CLASS: |