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.
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
- 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
- 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
- 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
...
- 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.
- Exécutez la commande suivante pour modifier le manifeste du cluster.
kubectl edit tanzukubernetescluster/CLUSTER-NAME
- 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
...
- 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.
- 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.
- 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
- 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