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 #GUID-104C2238-1D65-402A-85F0-742DAB49AB1A.
Procédure
- Authentifiez-vous avec le Superviseur.
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- Changez de contexte pour utiliser l'Espace de noms vSphere dans lequel le cluster TKG cible est provisionné.
kubectl config use-context SUPERVISOR-NAMESPACE
- 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
- 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.
- 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
- 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.
- 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.
- 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
#GUID-104C2238-1D65-402A-85F0-742DAB49AB1A.
- Vérifiez que le cluster est mis à jour.
Cluster v1alpha3 :
kubectl get tanzukubernetescluster
Cluster v1beta1 :
kubectl get cluster