Vous pouvez mettre à jour un cluster Tanzu Kubernetes en modifiant la classe de machine virtuelle utilisée pour héberger les nœuds du cluster.

Le Service Tanzu Kubernetes Grid prend en charge la mise à jour d'un cluster en modifiant la définition de VirtualMachineClass. Dans ce cas, le service déploie les nouveaux nœuds avec cette nouvelle classe et désactive les anciens nœuds. Reportez-vous à la section À propos des mises à jour du cluster Service Tanzu Kubernetes Grid.
Note : La définition VirtualMachineClass doit être liée à l' Espace de noms vSphere dans lequel le cluster Tanzu Kubernetes est provisionné. Reportez-vous à la section Classes de machine virtuelle pour des clusters Tanzu Kubernetes.

Conditions préalables

Cette tâche utilise la commande kubectl edit tanzukubernetescluster/CLUSTER-NAME pour mettre à jour le manifeste du cluster. La commande kubectl edit ouvre le manifeste du cluster dans l'éditeur de texte défini par votre variable d'environnement KUBE_EDITOR ou EDITOR. Lorsque vous enregistrez le fichier, le cluster est mis à jour avec les modifications. Reportez-vous à la section Spécifier un éditeur de texte par défaut pour Kubectl.

Procédure

  1. Authentifiez-vous avec le Cluster superviseur. Reportez-vous à la section Se connecter à Cluster superviseur en tant qu'utilisateur vCenter Single Sign-On.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. Changez de contexte pour utiliser l'Espace de noms vSphere dans lequel le cluster Tanzu Kubernetes cible est provisionné.
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. Décrivez le cluster Tanzu Kubernetes cible et vérifiez la classe de machine virtuelle.
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    Par exemple, ce cluster utilise la classe de machine virtuelle best-effort-medium :
    Spec:
      ...
      Topology:
        Control Plane:
          Class:          best-effort-medium
          ...
        Workers:
          Class:          best-effort-medium
          ...
    
  4. Répertoriez et décrivez les classes de machine virtuelle disponibles dans l'espace de noms.
    kubectl get virtualmachineclassbindings
    Note : La commande kubectl get virtualmachineclasses répertorie toutes les classes de machine virtuelle présentes sur le Cluster superviseur. Comme vous devez associer des classes de machine virtuelle à l' Espace de noms vSphere, vous pouvez uniquement utiliser les classes de machine virtuelle qui sont liées à l'espace de noms cible.
  5. Exécutez la commande suivante pour modifier le manifeste du cluster.
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
  6. Modifiez le manifeste en modifiant la chaîne version et en annulant la définition de fullVersion pour éviter une éventuelle incompatibilité de version pendant la découverte.
    Par exemple, modifiez le manifeste du cluster pour ne plus utiliser la classe de machine virtuelle best-effort-medium pour le plan de contrôle et les nœuds worker :
    spec:
      topology:
        controlPlane:
          class: best-effort-medium
          ...
        workers:
          class: best-effort-medium
          ...
    
    Pour utiliser la classe de machine virtuelle guaranteed-large pour le plan de contrôle et les nœuds worker :
    spec:
      topology:
        controlPlane:
          class: guaranteed-large
          ...
        workers:
          class: guaranteed-large
          ...
    
  7. Enregistrez les modifications que vous avez apportées au fichier de manifeste.
    Lorsque vous enregistrez le fichier, kubectl applique les modifications au cluster. En arrière-plan, le service Service Tanzu Kubernetes Grid provisionne les nouvelles machines virtuelles du nœud et met hors service les anciennes.
  8. Vérifiez que kubectl confirme que les modifications apportées au manifeste ont été enregistrées.
    kubectl edit tanzukubernetescluster/tkgs-cluster-1
    tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
    Note : Si vous recevez une erreur ou si kubectl ne confirme pas la modification du manifeste du cluster, assurez-vous d'avoir configuré votre éditeur de texte par défaut à l'aide de la variable d'environnement KUBE_EDITOR. Reportez-vous à la section Spécifier un éditeur de texte par défaut pour Kubectl.
  9. Vérifiez que le cluster est en mise à jour.
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.18.5+vmware.1-tkg.1.c40d30d   21h   updating
  10. Vérifiez que le cluster est mis à jour.
    kubectl get tanzukubernetescluster
    NAME             CONTROL PLANE   WORKER   DISTRIBUTION                     AGE   PHASE
    tkgs-cluster-1   3               3        v1.18.5+vmware.1-tkg.1.c40d30d   22h   running