Vous pouvez faire évoluer un cluster Tanzu Kubernetes horizontalement en modifiant le nombre de nœuds ou verticalement en modifiant la classe de machine virtuelle hébergeant les nœuds.
Opérations de mise à l'échelle prises en charge
Nœud | Montée en charge horizontale | Réduction de charge horizontale | Échelle verticale |
---|---|---|---|
Plan de contrôle | Oui | Non | Oui |
Worker | Oui | Oui | Oui |
- Lors d'une mise à l'échelle verticale d'un nœud de cluster, les charges de travail risquent de ne plus pouvoir s'exécuter sur le nœud en raison de l'absence de ressources disponibles. Pour cette raison, la mise à l'échelle horizontale peut être l'approche préférée.
- Les classes de machine virtuelle ne sont pas immuables. Si vous montez en charge un cluster Tanzu Kubernetes après la modification d'une classe de machine virtuelle utilisée par ce cluster, les nouveaux clusters utilisent la définition de classe mise à jour, mais les clusters existants continuent d'utiliser la définition de classe initiale, ce qui entraîne une discordance. Reportez-vous à la section Classes de machine virtuelle pour des clusters Tanzu Kubernetes.
Condition préalable à la mise à l'échelle : configurer la modification Kubectl
Pour dimensionner un cluster Tanzu Kubernetes, vous mettez à jour le manifeste du cluster à l'aide de la commande kubectl edit tanzukubernetescluster/CLUSTER-NAME
. 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. Pour obtenir des instructions sur la configuration de la variable d'environnement, reportez-vous à la section Spécifier un éditeur de texte par défaut pour Kubectl.
kubectl
signale que les modifications ont été enregistrées et que le cluster est mis à jour avec les modifications.
kubectl edit tanzukubernetescluster/tkgs-cluster-1 tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 edited
kubectl edit tanzukubernetescluster/tkgs-cluster-1 Edit cancelled, no changes made.
Monter en charge le plan de contrôle
- Authentifiez-vous avec le Cluster superviseur.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Changez de contexte pour utiliser l'Espace de noms vSphere où le cluster Tanzu Kubernetes est en cours d'exécution.
kubectl config use-context tkgs-cluster-ns
- Répertoriez les clusters Kubernetes qui s'exécutent dans l'espace de noms.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- Obtenez le nombre de nœuds en cours d'exécution dans le cluster cible.
kubectl get tanzukubernetescluster tkgs-cluster-1
Par exemple, le cluster suivant dispose d'un nœud de plan de contrôle et de trois nœuds worker.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 1 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
- Chargez le manifeste du cluster afin de le modifier à l'aide de la commande
kubectl edit
.kubectl edit tanzukubernetescluster/tkgs-cluster-1
Le manifeste du cluster s'ouvre dans l'éditeur de texte défini par vos variables d'environnement KUBE_EDITOR ou EDITOR.
- Localisez le paramètre
spec.topology.controlPlane.count
et augmentez le nombre de nœuds de 1 à 3.... controlPlane: count: 1 ...
... ControlPlane: count: 3 ...
- Pour appliquer les modifications, enregistrez le fichier dans l'éditeur de texte. Pour annuler, fermez l'éditeur sans enregistrer.
Lorsque vous enregistrez le fichier, kubectl applique les modifications au cluster. En arrière-plan, le Service de machine virtuelle du Cluster superviseur provisionne le nouveau nœud worker.
- Vérifiez que les nouveaux nodes sont ajoutés.
kubectl get tanzukubernetescluster tkgs-cluster-1
Le plan de contrôle ayant fait l'objet d'une montée en charge dispose dorénavant de 3 nœuds.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
Monter en charge des nœuds worker
Vous pouvez monter en charge un cluster Tanzu Kubernetes en augmentant le nombre de nœuds worker à l'aide de kubectl.
- Authentifiez-vous avec le Cluster superviseur.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Changez de contexte pour utiliser l'Espace de noms vSphere où le cluster Tanzu Kubernetes est en cours d'exécution.
kubectl config use-context tkgs-cluster-ns
- Répertoriez les clusters Kubernetes qui s'exécutent dans l'espace de noms.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- Obtenez le nombre de nœuds en cours d'exécution dans le cluster cible.
kubectl get tanzukubernetescluster tkgs-cluster-1
Par exemple, le cluster suivant dispose de 3 nodes de plan de contrôle et de 3 nodes worker.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 3 v1.18.5+vmware.1-tkg.1.886c781 1d running
- Chargez le manifeste du cluster afin de le modifier à l'aide de la commande
kubectl edit
.kubectl edit tanzukubernetescluster/tkgs-cluster-1
Le manifeste du cluster s'ouvre dans l'éditeur de texte défini par vos variables d'environnement KUBE_EDITOR ou EDITOR.
- Localisez le paramètre
spec.topology.workers.count
et augmentez le nombre de nœuds.... workers: count: 3 ...
... workers: count: 4 ...
- Pour appliquer les modifications, enregistrez le fichier dans l'éditeur de texte. Pour annuler, fermez l'éditeur sans enregistrer.
Lorsque vous enregistrez le fichier, kubectl applique les modifications au cluster. En arrière-plan, le Service de machine virtuelle du Cluster superviseur provisionne le nouveau nœud worker.
- Vérifiez que le nouveau nœud travailleur est ajouté.
kubectl get tanzukubernetescluster tkgs-cluster-1
Après la montée en charge, le cluster dispose de 4 nœuds worker.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
Réduire la charge des nœuds worker
Vous pouvez réduire la charge d'un cluster Tanzu Kubernetes en diminuant le nombre de nœuds worker. La mise à l'échelle du plan de contrôle n'est pas prise en charge.
- Authentifiez-vous avec le Cluster superviseur.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Changez de contexte pour utiliser l'Espace de noms vSphere où le cluster Tanzu Kubernetes est en cours d'exécution.
kubectl config use-context tkgs-cluster-ns
- Répertoriez les clusters Kubernetes qui s'exécutent dans l'espace de noms.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- Obtenez le nombre de nœuds en cours d'exécution dans le cluster cible.
kubectl get tanzukubernetescluster tkgs-cluster-1
Par exemple, le cluster suivant dispose de 3 nodes de plan de contrôle et de 3 nodes travailleurs.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 4 v1.18.5+vmware.1-tkg.1.886c781 1d running
- Chargez le manifeste du cluster afin de le modifier à l'aide de la commande
kubectl edit
.kubectl edit tanzukubernetescluster/tkgs-cluster-1
Le manifeste du cluster s'ouvre dans l'éditeur de texte défini par vos variables d'environnement KUBE_EDITOR ou EDITOR.
- Localisez le paramètre
spec.topology.workers.count
et augmentez le nombre de nœuds.... workers: count: 4 ...
... workers: count: 2 ...
- Pour appliquer les modifications, enregistrez le fichier dans l'éditeur de texte. Pour annuler, fermez l'éditeur sans enregistrer.
Lorsque vous enregistrez le fichier, kubectl applique les modifications au cluster. En arrière-plan, le Service de machine virtuelle du Cluster superviseur provisionne le nouveau nœud worker.
- Vérifiez que les nœuds worker ont été supprimés.
kubectl get tanzukubernetescluster tkgs-cluster-1
Après la réduction de la taille, le cluster dispose de 2 clusters worker.NAME CONTROL PLANE WORKER DISTRIBUTION AGE PHASE tkgs-cluster-1 3 2 v1.18.5+vmware.1-tkg.1.886c781 1d running
Mettre à l'échelle un cluster verticalement
Vous pouvez dimensionner verticalement un cluster Tanzu Kubernetes en modifiant la classe de machine virtuelle utilisée pour héberger les nœuds du cluster. La mise à l'échelle verticale est prise en charge pour le plan de contrôle et les nodes travailleurs.
Le Service Tanzu Kubernetes Grid prend en charge le dimensionnement vertical des nœuds de cluster au moyen du mécanisme de mise à jour continue intégré au service. Si vous modifiez la définition de VirtualMachineClass
, le service déploie de nouveaux nœuds avec cette nouvelle classe et désactive les anciens nœuds. Reportez-vous à la section Mettre à jour les clusters Tanzu Kubernetes.
- Authentifiez-vous avec le Cluster superviseur.
kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
- Changez de contexte pour utiliser l'Espace de noms vSphere où le cluster Tanzu Kubernetes est en cours d'exécution.
kubectl config use-context tkgs-cluster-ns
- Répertoriez les clusters Kubernetes qui s'exécutent dans l'espace de noms.
kubectl get tanzukubernetescluster -n tkgs-cluster-ns
- Décrivez le cluster Tanzu Kubernetes cible et vérifiez la classe de machine virtuelle.
kubectl describe tanzukubernetescluster tkgs-cluster-2
Par exemple, le cluster suivant utilise la classe de machine virtuelle best-effort-small.
Spec: ... Topology: Control Plane: Class: best-effort-small ... Workers: Class: best-effort-small ...
- Répertoriez et décrivez les classes de machines virtuelles disponibles.
kubectl get virtualmachineclassbinding
kubectl describe virtualmachineclassbinding
Note : La classe de machine virtuelle que vous souhaitez utiliser doit être liée à l' Espace de noms vSphere. Reportez-vous à la section Classes de machine virtuelle pour des clusters Tanzu Kubernetes. - Ouvrez pour modifier le manifeste du cluster cible.
kubectl edit tanzukubernetescluster/tkgs-cluster-2
Le manifeste du cluster s'ouvre dans l'éditeur de texte défini par vos variables d'environnement KUBE_EDITOR ou EDITOR.
- Modifiez le manifeste en changeant la classe de machine virtuelle.
Par exemple, modifiez le manifeste du cluster pour utiliser la classe de machine virtuelle
guaranteed-xlarge
pour le plan de contrôle et les nœuds worker.spec: topology: controlPlane: class: guaranteed-xlarge ... workers: class: guaranteed-xlarge ...
- Pour appliquer les modifications, enregistrez le fichier dans l'éditeur de texte. Pour annuler, fermez l'éditeur sans enregistrer.
Lorsque vous enregistrez le fichier, kubectl applique les modifications au cluster. En arrière-plan, le Service Tanzu Kubernetes Grid provisionne les nouveaux nœuds et supprime les anciens. Pour obtenir une description du processus de mise à jour continue, reportez-vous à la section À propos des mises à jour du cluster Service Tanzu Kubernetes Grid.
- Vérifiez que le cluster est en cours de 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