Fichiers de configuration et spécifications d'objet

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 :

Types de clusters

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.

    • Les personnalisations plus avancées peuvent également nécessiter une spécification pour 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.

    • Les personnalisations plus avancées peuvent nécessiter des superpositions ytt pour personnaliser les clusters de charge de travail ou les plans de cluster. Pour plus d'informations sur le téléchargement et l'installation de ytt, reportez-vous à la section Installer les outils Carvel.

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 :

Pour plus d'informations sur le fichier de configuration à choisir pour votre cluster de charge de travail, reportez-vous au tableau ci-dessous.

Fichiers de configuration

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
  • Clusters basés sur une classe
  • Clusters basés sur un plan
  • Clusters TKC
  • Clusters basés sur une classe sur vSphere 7 et 8 avec un cluster de gestion autonome AWS et Azure
  • Clusters basés sur un plan sur vSphere 7 et 8 avec un cluster de gestion autonome AWS et Azure
  • Clusters TKC sur vSphere 8 avec superviseur
Spécification d'objet de style Kubernetes Clusters basés sur une classe vSphere 8 avec superviseur ; vSphere 7 et 8 avec un cluster de gestion autonome AWS et Azure

Configuration d'un cluster de charge de travail avec un fichier de configuration de cluster

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 :

    • vSphere 7 et 8 avec un cluster de gestion autonome
    • AWS
    • Azure

    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 :

    • Pour les clusters basés sur un plan : vSphere 7 et 8 avec un cluster de gestion autonome AWS et Azure
    • Pour les clusters TKC : vSphere 8 avec superviseur

À propos du fichier de configuration du cluster

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 :

Création de votre premier fichier de configuration de cluster

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.

  1. Localisez le fichier de configuration YAML pour le cluster de gestion :

    • Si vous avez déployé le cluster de gestion à partir de l'interface du programme d'installation et que vous n'avez pas spécifié l'option --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.
    • Si vous avez déployé le cluster de gestion à partir de l'interface du programme d'installation et que vous avez spécifié l'option --file, la configuration du cluster de gestion est extraite du fichier que vous avez spécifié.
    • Si vous avez déployé le cluster de gestion à partir de la CLI Tanzu sans utiliser l'interface du programme d'installation, la configuration du cluster de gestion provient d'un fichier que vous avez spécifié dans l'option --file ou de l'emplacement par défaut, ~/.config/tanzu/tkg/cluster-config.yaml.
  2. 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.

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

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

Configuration d'un cluster de charge de travail avec une spécification d'objet

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 :

  • vSphere 7 et 8 sans superviseur
  • vSphere 8 avec superviseur
  • AWS
  • Azure

À propos du fichier de spécification d'objet

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.

Création de votre premier fichier de 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 :

  • Objet de 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.
  • (Facultatif ; vSphere with Tanzu) Objet 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.

Configuration des paramètres d'infrastructure à usage unique (vSphere with Tanzu)

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 :

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

  2. Créez une spécification d'objet pour l'objet Cluster lui-même.

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

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

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

Clusters de charge de travail 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.

Tâches suivantes

Passez à la rubrique de configuration du cluster pour votre infrastructure :

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