Créer des clusters de charge de travail

Cette rubrique explique comment créer des clusters de charge de travail avec la CLI Tanzu.

Conditions requises

(Recommandé) Créer un cluster à partir d'un fichier de configuration

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 :

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.

Créer un cluster basé sur une classe

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.

Important

VMware recommande d’utiliser et de conserver un fichier de configuration dédié pour chaque cluster que vous déployez.

  1. Localisez le fichier de configuration que vous avez préparé dans le cadre des conditions préalables ci-dessus.

  2. 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 :

    • (Recommandé) Lorsque vous créez un cluster en une étape, transmettez votre fichier de configuration de cluster à l'option –file de tanzu cluster create, la commande l'applique alors automatiquement.
    • Lorsque vous créez un cluster en deux étapes, vous transmettez votre fichier de configuration de cluster à l'option –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.

    Remarque

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

    Processus en une seule étape (recommandé)
    Pour suivre le processus en une seule étape :
    1. 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
      
    2. 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
      
    Processus en deux étapes, toujours
    Pour suivre le processus en deux étapes pour chaque cluster que vous créez :
    1. 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.

    2. 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
      
    3. Examinez ou modifiez le fichier de spécification d'objet généré par tanzu cluster create.

    4. 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
      
    Processus en deux étapes, une fois
    Pour suivre le processus en deux étapes pour un cluster unique :
    1. 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
      
    2. 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.

    3. 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
      
    Remarque

    Lors 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 erreur It seems like you have done some customizations to the template overlays.

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

(Hérité) Créer un cluster basé sur un plan ou un cluster TKC

La procédure ci-dessous explique comment déployer un cluster basé sur un plan ou TKC à partir d'un fichier de configuration :

  • Clusters basés sur un plan : Le cluster résultant est représenté par un objet AWSCluster, AzureCluster ou VSphereCluster dans Kubernetes, en fonction de la plate-forme d'infrastructure que vous ciblez.
  • Clusters TKC : Le cluster résultant est représenté par un objet TanzuKubernetesCluster dans Kubernetes.

Pour créer le cluster :

  1. Définissez la fonctionnalité allow-legacy-cluster sur true dans la CLI Tanzu :

    tanzu config set features.cluster.allow-legacy-cluster true
    
  2. Créez le cluster :

    Cluster basé sur un plan
    Si vous créez un cluster basé sur un plan, suivez les étapes ci-dessous :
    1. Localisez le fichier de configuration que vous avez préparé dans le cadre des conditions préalables ci-dessus.
    2. 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
      
    3. 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.

    Custer TKC
    Si vous créez un cluster TKC, suivez les étapes ci-dessous :
    1. 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é).

    2. Une fois que vous avez connecté la CLI Tanzu au superviseur, obtenez l'espace de noms vSphere cible :

      tanzu namespaces get
      
    3. Déterminez la version de Tanzu Kubernetes (TKR) pour le cluster :

      1. Obtenez la liste des TKR disponibles dans le cluster superviseur :

        tanzu kubernetes-release get
        
      2. 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 ---.

    4. 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.
    5. Une fois le cluster créé, exécutez tanzu cluster get pour voir l'état actuel du cluster :

      tanzu cluster get CLUSTER-NAME
      
    6. 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).

Créer un cluster à partir d’une spécification d’objet

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 :

  1. Créez une spécification d'objet de cluster, comme décrit dans la section Créer une spécification d'objet ci-dessous.
  2. Déployez le cluster à partir de la spécification d'objet, comme décrit dans la section Créer un cluster basé sur une classe à partir de la spécification d'objet ci-dessous.
Remarque

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

Créer une spécification d’objet

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.

Cluster de gestion autonome
Si vous déployez un cluster de charge de travail basé sur une classe pour vSphere avec un cluster de gestion autonome, AWS ou Azure, vous pouvez utiliser la CLI Tanzu pour convertir un fichier de configuration de cluster en fichier de spécification d'objet de style Kubernetes pour un cluster de charge de travail basé sur une classe sans déployer le cluster. Vous pouvez ensuite utiliser la spécification comme exemple pour créer vos propres spécifications. Pour créer un fichier de spécification, vous pouvez :
  • 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.

Superviseur
Si vous déployez le cluster de charge de travail sur vSphere 8 avec superviseur, créez ou adaptez une spécification d'objet Cluster, comme décrit dans la section Configurer un cluster basé sur une classe déployé par un superviseur.
  • La documentation de vSphere 8 contient des exemples de spécifications d'objets Cluster à utiliser, par exemple Exemple v1beta1 : cluster par défaut.
  • Définissez les types de machines virtuelles, l'échelle et d'autres configurations de cluster de base dans le bloc topology du fichier de spécification.
  • Pour personnaliser les attributs qui ne peuvent pas être définis dans l'objet 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.


Créer un cluster basé sur une classe à partir de la spécification d’objet

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
Remarque

Lors 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 erreur It seems like you have done some customizations to the template overlays.

Créer un cluster de services partagés

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 :

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

    YOUR-CLUSTER-NAME est le nom que vous choisissez pour le cluster. Par exemple, tkg-services.

  2. (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
    
  3. Créez le cluster de services partagés, comme décrit dans Créer un cluster à partir d'un fichier de configuration ci-dessus.

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

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

  6. 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
    
  7. Obtenez les informations d'identification admin du cluster de services partagés. Par exemple :

    tanzu cluster kubeconfig get tkg-services --admin
    
  8. Définissez le contexte de kubectl sur le cluster de services partagés. Par exemple :

    kubectl config use-context tkg-services-admin@tkg-services
    

Tâches suivantes

check-circle-line exclamation-circle-line close-line
Scroll to top icon