Utiliser un cluster de démarrage existant pour déployer et supprimer des clusters de gestion

Par défaut, lorsque vous déployez un cluster de gestion en exécutant tanzu mc create, Tanzu Kubernetes Grid crée un cluster temporaire kind sur votre machine de démarrage locale. Il utilise ensuite le cluster local pour provisionner le cluster de gestion final sur son infrastructure de cloud cible (vSphere, Amazon Web Services (AWS) ou Azure), et supprime le cluster temporaire une fois le cluster de gestion déployé. L'exécution de tanzu mc delete pour supprimer un cluster de gestion appelle un processus similaire de création, d'utilisation, puis de suppression d'un cluster temporaire kind local.

Dans certaines circonstances, vous pouvez conserver le cluster local après le déploiement ou la suppression d’un cluster de gestion. Par exemple, pour examiner les objets du cluster ou consulter ses journaux. Pour ce faire, vous pouvez déployer ou supprimer le cluster de gestion avec l'option de CLI --use-existing-bootstrap-cluster ou --use-existing-cleanup-cluster.

Avec ces options, Tanzu Kubernetes Grid ignore la création et la suppression du cluster kind local et utilise plutôt un cluster local préexistant que vous possédez déjà ou que vous créez à cet effet.

Attention :

L'utilisation d'un cluster de démarrage existant est un cas d'utilisation avancé destiné aux utilisateurs Kubernetes expérimentés. Il est vivement recommandé, si possible, d'utiliser le cluster par défaut kind que Tanzu Kubernetes Grid fournit pour démarrer vos clusters de gestion.

Identifier ou créer un cluster de démarrage local

Pour conserver votre cluster kind local lors de la création ou de la suppression du cluster de gestion, vous devez d'abord disposer d'un cluster compatible en cours d'exécution sur votre machine de démarrage. Pour ce faire, identifiez ou créez le cluster, comme décrit dans les sous-sections ci-dessous.

Utiliser un cluster existant

Pour utiliser un cluster local existant, vous devez vous assurer que les deux éléments suivants sont vrais :

  • Le cluster n’a jamais été utilisé auparavant pour démarrer ou supprimer un cluster de gestion.

  • Le cluster a été créé avec kind v0.11 ou version ultérieure.

    • Pour vérifier cela, exécutez docker ps et associez la version de kindest:node répertoriée avec les versions répertoriées dans les notes de mise à jour de kind.

    • Arrière-plan : si votre machine de démarrage utilise un noyau Linux intégré après le correctif de sécurité Linux de mai 2021, par exemple Linux 5.11 et 5.12 avec Fedora, votre cluster de démarrage doit être créé par une version de kind v0.11 ou ultérieure. Les versions antérieures de kind tentent de modifier un fichier en lecture seule dans les versions récentes de Linux, ce qui entraîne un échec. Le correctif de sécurité est rétroporté sur tous les noyaux LTS à partir de la version 4.9, ce qui entraîne d'éventuels échecs de déploiement du cluster de gestion, car des mises à jour du système d'exploitation sont fournies, y compris pour la machine Docker sur macOS et Windows Subsystem for Linux.

Si ces deux qualifications sont vraies pour le cluster local actuel, vous pouvez l'utiliser pour créer ou supprimer un cluster de gestion. Sinon, vous devez remplacer le cluster comme suit :

  1. Supprimez le cluster.

  2. Téléchargez et installez une nouvelle version de kind comme décrit dans la documentation de kind.

  3. Créez un cluster kind comme décrit dans la section Créer un cluster ci-dessous.

Créer un cluster

Pour créer un cluster de démarrage local, procédez de l'une des manières suivantes, en fonction de la connectivité de votre machine de démarrage :

  • Environnement entièrement en ligne :

    Créez le cluster :

    kind create cluster
    
  • Environnements à accès restreint à Internet :

    1. Créez un fichier de configuration de cluster kind kind.yml comme suit :

      kind: Cluster
      apiVersion: kind.x-k8s.io/v1alpha4
      name: tkg-kind
      nodes:
      - role: control-plane
       # This option mounts the host docker registry folder into
       # the control-plane node, allowing containerd to access them.
       extraMounts:
         - containerPath: CONTAINER-CA-PATH
           hostPath: HOST-CA-PATH
      containerdConfigPatches:
      - |-
       [plugins."io.containerd.grpc.v1.cri".registry.configs."REGISTRY-FQDN".tls]
         ca_file = "/etc/containerd/REGISTRY-FQDN/CA.crt"
      

      Où :

      • CONTAINER-CA-PATH est le chemin d'accès du certificat d'autorité de certification Harbor sur le conteneur kind, tel que /etc/containerd/REGISTRY-FQDN
      • HOST-CA-PATH est le chemin d'accès au certificat d'autorité de certification Harbor sur la machine virtuelle de démarrage sur laquelle le cluster kind est créé, comme /etc/docker/certs.d/REGISTRY-FQDN
      • REGISTRY-FQDN est le nom du registre Harbor
      • CA.crt est le certificat d'autorité de certification du registre Harbor

      Par défaut, crashd recherche un cluster nommé tkg-kind. Par conséquent, nommer le cluster kind tkg-kind facilite la collecte des journaux si le cluster ne parvient pas à démarrer.

    2. Utilisez le fichier de configuration ci-dessus pour créer le cluster kind.

      kind create cluster --config kind.yml
      

Déployer un cluster de gestion avec un cluster de démarrage existant

Pour déployer un cluster de gestion Tanzu Kubernetes Grid avec un cluster de démarrage existant :

  1. Suivez la procédure ci-dessus pour Identifier ou créer un cluster de démarrage local.

  2. Définissez le contexte de kubectl sur le cluster de démarrage local :

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. Déployez le cluster de gestion en exécutant la commande tanzu mc create avec l'option --use-existing-bootstrap-cluster :

    tanzu mc create --file mc.yaml --use-existing-bootstrap-cluster my-bootstrap-cluster
    

    Pour plus d'informations sur l'exécution de tanzu mc create, reportez-vous à la section Déployer des clusters de gestion.

Supprimer un cluster de gestion avec un cluster de démarrage existant

Pour supprimer un cluster de gestion Tanzu Kubernetes Grid avec un cluster de démarrage existant :

  1. Suivez la procédure ci-dessus pour Identifier ou créer un cluster de démarrage local.

  2. Définissez le contexte de kubectl sur le cluster de démarrage local :

    kubectl config use-context my-bootstrap-cluster-admin@my-bootstrap-cluster
    
  3. Supprimez le cluster de gestion en exécutant la commande tanzu mc delete avec l'option --use-existing-cleanup-cluster :

    tanzu mc delete --use-existing-cleanup-cluster my-bootstrap-cluster
    

    Pour plus d'informations sur l'exécution de tanzu mc delete, reportez-vous à la section Supprimer des clusters de gestion.

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