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 | Échelle volumétrique |
---|---|---|---|---|
Plan de contrôle | Oui | Non | Oui | Non |
Worker | Oui | 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.
- Les volumes de nœuds worker peuvent être modifiés après le provisionnement, ce qui n'est pas le cas des volumes de nœuds de plan de contrôle.
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.NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY tkgs-cluster-ns test-cluster 1 3 v1.21.2---vmware.1-tkg.1.13da849 5d12h True
- 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: replicas: 1 ...
... ControlPlane: replicas: 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.NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY tkgs-cluster-ns test-cluster 3 3 v1.21.2---vmware.1-tkg.1.13da849 5d12h True
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.NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY tkgs-cluster-ns test-cluster 3 3 v1.21.2---vmware.1-tkg.1.13da849 5d12h True
- 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: replicas: 3 ...
... workers: replicas: 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.NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY tkgs-cluster-ns test-cluster 3 4 v1.21.2---vmware.1-tkg.1.13da849 5d12h True
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 4 nodes travailleurs.NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY tkgs-cluster-ns test-cluster 3 4 v1.21.2---vmware.1-tkg.1.13da849 5d12h True
- 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 diminuez le nombre de nœuds.... workers: replicas: 4 ...
... workers: replicas: 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.NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY tkgs-cluster-ns test-cluster 3 2 v1.21.2---vmware.1-tkg.1.13da849 5d12h True
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-medium.
Spec: ... Topology: Control Plane: Class: best-effort-medium ... nodePool-a1: Class: best-effort-medium ...
- 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-large
pour le plan de contrôle et les nœuds worker.spec: topology: controlPlane: class: guaranteed-large ... nodePool-a1: class: guaranteed-large ...
- 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 mis à jour.
kubectl get tanzukubernetescluster NAMESPACE NAME CONTROL PLANE WORKER TKR NAME AGE READY tkgs-cluster-ns test-cluster 3 3 v1.21.2---vmware.1-tkg.1.13da849 5d12h True
Mettre à l'échelle les volumes de nœuds
Dans la spécification de cluster Tanzu Kubernetes pour les nœuds, vous avez la possibilité de déclarer un ou plusieurs volumes persistants. La déclaration d'un volume de nœuds est utile pour les composants à taux de variation élevé, tels que la base de données ectd sur le plan de contrôle et l'exécution du conteneur sur les nœuds worker. Une spécification de cluster extraite avec les deux volumes de nœuds déclarés est fournie ci-dessous à des fins de référence. (Un exemple complet de spécification de cluster est disponible ici.)
Nœud de volume | Description |
---|---|
Les modifications du volume de nœuds worker sont autorisées. |
Après le provisionnement d'un cluster
Tanzu Kubernetes, vous pouvez ajouter ou mettre à jour un volume de nœuds worker. Lorsque vous lancez une mise à jour continue, le cluster est mis à jour avec le nouveau volume ou le volume modifié.
Avertissement : Si vous mettez à l'échelle le nœud worker avec un nouveau volume ou un volume modifié, les données du volume actuel sont supprimées lors de la mise à jour continue.
|
Les modifications du volume du nœud de plan de contrôle ne sont pas autorisées. | Après le provisionnement d'un cluster Tanzu Kubernetes, vous ne pouvez pas ajouter ou mettre à jour un volume de nœuds de plan de contrôle. L'API du cluster Kubernetes (CAPI) interdit les modifications post-création de spec.toplogy.controlPlane.volumes . Si vous tentez d'ajouter ou de modifier un volume de plans de contrôle après la création du cluster, la demande est refusée et vous recevez le message d'erreur « Les mises à jour de champs immuables ne sont pas autorisées ». |
spec: topology: controlPlane: replicas: 3 vmClass: guaranteed-medium storageClass: vwt-storage-policy volumes: - name: etcd mountPath: /var/lib/etcd capacity: storage: 4Gi tkr: reference: name: v1.21.2---vmware.1-tkg.1.ee25d55 nodePools: - name: worker-nodepool-a1 replicas: 3 vmClass: guaranteed-large storageClass: vwt-storage-policy volumes: - name: containerd mountPath: /var/lib/containerd capacity: storage: 16Gi