Lesen Sie diese Anweisungen, um das Paket für die automatische Clusterskalierung über die Tanzu-CLI zu installieren und zu konfigurieren.

Anforderungen

Beachten Sie die folgenden Anforderungen.
  • Die vSphere-Mindestversion ist vSphere 8 U3, einschließlich vCenter und ESXi-Hosts.
  • Die TKr-Mindestversion ist TKr 1.27.x für vSphere 8.
  • Die Nebenversion der TKr und die Nebenversion des Pakets für die automatische Clusterskalierung müssen mit übereinstimmen.
Hinweis: Es besteht eine 1:1-Beziehung zwischen der Nebenversion des Pakets für die automatische Skalierung und der TKr-Nebenversion. Wenn Sie beispielsweise TKr 1.27.11 verwenden, sollten Sie v1.27.2 der automatischen Skalierung installieren. Wenn die Version nicht übereinstimmt, schlägt der Paketabgleich fehl.

Konfigurieren des vSphere-Namespace

Schließen Sie die folgenden erforderlichen Aufgaben aus, um einen TKG-Cluster bereitzustellen.

  1. Installieren oder aktualisieren Sie Ihre Umgebung auf vSphere 8 U3 und TKr 1.27.x für vSphere 8.
  2. Erstellen oder aktualisieren Sie eine Inhaltsbibliothek mit den neuesten Tanzu Kubernetes-Versionen. Weitere Informationen hierzu finden Sie unter Verwalten von Kubernetes-Versionen für TKG-Dienst-Cluster.
  3. Erstellen und konfigurieren Sie einen vSphere-Namespace zum Hosten des TKG-Clusters. Weitere Informationen hierzu finden Sie unter Konfigurieren von vSphere-Namespaces für das Hosting von TKG-Dienst-Clustern.
  4. Installieren Sie den Kubernetes-CLI-Tools für vSphere.

    Das folgende Beispiel kann verwendet werden, um die Tools über die Befehlszeile zu installieren. Weitere Anleitungen finden Sie unter Installieren des Kubernetes-CLI-Tools für 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. Führen Sie kubectl und kubectl vsphere aus, um die Installation zu überprüfen.

Erstellen eines TKG-Clusters mit Anmerkungen für die automatische Skalierung

Befolgen Sie die Anweisungen, um einen TKG-Cluster zu erstellen. Weitere Anleitungen finden Sie unter Workflow zum Bereitstellen von TKG-Clustern auf mithilfe von Kubectl.

Zum Verwenden der automatischen Skalierung müssen Sie den Cluster mit Bezeichnungsanmerkungen für die automatische Skalierung konfigurieren, wie im hier bereitgestellten Beispiel für die Clusterspezifikation dargestellt. Im Gegensatz zur regulären Clusterbereitstellung wird die Anzahl der Worker-Knotenreplikate nicht hart codiert. Kubernetes verfügt über eine integrierte Standardlogik für die Replikate, die auf den Anmerkungen zur Mindest- und Maximalgröße der automatischen Skalierung basiert. Da es sich um einen neuen Cluster handelt, wird die Mindestgröße zum Erstellen des Clusters verwendet. Weitere Informationen finden Sie unter https://cluster-api.sigs.k8s.io/tasks/automated-machine-management/autoscaling.
  1. Authentifizieren Sie sich mithilfe von kubectl bei Supervisor.
    kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
  2. Wechseln Sie den Kontext zum Ziel-vSphere-Namespace, der den Cluster hostet.
    kubectl config use-context tkgs-cluster-namespace
  3. Listen Sie die VM-Klassen auf, die im vSphere-Namespace verfügbar sind.

    Sie können nur VM-Klassen verwenden, die an den Ziel-vSphere-Namespace gebunden sind. Weitere Informationen hierzu finden Sie unter Verwenden von VM-Klassen mit TKG-Dienstclustern.

  4. Listen Sie die verfügbaren Klassen persistenter Speicher-Volumes auf.
    kubectl describe namespace VSPHERE-NAMESPACE-NAME

    Der Befehl gibt Details zum vSphere-Namespace zurück, einschließlich der Speicherklasse. Der Befehl kubectl describe storageclasses gibt auch verfügbare Speicherklassen zurück, erfordert jedoch vSphere-Administratorberechtigungen.

  5. Listen Sie die verfügbaren Tanzu Kubernetes-Versionen auf.
    kubectl get tkr

    Dieser Befehl gibt die in diesem vSphere-Namespace verfügbaren TKrs und deren Kompatibilität zurück. Weitere Informationen hierzu finden Sie unter Verwalten von Kubernetes-Versionen für TKG-Dienst-Cluster.

  6. Verwenden Sie die Informationen, die Sie in Erfahrung haben, um eine YAML-Datei für die TKG-Clusterspezifikation mit der erforderlichen Konfiguration für die automatische Clusterskalierung zu erstellen.
    • Verwenden Sie die Anmerkungen *-min-size und *-max-size für die nodePools des Workers. In diesem Beispiel können zwischen 3 und 5 Worker-Knoten skaliert werden. Standardmäßig wird der Cluster mit 3 Worker-Knoten erstellt.
    • Verwenden Sie die passende Nebenversion für die TKr und für das Paket für die automatische Skalierung.
    • Die Werte metadata.name und metadata.namespace für den Cluster stimmen mit den Standardwerten des Pakets für die automatische Skalierung überein. Wenn Sie diese Werte in der Clusterspezifikation ändern, müssen Sie sie in autoscaler-data-values ändern (siehe unten).
    #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. Übernehmen Sie die Clusterspezifikation.
    kubectl apply -f cc-autoscaler.yaml
  8. Überprüfen Sie die Clustererstellung.
    kubectl get cluster,vm
  9. Überprüfen Sie die Clusterknotenversion.
    kubectl get node

Erstellen des Paket-Repositorys auf dem TKG-Cluster

Sobald der TKG-Cluster bereitgestellt wurde, installieren Sie die Tanzu-CLI, und richten Sie das Paket-Repository ein.
  1. Installieren Sie die Tanzu-CLI.

    Weitere Informationen hierzu finden Sie unter Installieren der Tanzu-CLI zur Verwendung mit TKG-Dienst-Clustern.

  2. Melden Sie sich beim Cluster an.
    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. Erstellen Sie das Paket-Repository.
    #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

Installieren des Pakets für die automatische Skalierung

Installieren Sie das Paket für die automatische Clusterskalierung. Die automatische Clusterskalierung wird im Namespace „ kube-system“ installiert.
  1. Generieren Sie die values.yaml-Standarddatei mithilfe des Tanzu-CLI-Befehls.
    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. Aktualisieren Sie die values.yaml für die Paketinstallation.
    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. Installieren Sie das Paket für die automatische Clusterskalierung über die Tanzu-CLI.
    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

Testen der automatischen Skalierung des Clusters

Stellen Sie zum Testen der automatischen Skalierung des Clusters eine Anwendung bereit, erhöhen Sie die Anzahl der Replikate, und überprüfen Sie, ob zusätzliche Worker-Knoten horizontal skaliert werden, um die zusätzliche Last zu bewältigen.

Weitere Informationen hierzu finden Sie unter Testen der automatischen Skalierung des Clusters.

Upgrade eines automatisch skalierten Clusters

Damit Sie ein Upgrade eines automatisch skalierten Clusters durchführen können, müssen Sie zuerst das Paket für die automatische Skalierung anhalten.

Weitere Informationen hierzu finden Sie unter Upgrade eines automatisch skalierten Clusters mithilfe der Tanzu-CLI.