Reportez-vous à ces instructions pour installer et configurer le module autoscaler du cluster à l'aide de la CLI Tanzu.

Configuration requise

Respectez les exigences suivantes.
  • La version vSphere minimale est vSphere 8 U3, y compris les hôtes vCenter et ESXi
  • La version minimale de TKr est TKr 1.27.x pour vSphere 8
  • La version mineure de TKr et la version mineure du module d'autoscaler de cluster doivent correspondre
Note : Il existe une relation un-à-un entre la version mineure du module d'autoscaler et la version mineure de TKr. Par exemple, si vous utilisez TKr 1.27.11, vous devez installer la version 1.27.2 de l'autoscaler. Toute incompatibilité de version entraînera l'échec du rapprochement de modules.

Configurer Espace de noms vSphere

Remplissez les conditions préalables suivantes pour provisionner un cluster TKG..

  1. Installez ou mettez à jour votre environnement vers vSphere 8 U3 et TKr 1.27.x pour vSphere 8.
  2. Créez ou mettez à jour une bibliothèque de contenu avec les dernières Versions de Tanzu Kubernetes. Reportez-vous à la section Administration des versions de Kubernetes pour les clusters Service TKG.
  3. Créez et configurez un Espace de noms vSphere pour héberger le cluster TKG. Reportez-vous à la section Configuration de Espaces de noms vSphere pour l'hébergement de clusters Service TKG.
  4. Installez Outils de l'interface de ligne de commande Kubernetes pour vSphere .

    L'exemple suivant peut être utilisé pour installer les outils à partir de la ligne de commande. Pour des commandes supplémentaires, consultez Installez l'Outils de l'interface de ligne de commande Kubernetes pour vSphere ..

    wget https://SUPERVISOR-IP-or-FQDN/wcp/plugin/linux-amd64/vsphere-plugin.zip
    unzip vsphere-plugin.zip
    chmod +x bin/kubectl*
    mv bin/kubectl* /usr/bin/kubectl vsphere --help
    rm ~/.kube/config
    kubectl vsphere login --insecure-skip-tls-verify --server SUPERVISOR-IP-or-FQDN --tanzu-kubernetes-cluster-namespace VSPHERE-NAMESPACE --vsphere-username VSPHERE-USER
    kubectl config use-context VSPHERE-NAMESPACE
  5. Exécutez kubectl et kubectl vsphere pour vérifier l'installation.

Créer un cluster TKG avec des annotations d'autoscaler

Suivez les instructions pour créer un cluster TKG. Pour des commandes supplémentaires, consultez Workflow de provisionnement de clusters TKG à l'aide de Kubectl.

Pour utiliser autoscaler, vous devez configurer le cluster avec des annotations d'étiquette autoscaler, comme indiqué dans l'exemple de spécification de cluster fourni ici. Contrairement au provisionnement de cluster standard, vous ne codez pas de manière matérielle le nombre de réplicas de nœud worker. Kubernetes dispose d'une logique par défaut intégrée pour les réplicas en fonction des annotations de taille minimale et maximale d'Autoscaler. Comme il s'agit d'un nouveau cluster, la taille minimale est utilisée pour créer le cluster. Pour plus d'informations, consultez https://cluster-api.sigs.k8s.io/tasks/automated-machine-management/autoscaling.
  1. Authentifiez-vous auprès du Superviseur à l'aide de kubectl.
    kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
  2. Changez de contexte pour l'Espace de noms vSphere cible qui hébergera le cluster.
    kubectl config use-context tkgs-cluster-namespace
  3. Répertoriez les classes de machines virtuelles disponibles dans l'Espace de noms vSphere.

    Vous pouvez uniquement utiliser les classes de machines virtuelles qui sont liées à l'Espace de noms vSphere cible. Reportez-vous à la section Utilisation de classes de machines virtuelles avec des clusters de Service TKG.

  4. Répertoriez les classes de stockage de volume persistant disponibles.
    kubectl describe namespace VSPHERE-NAMESPACE-NAME

    La commande renvoie des détails sur l'Espace de noms vSphere, y compris la classe de stockage. La commande kubectl describe storageclasses renvoie également les classes de stockage disponibles, mais nécessite des autorisations d'administrateur vSphere.

  5. Répertoriez les Versions de Tanzu Kubernetes disponibles.
    kubectl get tkr

    Cette commande renvoie les TKR disponibles dans cet Espace de noms vSphere et leur compatibilité. Reportez-vous à la section Administration des versions de Kubernetes pour les clusters Service TKG.

  6. Utilisez les informations que vous avez collectées pour créer un fichier YAML de spécification de cluster TKG avec la configuration d'autoscaler du cluster requise.
    • Utilisez les annotations *-min-size et *-max-size pour les nodePools worker. Dans cet exemple, 3 correspond au nombre minimal et 5 au nombre maximal de nœuds worker pouvant être mis à l'échelle. Par défaut, le cluster sera créé avec 3 nœuds worker.
    • Utilisez la version mineure correspondante pour le module TKr et autoscaler.
    • Les valeurs metadata.name et metadata.namespace du cluster utilisées sont cohérentes avec les valeurs par défaut du module autoscaler. Si vous modifiez ces valeurs dans la spécification du cluster, vous devrez les modifier dans les autoscaler-data-values (voir ci-dessous).
    #cc-autoscaler.yaml
    apiVersion: cluster.x-k8s.io/v1beta1
    kind: Cluster
    metadata:
     name: tkc
     namespace: cluster
    spec:
     clusterNetwork:
       pods:
         cidrBlocks:
         - 192.0.2.0/16
       serviceDomain: cluster.local
       services:
         cidrBlocks:
         - 198.51.100.0/12
     topology:
       class: tanzukubernetescluster
       controlPlane:
         metadata: {}
         replicas: 3
       variables:
       - name: storageClasses
         value:
         - wcpglobal-storage-profile
       - name: vmClass
         value: guaranteed-medium
       - name: storageClass
         value: wcpglobal-storage-profile
       #minor versions must match
       version: v1.27.11---vmware.1-fips.1-tkg.2
       workers:
         machineDeployments:
         - class: node-pool
           metadata:
             annotations:
               cluster.x-k8s.io/cluster-api-autoscaler-node-group-min-size: "3"
               cluster.x-k8s.io/cluster-api-autoscaler-node-group-max-size: "5"
           name: np-1
  7. Appliquez la spécification du cluster.
    kubectl apply -f cc-autoscaler.yaml
  8. Vérifiez la création du cluster.
    kubectl get cluster,vm
  9. Vérifiez la version des nœuds de cluster.
    kubectl get node

Créer le référentiel de module sur le cluster TKG

Une fois le cluster TKG provisionné, installez la CLI Tanzu et configurez le référentiel de modules.
  1. Installez l'interface de ligne de commande Tanzu.

    Reportez-vous à la section Installez la Tanzu CLI à utiliser avec les clusters de Service TKG.

  2. Connectez-vous au cluster.
    rm ~/.kube/config
    kubectl vsphere login --insecure-skip-tls-verify --server 192.168.0.2 --tanzu-kubernetes-cluster-namespace autoscaler --vsphere-username [email protected] --tanzu-kubernetes-cluster-name cckubectl 
    config use-context cc
  3. Créer le référentiel de modules.
    #Standard package repository URL might change depending on the required cluster autoscaler version
    tanzu package repository add standard-repo --url projects.registry.vmware.com/tkg/packages/standard/repo:v2024.4.12 -n tkg-system
    tanzu package available list -n tkg-system
    tanzu package available get cluster-autoscaler.tanzu.vmware.com -n tkg-system

Installer le module autoscaler

Installez le module autoscaler du cluster. L'autoscaler du cluster sera installé dans l'espace de noms kube-system.
  1. Générez le fichier values.yaml par défaut à l'aide de la CLI Tanzu.
    tanzu package available get cluster-autoscaler.tanzu.vmware.com/1.27.2+vmware.1-tkg.3  -n tkg-system --default-values-file-output values.yaml
  2. Mettez à jour le fichier values.yaml pour l'installation du module.
    arguments:  
      ignoreDaemonsetsUtilization: true  
      maxNodeProvisionTime: 15m  
      maxNodesTotal: 0  
      metricsPort: 8085  
      scaleDownDelayAfterAdd: 10m  
      scaleDownDelayAfterDelete: 10s  
      scaleDownDelayAfterFailure: 3m  
      scaleDownUnneededTime: 10m
    clusterConfig:  
      clusterName: "tkc"  
      clusterNamespace: "cluster"
    paused: false
  3. Installer le module d'autoscaler de cluster à l'aide de la CLI Tanzu.
    tanzu package install cluster-autoscaler-pkgi -n tkg-system --package cluster-autoscaler.tanzu.vmware.com --version 1.27.2+vmware.1-tkg.3 --values-file values.yaml

Tester la mise à l'échelle automatique du cluster

Pour tester la mise à l'échelle automatique du cluster, déployez une application, augmentez le nombre de réplicas et vérifiez que des nœuds worker supplémentaires sont montés en charge pour gérer la charge supplémentaire.

Reportez-vous à la section Tester l'autoscaler du cluster.

Mettre à niveau un cluster autoscaler

Pour mettre à niveau un cluster à mise à l'échelle automatique, vous devez d'abord suspendre le module autoscaler.

Reportez-vous à la section Mettre à niveau le cluster mis à l'échelle automatique à l'aide de l'interface de ligne de commande Tanzu.