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

Vous pouvez initier une mise à jour continue d'un cluster de services TKG en modifiant la définition de vmClass à l'aide de la commande kubectl edit. Les nouveaux nœuds basés sur la classe modifiée sont déployés et les anciens nœuds sont interrompus.
Note : Vous ne pouvez pas utiliser la commande kubectl apply pour mettre à jour un cluster TKG déployé.

Conditions préalables

Cette tâche nécessite l'utilisation de la Commande d'édition de kubectl. Cette commande 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. Pour configurer un éditeur pour kubectl, reportez-vous à la section Configurer un éditeur de texte pour Kubectl.

Procédure

  1. Authentifiez-vous avec le Superviseur.
    kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
  2. Changez de contexte pour utiliser l'Espace de noms vSphere dans lequel le cluster TKG cible est provisionné.
    kubectl config use-context SUPERVISOR-NAMESPACE
  3. Décrivez le cluster TKG cible et vérifiez la classe de machine virtuelle.
    Cluster v1alpha3 :
    kubectl describe tanzukubernetescluster CLUSTER-NAME
    Cluster v1beta1 :
    kubectl describe cluster CLUSTER-NAME
  4. Répertoriez et décrivez les classes de machine virtuelle disponibles dans l'Espace de noms vSphere dans lequel le cluster est provisionné.
    kubectl get virtualmachineclass
    Note : La classe de VM cible doit être associée à l' Espace de noms vSphere où le cluster TKG cible est provisionné. Pour plus d'informations sur la liaison des classes de machine virtuelle aux Espaces de noms vSphere, reportez-vous à la documentation du service TKG ou du service de VM.
  5. Exécutez la commande suivante pour modifier le manifeste du cluster.
    Cluster v1alpha3 :
    kubectl edit tanzukubernetescluster/CLUSTER-NAME
    Cluster v1beta1 :
    kubectl edit cluster/CLUSTER-NAME
  6. Modifiez le manifeste en changeant la chaîne de classe de machine virtuelle.
    Par exemple, si vous utilisez un cluster v1alpha3, modifiez le manifeste du cluster pour qu'il n'utilise pas la classe de machine virtuelle guaranteed-medium pour les nœuds worker :
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
    Pour utiliser la classe de machine virtuelle guaranteed-large pour les nœuds worker :
     topology:
        controlPlane:
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-medium
        nodePools:
        - name: worker-nodepool-a1
          replicas: 3
          storageClass: vwk-storage-policy
          tkr:
            reference:
              name: v1.27.11---vmware.1-fips.1-tkg.2
          vmClass: guaranteed-large
    De même, si vous avez provisionné un cluster v1beta1, mettez à jour la valeur de variables.vmclass vers la classe de machine virtuelle cible.
  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 contrôleur TKG 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 Configurer un éditeur de texte pour Kubectl.
  9. Vérifiez que le cluster est mis à jour.
    Cluster v1alpha3 :
    kubectl get tanzukubernetescluster
    Cluster v1beta1 :
    kubectl get cluster