Cette rubrique explique comment configurer des clusters de charge de travail Tanzu Kubernetes Grid (TKG) à l'aide d'un fichier de configuration plat ou d'une spécification d'objet de style Kubernetes. Pour obtenir des informations spécifiques à IaaS, reportez-vous aux sections :
La configuration d'un cluster de charge de travail dépend du type de cluster, comme décrit dans les sections ci-dessous.
Les clusters basés sur une classe (type par défaut) utilisent une spécification d'objet de style Kubernetes pour l'objet Cluster
. Pour créer un cluster basé sur une classe, transmettez cette spécification d'objet ou un fichier de configuration de cluster avec une structure plate qui définit des variables en majuscules et avec trait de soulignement, telles que CLUSTER_NAME
, à tanzu cluster create
.
ClusterBootstrap
et les objets auxquels il fait référence.Les clusters TKC basés sur un plan (types hérités) utilisent un fichier de configuration de cluster avec une structure plate qui définit les variables en majuscules et avec trait de soulignement, telles que CLUSTER_NAME
. Pour créer un cluster hérité, transmettez ce fichier de configuration à tanzu cluster create
.
Pour plus d'informations sur les types de clusters ci-dessus et les fournisseurs d'API de cluster qu'ils utilisent, reportez-vous aux sections suivantes :
kubectl
.Pour plus d'informations sur le fichier de configuration à choisir pour votre cluster de charge de travail, reportez-vous au tableau ci-dessous.
Vous pouvez utiliser un … avec la CLI Tanzu | pour créer des clusters de charge de travail de type… | sur l'infrastructure… |
---|---|---|
Fichier de configuration de cluster plat |
|
|
Spécification d'objet de style Kubernetes | Clusters basés sur une classe | vSphere 8 avec superviseur ; vSphere 6.7, 7 et 8 avec un cluster de gestion autonome, AWS et Azure |
Vous pouvez utiliser un fichier de configuration de cluster pour configurer les types de clusters suivants :
Clusters basés sur une classe : Cela inclut les déploiements pour :
Si vous souhaitez déployer une charge de travail basée sur une classe sur vSphere 8 avec superviseur, vous devez la déployer à partir d'une spécification d'objet, comme décrit dans la section Configurer un cluster basé sur une classe déployé par le superviseur (vSphere 8 uniquement).
(Hérité) Clusters basés sur un plan et TKC : Cela inclut les déploiements pour :
Avant de déployer un cluster de charge de travail sur vSphere, AWS ou Azure, créez un fichier de configuration pour le cluster. Lorsque vous transmettez ce fichier à l'option --file
de tanzu cluster create
, la CLI Tanzu utilise les informations de configuration définies dans le fichier pour se connecter à votre plate-forme cible et créer les ressources que le cluster utilisera.
Pour créer un fichier de configuration de cluster, vous pouvez copier un fichier de configuration existant d'un déploiement précédent et le mettre à jour. Vous pouvez également créer un tout nouveau fichier en utilisant un modèle vide :
Pour définir les informations de configuration pertinentes pour votre infrastructure, reportez-vous aux sections suivantes :
Pour obtenir la liste complète des options que vous pouvez spécifier dans le fichier de configuration de cluster, reportez-vous à la section Référence de variable de fichier de configuration.
Lorsque vous déployez un cluster de charge de travail, la plus grande partie de la configuration du cluster est identique à la configuration du cluster de gestion autonome que vous utilisez pour le déployer. Pour cette raison, la façon la plus simple de créer un fichier de configuration pour un cluster de charge de travail consiste à commencer par une copie du fichier de configuration du cluster de gestion autonome.
Localisez le fichier de configuration YAML pour le cluster de gestion :
--file
lorsque vous avez exécuté tanzu mc create --ui
, le fichier de configuration est enregistré dans ~/.config/tanzu/tkg/clusterconfigs/
. Le fichier a un nom généré de manière aléatoire, par exemple, bm8xk9bv1v.yaml
.--file
, la configuration du cluster de gestion est extraite du fichier que vous avez spécifié.--file
ou de l'emplacement par défaut, ~/.config/tanzu/tkg/cluster-config.yaml
.Effectuez une copie du fichier de configuration du cluster de gestion et enregistrez-le avec un nouveau nom. Par exemple, enregistrez le fichier sous my-aws-cluster.yaml
, my-azure-cluster.yaml
ou my-vsphere-cluster.yaml
.
Mettez à jour les paramètres dans le fichier de configuration du cluster. Si vous souhaitez configurer un cluster de charge de travail pour utiliser un système d'exploitation autre que Ubuntu 20.04 par défaut, vous devez définir les valeurs OS_NAME
et OS_VERSION
. L'interface du programme d'installation n'inclut pas les valeurs de système d'exploitation de machine virtuelle du nœud dans les fichiers de configuration du cluster de gestion qu'elle enregistre dans ~/.config/tanzu/tkg/clusterconfigs
.
Enregistrez le fichier.
Pour préparer un fichier de configuration de cluster pour un cluster TKC sur vSphere 8 avec superviseur, reportez-vous à la section Configurer un cluster TKC déployé par superviseur (hérité).
Vous pouvez utiliser un fichier de spécifications d'objet de style Kubernetes pour déployer un cluster de charge de travail basé sur une classe dans :
Un fichier de spécification d'objet a le même objectif qu'un fichier de configuration de cluster. Lorsque vous transmettez une spécification d'objet à l'option --file
de tanzu cluster create
, la CLI Tanzu crée le cluster à l'aide des informations de configuration définies dans la spécification d'objet.
Comme pour les autres objets Kubernetes, vous pouvez configurer un cluster de charge de travail basé sur une classe en créant et en modifiant des spécifications d'objet. Pour les objets de cluster, il s'agit des spécifications suivantes :
Cluster
: Configure la plupart des options de cluster, telles que la topologie de cluster. Vous pouvez modifier et réapplicer cette spécification d'objet afin de modifier la configuration d'un cluster en cours d'exécution.ClusterBootstrap
: configure des options non définies par défaut qui sont appliquées uniquement lors de la première création du cluster, telles que l'interface réseau de conteneur (CNI) et l'interface de stockage de conteneur (CSI), et qui ne peuvent pas être reconfigurées dans un cluster en cours d'exécution. Pour plus d'informations, reportez-vous à la section Configurer les paramètres de l'infrastructure à usage unique.Pour créer votre premier fichier de spécification d'objet :
Si vous déployez un cluster de charge de travail basé sur une classe pour vSphere sans superviseur, AWS ou Azure, vous pouvez utiliser la CLI Tanzu pour convertir un fichier de configuration de cluster en fichier de spécification d'objet sans déployer le cluster :
(Configuration globale) Utilisez la fonctionnalité auto-apply-generated-clusterclass-based-configuration
de la CLI Tanzu. Cette fonctionnalité est définie sur false
par défaut. Lorsque auto-apply-generated-clusterclass-based-configuration
est défini sur false
et que vous exécutez tanzu cluster create
avec l'indicateur --file
, la commande convertit votre fichier de configuration de cluster en fichier de spécification d'objet et se ferme sans créer le cluster. Après avoir examiné la configuration, vous réexécutez tanzu cluster create
avec le fichier de spécification d'objet généré par la CLI Tanzu, comme décrit dans la section Créer un cluster basé sur une classe à partir de la spécification d'objet. Si vous avez mis à jour la configuration par défaut, pour la rétablir à false
, exécutez :
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
(Cluster unique) Transmettez l'option --dry-run
pour tanzu cluster create
et enregistrez la sortie dans un fichier. Utilisez les mêmes options et le même --file
de configuration que vous utiliseriez pour créer le cluster. Par exemple :
tanzu cluster create my-cluster --file my-cluster-config.yaml --dry-run > my-cluster-spec.yaml
Vous pouvez utiliser cette spécification d'objet pour déployer un cluster, comme décrit dans la section Créer un cluster basé sur une classe à partir d'une spécification d'objet.
Si vous déployez un cluster de charge de travail basé sur une classe sur vSphere 8 avec superviseur, créez ou adaptez une spécification d'objet Cluster
, comme décrit dans la section Configuration d'un cluster basé sur une classe déployé par un superviseur (vSphere 8 uniquement). La documentation de vSphere 8 contient des exemples de spécifications d'objets Cluster
à utiliser, par exemple Exemple v1beta1 : cluster par défaut.
Vous pouvez configurer les paramètres de cluster les plus courants dans la spécification d'objet Cluster
, mais certains composants du cluster proviennent de la version de Tanzu Kubernetes (TKR, Tanzu Kubernetes Release) sur laquelle les nœuds du cluster sont basés. Par exemple, la TKR spécifie les versions de CNI, CSI et Pinniped qu'un cluster utilise.
Ces options au niveau de l'infrastructure sont appliquées lors de la création du cluster par l'objet ClusterBootstrap
et ne peuvent pas être modifiées dans un cluster en cours d'exécution. La procédure générale de configuration de ces options avant de créer un cluster est la suivante :
Créez des spécifications d'objet pour l'objet ClusterBootstrap
et tous les objets personnalisés auxquels il fait référence, par exemple un objet CalicoConfig
.
Créez une spécification d'objet pour l'objet Cluster
lui-même.
Dans les metadata
pour toutes les spécifications d'objets, incluez le nom et l'espace de noms du cluster que vous créez, par exemple :
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: ClusterBootstrap
metadata:
name: MY-CLUSTER
namespace: MY-NAMESPACE
La personnalisation peut nécessiter des métadonnées supplémentaires, telles que des annotations.
Concaténez toutes les spécifications d'objets, y compris la définition Cluster
, en un seul fichier. Séparez les spécifications par des lignes composées de trois tirets (---
).
Transmettez la spécification d'objet à l'option --file
de kubectl apply
, par exemple :
kubectl config use-context CONTEXT-NAME
kubectl apply -f my-custom-cluster-objects.yaml
Autre méthode : Au lieu de suivre les deux dernières étapes, vous pouvez exécuter kubectl apply -f
sur toutes les spécifications d'objets, à l'exception de l'objet Cluster
, puis exécuter tanzu cluster create --file
avec la spécification d'objet Cluster
.
Pour obtenir un exemple spécifique de cette procédure, reportez-vous à la section Créer un cluster avec un CNI non défini par défaut, qui définit le CNI d'un cluster sur Calico.
kubectl
et kubeconfig
Tanzu Kubernetes Grid ne définit pas automatiquement le contexte kubectl
sur un cluster de charge de travail lorsque vous le créez. Vous devez définir manuellement le contexte kubectl
sur un cluster de charge de travail à l'aide de la commande kubectl config use-context
.
Par défaut, sauf si vous spécifiez l'option KUBECONFIG
pour enregistrer kubeconfig
pour un cluster dans un fichier spécifique, tous les clusters de charge de travail que vous déployez sont ajoutés à un fichier partagé .kube/config
. Si vous supprimez le fichier .kube/config
partagé et que vous disposez toujours du fichier .kube-tkg/config
pour le cluster de gestion, vous pouvez récupérer le fichier .kube/config
des clusters de charge de travail à l'aide de la commande tanzu cluster kubeconfig get CLUSTER-NAME
.
Ne modifiez pas le contexte ou les fichiers .kube-tkg/config
ou .kube/config
lorsque des opérations Tanzu Kubernetes Grid sont en cours d'exécution.
Passez à la rubrique de configuration du cluster pour votre infrastructure :