Fare riferimento a queste istruzioni per installare e configurare il pacchetto di Cluster Autoscaler utilizzando la CLI di Tanzu.

Requisiti

Assicurarsi che siano soddisfatti i requisiti seguenti.
  • La versione di vSphere minima richiesta è vSphere 8 U3, inclusi gli host vCenter ed ESXi
  • La versione di TKr minima è TKr 1.27.x per vSphere 8
  • La versione secondaria di TKr e la versione secondaria del pacchetto di Cluster Autoscaler devono corrispondere
Nota: Esiste una relazione 1 a 1 tra la versione secondaria del pacchetto di Autoscaler e la versione secondaria di TKr. Ad esempio, se si utilizza TKr 1.27.11, è necessario installare la versione v1.27.2 di Autoscaler. Se la versione non corrisponde, la riconciliazione del pacchetto non riesce.

Configurazione di Spazio dei nomi vSphere

Per eseguire il provisioning di un cluster TKG, completare le attività preliminari seguenti.

  1. Installare o aggiornare l'ambiente a vSphere 8 U3 e TKr 1.27.x per vSphere 8.
  2. Creare o aggiornare una libreria di contenuti con più Release di Tanzu Kubernetes. Vedere Amministrazione delle versioni di Kubernetes per i cluster Servizio TKG.
  3. Creare e configurare uno Spazio dei nomi vSphere che ospiti il cluster TKG. Vedere Configurazione di Spazi dei nomi vSphere per l'hosting di cluster Servizio TKG.
  4. Installare Strumenti CLI Kubernetes di vSphere.

    L'esempio seguente può essere utilizzato per installare gli strumenti dalla riga di comando. Per ulteriori istruzioni, vedere Installazione di Strumenti CLI Kubernetes di 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. Eseguire kubectl e kubectl vsphere per verificare l'installazione.

Creazione di un cluster TKG con annotazioni di Autoscaler

Seguire le istruzioni per creare un cluster TKG. Per ulteriori istruzioni, vedere Workflow per il provisioning dei cluster TKG utilizzando Kubectl.

Per utilizzare Autoscaler, è necessario configurare il cluster con annotazioni delle etichette di Autoscaler, come illustrato nell'esempio di specifica del cluster fornito qui. A differenza del normale provisioning del cluster, non si esegue l'hardcoding del numero di repliche dei nodi worker. Kubernetes dispone di una logica predefinita integrata per le repliche in base alle annotazioni delle dimensioni minime e massime di Autoscaler. Poiché si tratta di un nuovo cluster, per creare il cluster vengono utilizzate le dimensioni minime. Per ulteriori informazioni, vedere https://cluster-api.sigs.k8s.io/tasks/automated-machine-management/autoscaling.
  1. Eseguire l'autenticazione con Supervisore utilizzando kubectl.
    kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
  2. Passare al contesto dello Spazio dei nomi vSphere di destinazione che ospiterà il cluster.
    kubectl config use-context tkgs-cluster-namespace
  3. Recuperare l'elenco delle classi di macchine virtuali disponibili in Spazio dei nomi vSphere.

    È possibile utilizzare solo classi di macchine virtuali associate allo Spazio dei nomi vSphere di destinazione. Vedere Utilizzo di classi di macchine virtuali con i cluster Servizio TKG.

  4. Recuperare l'elenco delle classi di storage dei volumi persistenti disponibili.
    kubectl describe namespace VSPHERE-NAMESPACE-NAME

    Il comando restituisce i dettagli relativi allo Spazio dei nomi vSphere, inclusa la classe di storage. Il comando kubectl describe storageclasses restituisce anche classi di storage disponibili, ma richiede autorizzazioni di amministratore vSphere.

  5. Elencare le Release di Tanzu Kubernetes disponibili.
    kubectl get tkr

    Questo comando restituisce le TKr disponibili in questo Spazio dei nomi vSphere e la loro compatibilità. Vedere Amministrazione delle versioni di Kubernetes per i cluster Servizio TKG.

  6. Utilizzare le informazioni raccolte per creare un file YAML delle specifiche del cluster TKG con la configurazione di Cluster Autoscaler richiesta.
    • Utilizzare le annotazioni *-min-size e *-max-size per i nodePool worker. In questo esempio, 3 è il numero minimo e 5 è il numero massimo di nodi worker che è possibile scalare. Per impostazione predefinita, il cluster verrà creato con 3 nodi worker.
    • Utilizzare la versione secondaria corrispondente per il pacchetto di TKr e Autoscaler.
    • I valori metadata.name e metadata.namespace del cluster utilizzati sono coerenti con i valori predefiniti del pacchetto di Autoscaler. Se si modificano questi valori nella specifica del cluster, sarà necessario modificarli in autoscaler-data-values (vedere di seguito).
    #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. Applicare la specifica del cluster.
    kubectl apply -f cc-autoscaler.yaml
  8. Verificare la creazione del cluster.
    kubectl get cluster,vm
  9. Verificare la versione del nodo del cluster.
    kubectl get node

Creazione del repository dei pacchetti nel cluster TKG.

Una volta eseguito il provisioning del cluster TKG, installare la CLI di Tanzu e configurare il repository dei pacchetti.
  1. Installare la CLI di Tanzu.

    Vedere Installazione della CLI di Tanzu per l'utilizzo con i cluster Servizio TKG.

  2. Accedere al 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. Creare il repository dei pacchetti.
    #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

Installazione del pacchetto di Autoscaler

Installare il pacchetto di Cluster Autoscaler. Cluster Autoscaler verrà installato nello spazio dei nomi kube-system.
  1. Generare values.yaml predefinito utilizzando il comando della CLI di 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. Aggiornare values.yaml per l'installazione del pacchetto.
    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. Installare il pacchetto di Cluster Autoscaler tramite la CLI di 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

Test di Cluster Autoscaler

Per testare Cluster Autoscaler, distribuire un'applicazione, aumentare il numero di repliche e verificare che vengano utilizzati nodi worker aggiuntivi per gestire il carico aggiuntivo.

Vedere Esecuzione del test di Autoscaler del cluster.

Aggiornamento di un cluster ridimensionato automaticamente

Per aggiornare un cluster ridimensionato automaticamente, è innanzitutto necessario sospendere il pacchetto di Autoscaler.

Vedere Aggiornamento del cluster sottoposto ad Autoscaler tramite la CLI di Tanzu.