Cette rubrique explique comment créer des clusters de charge de travail avec la CLI Tanzu.
Les procédures ci-dessous expliquent comment déployer un cluster de charge de travail à partir d’un fichier de configuration de cluster. À partir d’un fichier de configuration de cluster, vous pouvez créer les types de clusters suivants :
Clusters basés sur une classe : Suivez les étapes décrites dans la section Créer un cluster basé sur une classe ci-dessous si vous déployez votre cluster de charge de travail sur :
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 un superviseur. Pour plus d'informations sur les fichiers de configuration de cluster et les spécifications d'objet, reportez-vous à la section Fichiers de configuration.
(Hérité) Clusters basés sur un plan et TKC : Suivez les étapes décrites dans la section (Hérité) Créer un cluster basé sur un plan ou un cluster TKC ci-dessous.
Pour plus d'informations sur ces types de clusters, reportez-vous à la section Types de clusters de charge de travail dans À propos de Tanzu Kubernetes Grid.
La procédure ci-dessous explique comment déployer un cluster de charge de travail basé sur une classe à partir d'un fichier de configuration de cluster. Le cluster résultant est représenté par un objet Cluster
dans Kubernetes.
ImportantVMware recommande d’utiliser et de conserver un fichier de configuration dédié pour chaque cluster que vous déployez.
Localisez le fichier de configuration que vous avez préparé dans le cadre des conditions préalables ci-dessus.
Créez le cluster. Vous pouvez créer un cluster en une ou deux étapes selon que vous souhaitez examiner ou modifier sa spécification d'objet avant la création de l'objet :
--file
de tanzu cluster create
, la commande l'applique alors automatiquement.--file
de tanzu cluster create
, puis la commande convertit le fichier en spécification d'objet Cluster
et se ferme sans créer le cluster. Après avoir examiné ou modifié la spécification, créez le cluster en exécutant à nouveau tanzu cluster create
.RemarqueDans TKG v2.3.1 sur AWS et Azure, pour créer un cluster à partir d'une spécification d'objet, vous devez utiliser le processus en une étape ou ignorer explicitement la validation de la zone de disponibilité comme décrit dans la section Sur AWS et Azure, la création d'un cluster de charge de travail avec une spécification d'objet échoue avec une erreur de zone/région dans les Notes de mise à jour de VMware Tanzu Kubernetes Grid v2.3.
Si ce n'est pas déjà fait, définissez auto-apply-generated-clusterclass-based-configuration
sur true
. Cette opération configure la CLI Tanzu de manière à toujours créer des clusters basés sur une classe avec le processus en une seule étape. Pour plus d'informations sur auto-apply-generated-clusterclass-based-configuration
, reportez-vous à la section Fonctionnalités dans Architecture et configuration de la CLI Tanzu.
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration true
Exécutez tanzu cluster create
, en spécifiant le chemin d'accès au fichier de configuration du cluster dans l'option the --file
. Par exemple, si vous avez enregistré le fichier de configuration my-workload-cluster.yaml
dans le dossier par défaut clusterconfigs
, exécutez la commande suivante pour créer un cluster avec un nom que vous avez spécifié dans le fichier de configuration :
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Si vous n'avez pas spécifié de nom dans le fichier de configuration ou si vous souhaitez créer un cluster avec un nom différent de celui que vous avez spécifié, indiquez le nom du cluster dans la commande tanzu cluster create
. Par exemple, pour créer un cluster nommé another-workload-cluster
à partir du fichier de configuration my-workload-cluster.yaml
, exécutez la commande suivante :
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Définissez la fonctionnalité auto-apply-generated-clusterclass-based-configuration
sur false
si ce n'est pas déjà fait. Cette opération configure la CLI Tanzu de manière à toujours créer des clusters basés sur une classe avec le processus en deux étapes. false
est le paramètre par défaut. Si vous avez modifié le paramètre par défaut, exécutez la commande suivante pour le rétablir sur false
:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
Pour plus d'informations sur auto-apply-generated-clusterclass-based-configuration
, reportez-vous à la section Fonctionnalités dans Architecture et configuration de la CLI Tanzu.
Pour générer la spécification d'objet, exécutez tanzu cluster create
en spécifiant le chemin d'accès au fichier de configuration du cluster dans l'option --file
. La commande enregistre la spécification d'objet résultante dans le dossier ~/.config/tanzu/tkg/clusterconfigs
, imprime son emplacement, puis se ferme.
Par exemple, si vous avez enregistré le fichier de configuration du cluster my-workload-cluster.yaml
dans le dossier clusterconfigs
, exécutez la commande suivante pour générer la spécification d'objet :
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Si vous n'avez pas spécifié de nom pour votre cluster dans le fichier de configuration ou si vous souhaitez créer un cluster avec un nom différent de celui que vous avez spécifié, indiquez le nom du cluster dans la commande tanzu cluster create
. Par exemple :
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Examinez ou modifiez le fichier de spécification d'objet généré par tanzu cluster create
.
Réexécutez tanzu cluster create
en spécifiant le chemin d'accès à la spécification d'objet dans l'option --file
. Par exemple :
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml
Incluez tous les mêmes indicateurs que ceux que vous avez utilisés dans la première étape, y compris l'indicateur --tkr
si vous créez un cluster qui exécute une version de Kubernetes différente de celle du cluster de gestion. Par exemple :
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster-spec.yaml -v 6 --tkr v1.24.17---vmware.1-tkg.2
Pour générer la spécification d'objet, exécutez tanzu cluster create
avec l'option --dry-run
. L'option --dry-run
remplace le paramètre auto-apply-generated-clusterclass-based-configuration
.
tanzu cluster create CLUSTER-NAME --dry-run --file PATH-TO-CLUSTER-CONFIG-FILE.yaml > PATH-TO-OBJECT-SPEC-FILE.yaml
Où :
CLUSTER-NAME
est le nom du cluster. Vous pouvez omettre CLUSTER-NAME
si vous l'avez spécifié dans le fichier de configuration du cluster.PATH-TO-CLUSTER-CONFIG-FILE
est le chemin d'accès au fichier de configuration du cluster que vous avez localisé à l'étape 1.PATH-TO-OBJECT-SPEC-FILE
est l'emplacement dans lequel vous souhaitez enregistrer le fichier de spécification d'objet résultant.Par exemple, pour enregistrer la spécification d'objet résultante dans un fichier nommé my-workload-cluster-spec.yaml
, exécutez la commande suivante :
tanzu cluster create my-cluster --dry-run --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml > my-workload-cluster-spec.yaml
Examinez ou modifiez le fichier de spécification d'objet généré par l'option --dry-run
à l'étape précédente. Dans l'exemple ci-dessus, le nom du fichier de spécification est my-workload-cluster-spec.yaml
.
Après avoir examiné ou modifié votre fichier de spécification d'objet, réexécutez tanzu cluster create
sans l'option --dry-run
. Dans l'option --file
, spécifiez le chemin d'accès au fichier de spécification d'objet. Par exemple :
tanzu cluster create my-cluster --file my-workload-cluster-spec.yaml
Incluez tous les mêmes indicateurs que ceux que vous avez utilisés dans la première étape, y compris l'indicateur --tkr
si vous créez un cluster qui exécute une version de Kubernetes différente de celle du cluster de gestion. Par exemple :
tanzu cluster create --file my-workload-cluster-spec.yaml -v 6 --tkr v1.24.17---vmware.1-tkg.2
RemarqueLors de la création de clusters basés sur une classe, la CLI Tanzu n'utilise pas les personnalisations
ytt
décrites dans la section Configuration de cluster hérité avec ytt. Si la CLI les détecte sur votre machine, elle génère une erreurIt seems like you have done some customizations to the template overlays.
Une fois le cluster créé, exécutez la commande tanzu cluster get
pour afficher les informations sur le cluster :
tanzu cluster get CLUSTER-NAME
La sortie répertorie des informations sur l'état du plan de contrôle et des nœuds worker, la version de Kubernetes que le cluster exécute et les noms des nœuds.
La procédure ci-dessous explique comment déployer un cluster basé sur un plan ou TKC à partir d'un fichier de configuration :
AWSCluster
, AzureCluster
ou VSphereCluster
dans Kubernetes, en fonction de la plate-forme d'infrastructure que vous ciblez.TanzuKubernetesCluster
dans Kubernetes.Pour créer le cluster :
Définissez la fonctionnalité allow-legacy-cluster
sur true
dans la CLI Tanzu :
tanzu config set features.cluster.allow-legacy-cluster true
Créez le cluster :
Exécutez la commande tanzu cluster create
, en spécifiant le chemin d'accès au fichier de configuration dans l'option --file
. Par exemple, si vous avez enregistré le fichier de configuration de la charge de travail my-workload-cluster.yaml
dans le dossier par défaut clusterconfigs
, exécutez la commande suivante pour créer un cluster avec un nom que vous avez spécifié dans le fichier de configuration :
tanzu cluster create --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Si vous n'avez pas spécifié de nom dans le fichier de configuration ou si vous souhaitez créer un cluster avec un nom différent de celui que vous avez spécifié, indiquez le nom du cluster dans la commande tanzu cluster create
. Par exemple, pour créer un cluster nommé another-workload-cluster
à partir du fichier de configuration my-workload-cluster.yaml
, exécutez la commande suivante :
tanzu cluster create another-workload-cluster --file ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
Une fois le cluster créé, exécutez la commande tanzu cluster get
pour afficher les informations sur le cluster :
tanzu cluster get CLUSTER-NAME
La sortie répertorie des informations sur l'état du plan de contrôle et des nœuds worker, la version de Kubernetes que le cluster exécute et les noms des nœuds.
Créez ou copiez un fichier de configuration pour le cluster de charge de travail, comme décrit dans la section Configurer un cluster TKC déployé par le superviseur (hérité).
Une fois que vous avez connecté la CLI Tanzu au superviseur, obtenez l'espace de noms vSphere cible :
tanzu namespaces get
Déterminez la version de Tanzu Kubernetes (TKR) pour le cluster :
Obtenez la liste des TKR disponibles dans le cluster superviseur :
tanzu kubernetes-release get
Dans la sortie de la commande, enregistrez la valeur souhaitée répertoriée sous NAME
, par exemple v1.26.8---vmware.2-tkg.1
. Les valeurs de tkr
NAME
et VERSION
sont identiques, excepté que la valeur +
est remplacée par ---
.
Déployez le cluster en exécutant tanzu cluster create
avec la valeur TKR-NAME
et le nom du fichier de configuration :
tanzu cluster create CLUSTER-NAME --file CONFIGURATION-FILE --tkr=TKR-NAME
Où :
CLUSTER-NAME
est n'importe quel nom que vous fournissez au cluster. Cette valeur de ligne de commande remplace tout paramètre CLUSTER_NAME
dans le fichier de configuration.CONFIGURATION-FILE
est le chemin d'accès local au fichier de configuration du cluster, par exemple ~/.config/tanzu/tkg/clusterconfigs/my-workload-cluster.yaml
.TKR-NAME
est le nom du TKR obtenu ci-dessus.Une fois le cluster créé, exécutez tanzu cluster get
pour voir l'état actuel du cluster :
tanzu cluster get CLUSTER-NAME
Configurez les adresses IP de ses nœuds et de son point de terminaison de plan de contrôle pour qu'elles soient statiques, comme décrit dans la section Configurer des réservations DHCP de nœuds et l'enregistrement DNS du point de terminaison (vSphere uniquement).
Les procédures ci-dessous expliquent comment créer un cluster de charge de travail basé sur une classe à l'aide d'une spécification d'objet de style Kubernetes :
RemarqueDans TKG v2.3.1 sur AWS et Azure, pour créer un cluster à partir d'une spécification d'objet, vous devez utiliser le processus en une étape ou ignorer explicitement la validation de la zone de disponibilité comme décrit dans la section Sur AWS et Azure, la création d'un cluster de charge de travail avec une spécification d'objet échoue avec une erreur de zone/région dans les Notes de mise à jour de VMware Tanzu Kubernetes Grid v2.3.
Pour créer un fichier de spécification d'objet Kubernetes pour un cluster de charge de travail basé sur une classe, suivez les étapes ci-dessous.
Si vous avez mis à jour la configuration par défaut de la fonctionnalité auto-apply-generated-clusterclass-based-configuration
, redéfinissez-la sur false
, puis exécutez tanzu cluster create
avec l'indicateur --file
. Pour définir auto-apply-generated-clusterclass-based-configuration
sur false
:
tanzu config set features.cluster.auto-apply-generated-clusterclass-based-configuration false
Lorsque cette fonctionnalité est définie 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, réexécutez tanzu cluster create
avec le fichier de spécification d'objet généré par la CLI Tanzu.
Pour créer un fichier de spécification pour un cluster unique, transmettez l'option --dry-run
à 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
L'option --dry-run
remplace le paramètre auto-apply-generated-clusterclass-based-configuration
.
Pour obtenir un exemple de fichier de spécification d'objet, reportez-vous à la section Exemple d'objet Cluster
et de ses objets subordonnés.
Cluster
, comme décrit dans la section
Configurer un cluster basé sur une classe déployé par un superviseur.
Cluster
à utiliser, par exemple Exemple v1beta1 : cluster par défaut.topology
du fichier de spécification.Cluster
lui-même, par exemple les paramètres d'interface de conteneur à usage unique dans l'infrastructure du cluster, reportez-vous à la section Configurer les paramètres de l'infrastructure à usage unique.Pour déployer un cluster de charge de travail basé sur une classe à partir d'une spécification d'objet, transmettez la spécification d'objet à l'option --file
de tanzu cluster create
, par exemple :
tanzu cluster create my-cluster --file my-cluster-spec.yaml
RemarqueLors de la création de clusters basés sur une classe, la CLI Tanzu n'utilise pas les personnalisations
ytt
décrites dans la section Configuration de cluster hérité avec ytt. Si la CLI les détecte sur votre machine, elle génère une erreurIt seems like you have done some customizations to the template overlays.
Pour les clusters de charge de travail gérés par un cluster de gestion créé avec tanzu management-cluster create
ou tanzu mc create
, plutôt qu'un cluster superviseur vSphere with Tanzu, le déploiement de Harbor ou d'autres services permet à l'ensemble de la charge de travail de partager une instance de service unique.
Chaque instance de Tanzu Kubernetes Grid ne peut disposer que d'un seul cluster de services partagés.
Le déploiement de Harbor sur un cluster de services partagés permet à tous les clusters de charge de travail gérés par le même cluster de gestion de partager une instance de Harbor unique. Pour obtenir des instructions sur le déploiement de Harbor, reportez-vous à la section Installer Harbor pour le registre de service.
Pour créer un cluster de services partagés :
Créez un fichier YAML de configuration pour le cluster. Nous vous recommandons d'utiliser le plan de cluster prod
plutôt que le plan dev
. Par exemple :
INFRASTRUCTURE_PROVIDER: vsphere
CLUSTER_NAME: YOUR-CLUSTER-NAME
CLUSTER_PLAN: prod
Où YOUR-CLUSTER-NAME
est le nom que vous choisissez pour le cluster. Par exemple, tkg-services
.
(vSphere uniquement) Si vous utilisez l'équilibrage de charge Kube-Vip par défaut pour l'API du plan de contrôle du cluster, vous devez spécifier son point de terminaison en définissant VSPHERE_CONTROL_PLANE_ENDPOINT
. Assurez-vous que cette adresse VIP ne se trouve pas dans la plage DHCP, mais qu'elle est dans le même sous-réseau que la plage DHCP. Si vous avez mappé un nom de domaine complet (FQDN) à l'adresse VIP, vous pouvez spécifier le nom de domaine complet au lieu de l'adresse VIP.
Si vous utilisez NSX Advanced Load Balancer (ALB), ne définissez pas VSPHERE_CONTROL_PLANE_ENDPOINT
, sauf si vous avez besoin que le point de terminaison du plan de contrôle soit une adresse spécifique. Si c'est le cas, utilisez une adresse statique dans la plage réseau VIP du profil IPAM de NSX ALB que vous avez ajoutée manuellement au pool d'adresses IP statiques ou un nom de domaine complet mappé à l'adresse statique.
Par exemple :
VSPHERE_CONTROL_PLANE_ENDPOINT: 10.10.10.10
Créez le cluster de services partagés, comme décrit dans Créer un cluster à partir d'un fichier de configuration ci-dessus.
Définissez le contexte de kubectl
sur le contexte de votre cluster de gestion. Par exemple :
kubectl config use-context mgmt-cluster-admin@mgmt-cluster
Dans cet exemple, mgmt-cluster
est le nom du cluster de gestion.
Ajoutez l'étiquette tanzu-services
au cluster de services partagés, en tant que rôle de cluster. Cette étiquette identifie le cluster de services partagés pour le cluster de gestion et les clusters de charge de travail. Par exemple :
kubectl label cluster.cluster.x-k8s.io/tkg-services cluster-role.tkg.tanzu.vmware.com/tanzu-services="" --overwrite=true
Dans cet exemple, tkg-services
est le nom du cluster de services partagés. Vous devez voir la confirmation cluster.cluster.x-k8s.io/tkg-services labeled
.
Vérifiez que l'étiquette a été correctement appliquée en exécutant la commande suivante :
tanzu cluster list --include-management-cluster
Vous devez constater que votre cluster de services partagés dispose du rôle tanzu-services
. Par exemple :
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
another-cluster default running 1/1 1/1 v1.26.8+vmware.1 <none> dev v1.26.8---vmware.2-tkg
tkg-services default running 3/3 3/3 v1.26.8+vmware.1 tanzu-services prod v1.26.8---vmware.2-tkg
mgmt-cluster tkg-system running 1/1 1/1 v1.26.8+vmware.1 management dev v1.26.8---vmware.2-tkg
Obtenez les informations d'identification admin
du cluster de services partagés. Par exemple :
tanzu cluster kubeconfig get tkg-services --admin
Définissez le contexte de kubectl
sur le cluster de services partagés. Par exemple :
kubectl config use-context tkg-services-admin@tkg-services