Consulte estas instrucciones para instalar y configurar el paquete del escalador automático de clústeres mediante la CLI de Tanzu.

Requisitos

Cumpla con los siguientes requisitos.
  • La versión mínima de vSphere es vSphere 8 U3, incluidos los hosts ESXi y vCenter
  • La versión mínima de TKr es TKr 1.27.x para vSphere 8.
  • La versión secundaria de TKr y la versión secundaria del paquete del escalador automático de clústeres deben coincidir.
Nota: Existe una relación 1 a 1 entre la versión secundaria del paquete del escalador automático y la versión secundaria de TKr. Por ejemplo, si utiliza TKr 1.27.11, debe instalar la versión 1.27.2 del escalador automático. Si la versión no coincide, se producirá un error en la reconciliación del paquete.

Configurar espacio de nombres de vSphere

Complete las siguientes tareas de requisitos previos para el aprovisionamiento del clúster de TKG.

  1. Instale o actualice el entorno a vSphere 8 U3 y TKr 1.27.x para vSphere 8.
  2. Cree o actualice una biblioteca de contenido con las versiones de Tanzu Kubernetes más recientes. Consulte Administrar las versiones de Kubernetes para clústeres de Servicio TKG.
  3. Cree y configure un espacio de nombres de vSphere para alojar el clúster de TKG. Consulte Configurar espacios de nombres de vSphere para alojar clústeres de Servicio TKG.
  4. Instale Herramientas de la CLI de Kubernetes para vSphere.

    El siguiente ejemplo se puede utilizar para instalar las herramientas desde la línea de comandos. Para obtener más instrucciones, consulte Instalar el Herramientas de la CLI de Kubernetes para 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. Ejecute kubectl y kubectl vsphere para comprobar la instalación.

Crear un clúster de TKG con anotaciones del escalador automático

Siga las instrucciones para crear un clúster de TKG. Para obtener más instrucciones, consulte Flujo de trabajo para aprovisionar clústeres de TKG mediante Kubectl.

Para utilizar el escalador automático, debe configurar el clúster con anotaciones en la etiqueta del escalador automático, como se muestra en el ejemplo de especificación de clúster que se proporciona aquí. A diferencia del aprovisionamiento de clústeres normal, no codifica de forma forzada el número de réplicas del nodo de trabajo. Kubernetes tiene una lógica predeterminada integrada para las réplicas en función de las anotaciones de tamaño máximo y mínimo del escalador automático. Dado que se trata de un clúster nuevo, se utiliza el tamaño mínimo para crear el clúster. Para obtener más información, consulte https://cluster-api.sigs.k8s.io/tasks/automated-machine-management/autoscaling.
  1. Autentíquese con Supervisor mediante kubectl.
    kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
  2. Cambie el contexto al espacio de nombres de vSphere de destino que alojará el clúster.
    kubectl config use-context tkgs-cluster-namespace
  3. Enumere las clases de máquina virtual que están disponibles en espacio de nombres de vSphere.

    Solo puede utilizar las clases de máquinas virtuales que están enlazadas al espacio de nombres de vSphere de destino. Consulte Uso de clases de máquinas virtuales con clústeres de Servicio TKG.

  4. Mencione las clases de almacenamiento de volumen persistente disponibles.
    kubectl describe namespace VSPHERE-NAMESPACE-NAME

    El comando devuelve detalles sobre el espacio de nombres de vSphere, incluida la clase de almacenamiento. El comando kubectl describe storageclasses también devuelve las clases de almacenamiento disponibles, pero requiere permisos de administrador de vSphere.

  5. Lista de versiones de Tanzu Kubernetes disponibles:
    kubectl get tkr

    Este comando devuelve los TKr disponibles en este espacio de nombres de vSphere y su compatibilidad. Consulte Administrar las versiones de Kubernetes para clústeres de Servicio TKG.

  6. Utilice la información que recopiló para crear un archivo YAML de especificación de clúster de TKG con la configuración del escalador automático de clústeres requerida.
    • Utilice las anotaciones *-min-size y *-max-size para nodePools de trabajo. En este ejemplo, 3 es el mínimo y 5 es el número máximo de nodos de trabajo que se pueden escalar. De forma predeterminada, el clúster se creará con 3 nodos de trabajo.
    • Utilice la versión secundaria coincidente para el paquete de TKr y el escalador automático.
    • Los valores de metadata.name y metadata.namespace del clúster utilizados son coherentes con los valores predeterminados del paquete del escalador automático. Si cambia estos valores en la especificación del clúster, deberá modificarlos en autoscaler-data-values (consulte a continuación).
    #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. Aplique la especificación del clúster.
    kubectl apply -f cc-autoscaler.yaml
  8. Compruebe la creación del clúster.
    kubectl get cluster,vm
  9. Compruebe la versión del nodo del clúster.
    kubectl get node

Crear el repositorio de paquetes en el clúster de TKG

Una vez que se aprovisione el clúster de TKG, instale la CLI de Tanzu y configure el repositorio de paquetes.
  1. Instale la CLI de Tanzu.

    Consulte Instalar la instancia de CLI de Tanzu para usarla con clústeres de Servicio TKG.

  2. Inicie sesión en el clúster.
    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. Cree el repositorio de paquetes.
    #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

Instalar el paquete del escalador automático

Instale el paquete del escalador automático de clústeres. El escalador automático de clústeres se instalará en el espacio de nombres kube-system.
  1. Genere el values.yaml predeterminado mediante el comando de la CLI de 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. Actualice el values.yaml para la instalación del paquete.
    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. Instale el paquete del escalador automático de clústeres mediante la CLI de 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

Probar el ajuste de escala automático de clústeres

Para probar el ajuste de escala automático de clústeres, implemente una aplicación, aumente el número de réplicas y compruebe que se escalen los nodos de trabajo adicionales para gestionar la carga adicional.

Consulte Prueba del escalador automático de clústeres.

Actualizar un clúster de ajuste de escala automático

Para actualizar un clúster de ajuste de escala automático, primero debe pausar el paquete del escalador automático.

Consulte Actualizar clúster de escalado automático mediante la CLI de Tanzu.