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

Le tableau répertorie les opérations de mise à l'échelle prises en charge pour les clusters Tanzu Kubernetes.
Tableau 1. Opérations de mise à l'échelle prises en charge pour les clusters Tanzu Kubernetes
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
Gardez à l'esprit les éléments suivants :
  • 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.

Lorsque vous enregistrez les modifications du manifeste, 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
Pour annuler, fermez simplement l'éditeur sans enregistrer.
kubectl edit tanzukubernetescluster/tkgs-cluster-1
Edit cancelled, no changes made.

Monter en charge le plan de contrôle

Vous pouvez effectuez une montée en charge d'un cluster Tanzu Kubernetes en augmentant le nombre de nœuds de plan de contrôle de 1 à 3. Le nombre de nœuds de plan de contrôle doit être impair. Vous ne pouvez pas réduire la charge du plan de contrôle.
  1. Authentifiez-vous avec le Cluster superviseur.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 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
  3. Répertoriez les clusters Kubernetes qui s'exécutent dans l'espace de noms.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 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
    
  5. 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.

  6. Localisez le paramètre spec.topology.controlPlane.count et augmentez le nombre de nœuds de 1 à 3.
    ...
    controlPlane:
        count: 1
    ...
    
    ...
    ControlPlane:
        count: 3
    ...
    
  7. 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.

  8. 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.

  1. Authentifiez-vous avec le Cluster superviseur.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 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
  3. Répertoriez les clusters Kubernetes qui s'exécutent dans l'espace de noms.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 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
    
  5. 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.

  6. Localisez le paramètre spec.topology.workers.count et augmentez le nombre de nœuds.
    ...
    workers:
        count: 3
    ...
    
    ...
    workers:
        count: 4
    ...
    
  7. 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.

  8. 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.

  1. Authentifiez-vous avec le Cluster superviseur.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 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
  3. Répertoriez les clusters Kubernetes qui s'exécutent dans l'espace de noms.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 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
    
  5. 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.

  6. Localisez le paramètre spec.topology.workers.count et augmentez le nombre de nœuds.
    ...
    workers:
        count: 4
    ...
    
    ...
    workers:
        count: 2
    ...
    
  7. 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.

  8. 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.

  1. Authentifiez-vous avec le Cluster superviseur.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. 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
  3. Répertoriez les clusters Kubernetes qui s'exécutent dans l'espace de noms.
    kubectl get tanzukubernetescluster -n tkgs-cluster-ns
  4. 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
          ...
    
  5. 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.
  6. 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.

  7. 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
          ...
    
  8. 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.

  9. 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