Clústeres de nodo único en vSphere

Tanzu Kubernetes Grid (TKG) admite clústeres de nodo único. Los clústeres de nodo único son clústeres de carga de trabajo en los que las cargas de trabajo alojadas se ejecutan junto con la infraestructura del plano de control en un único host ESXi.

Para minimizar aún más el espacio de un clúster de nodo único, puede crearlo a partir de una versión tiny de Tanzu Kubernetes (TKr), que tiene un OVA muy pequeño de Ubuntu o Photon para su sistema operativo base. Estos clústeres se denominan clústeres de nodo único mínimos.

Los clústeres de nodo único son clústeres de carga de trabajo basados en clases que se ejecutan en vSphere y se implementan mediante clústeres de administración independientes.

Los clústeres de nodo único son totalmente compatibles con Telco Cloud Automation (TCA).

Nota

No puede utilizar Tanzu Mission Control (TMC) para crear y administrar clústeres de nodo único, pero esta capacidad está planificada para una versión futura de TMC.

Los casos prácticos de clúster de nodo único incluyen:

  • Clústeres de nodo único mínimos
    • Entornos de host con limitaciones de recursos, como sitios de celdas de Edge y otras ubicaciones de Edge
  • Clústeres de nodo único estándar
    • Entornos experimentales de prueba y desarrollo

Compatibilidad

Los clústeres de nodo único son compatibles con los siguientes entornos y componentes:

Categoría Opciones admitidas
Infraestructura vSphere 7, vSphere 8
Sistema operativo del nodo Ubuntu 20.04, Photon 3
Tamaño del nodo small
Paquete Administrador de certificados, Fluent Bit, Multus, Prometheus, Whereabouts
Proveedor de endpoint del plano de control Kube-Vip*
Equilibrador de carga de carga de trabajo Kube-Vip*
Tipo de clúster de carga de trabajo Basado en clases
CNI Antrea, Calico
Modo de conectividad Conectado, restringido por Internet

*NSX Advanced Load Balancer (ALB) no es compatible con clústeres de nodo único en TKG v2.3.

Requisitos previos

Crear un clúster de nodo único mínimo

Para crear un clúster de carga de trabajo de nodo único en vSphere que utilice una versión tiny de Tanzu Kubernetes (TKr) para minimizar su espacio:

  1. Prepare el archivo OVA:

    1. Vaya a VMware Customer Connect e inicie sesión con las credenciales de VMware Customer Connect.

    2. Vaya a Descargas de productos de Tanzu Kubernetes Grid v2.3.1.

    3. En Archivos OVA de TKG Tiny (Tiny TKG OVAs), descargue el archivo OVA Tiny que se utilizará en el clúster de nodo único:

      • Archivo OVA Tiny Photon v3 Kubernetes v1.26.8

      • Archivo OVA Tiny Ubuntu 2004 Kubernetes v1.26.8

    4. Importe el archivo OVA Tiny en el entorno de vSphere y conviértalo en una plantilla de máquina virtual como se describe en Importar la plantilla de imagen base en vSphere.

  2. Cree el clúster de carga de trabajo de nodo único.

    Nota

    Para crear un mínimo de clústeres de nodo único, debe ejecutar el comando tanzu cluster create con una especificación de objeto de estilo Kubernetes. Si comienza con un archivo de configuración de clúster plano, debe seguir un proceso de dos pasos descrito en Crear un clúster basado en clases para generar la especificación del objeto y, a continuación, editarlo como se describe a continuación antes de ejecutar tanzu cluster create una segunda vez para crear el clúster.

    1. Establezca las variables de entorno como se establece en este ejemplo:

      export CLUSTER_NAME='workload-snc'
      export CLUSTER_NAMESPACE='default'
      export CLUSTER_CIDR='100.96.0.0/11'
      export SERVICE_CIDR='100.64.0.0/13'
      export VSPHERE_CONTROL_PLANE_ENDPOINT=10.185.11.134
      export VSPHERE_SERVER=10.185.12.154
      export VSPHERE_USERNAME='[email protected]'
      export VSPHERE_PASSWORD=<encoded:QWRtaW4hMjM=>
      export VSPHERE_DATACENTER='/dc0'
      export VSPHERE_DATASTORE='/dc0/datastore/sharedVmfs-0'
      export VSPHERE_FOLDER='/dc0/vm'
      export VSPHERE_NETWORK='/dc0/network/VM Network'
      export VSPHERE_RESOURCE_POOL='/dc0/host/cluster0/Resources'
      export VSPHERE_SSH_AUTHORIZED_KEY=ssh-rsa AAAAB3[...]tyaw== [email protected]
      export VSPHERE_TLS_THUMBPRINT=47:F5:83:8E:5D:36:[...]:72:5A:89:7D:29:E5:DA
      export VSPHERE_CONTROL_PLANE_NUM_CPUS='2'
      export VSPHERE_CONTROL_PLANE_MEM_MIB='4096'
      export VSPHERE_CONTROL_PLANE_DISK_GIB='20'
      export TKG_CUSTOM_IMAGE_REPOSITORY='projects.registry.vmware.com/tkg'
      export OS_NAME='photon'
      export TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE="LS0tL[...]0tLQo="
      
    2. Cree un manifiesto vsphere-snc.yaml con especificaciones del objeto Cluster y Secret que hagan referencia a las variables anteriores:

      apiVersion: cluster.x-k8s.io/v1beta1
      kind: Cluster
      metadata:
        annotations:
          tkg.tanzu.vmware.com/cluster-controlplane-endpoint: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          run.tanzu.vmware.com/resolve-tkr: 'tkr.tanzu.vmware.com/tiny'
        labels:
          tkg.tanzu.vmware.com/cluster-name: ${CLUSTER_NAME}
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      spec:
        clusterNetwork:
          pods:
            cidrBlocks:
            - ${CLUSTER_CIDR}
          services:
            cidrBlocks:
            - ${SERVICE_CIDR}
        topology:
          class: tkg-vsphere-default-v1.1.0
          controlPlane:
            metadata:
              annotations:
                run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=${OS_NAME}
            replicas: 1
          variables:
          - name: controlPlaneTaint
            value: false
          - name: auditLogging
            value:
              enabled: false
          - name: apiServerEndpoint
            value: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          - name: aviAPIServerHAProvider
            value: false
          - name: imageRepository
            value:
              host: ${TKG_CUSTOM_IMAGE_REPOSITORY}
          - name: trust
            value:
              additionalTrustedCAs:
              - data: ${TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE}
                name: imageRepository
          - name: vcenter
            value:
              cloneMode: fullClone
              datacenter: ${VSPHERE_DATACENTER}
              datastore: ${VSPHERE_DATASTORE}
              folder: ${VSPHERE_FOLDER}
              network: ${VSPHERE_NETWORK}
              resourcePool: ${VSPHERE_RESOURCE_POOL}
              server: ${VSPHERE_SERVER}
              storagePolicyID: ""
              tlsThumbprint: ${VSPHERE_TLS_THUMBPRINT}
          - name: user
            value:
              sshAuthorizedKeys:
              - ${VSPHERE_SSH_AUTHORIZED_KEY}
          - name: controlPlane
            value:
              machine:
                diskGiB: ${VSPHERE_CONTROL_PLANE_DISK_GIB}
                memoryMiB: ${VSPHERE_CONTROL_PLANE_MEM_MIB}
                numCPUs: ${VSPHERE_CONTROL_PLANE_NUM_CPUS}
          version: v1.26.8+vmware.1-tiny.2
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      stringData:
        password: ${VSPHERE_PASSWORD}
        username: ${VSPHERE_USERNAME}
      EOF
      

      Tenga en cuenta lo siguiente:

      • El ajuste metadata.annotations para run.tanzu.vmware.com/resolve-tkr
      • El ajuste topology.variables para controlPlaneTaint
      • No hay ningún bloqueo topology.workers, solo topology.controlPlane
      • Para versiones anteriores de TKG, eltopology.version debería ser v1.26.5+vmware.1-tiny.2 para v2.3.1,v1.25.7+vmware.1-tiny.1 para v2.2.0, v1.24.10+vmware.1-tiny.1 para v2.1.1 yv1.24.9+vmware.1-tiny.2 para v2.1.0.
    3. (Opcional) Para configurar el clúster de modo que use Calico como CNI en lugar de la CNI de Antrea predeterminada, siga las instrucciones para clústeres de nodo único en CNI de Calico para clústeres de carga de trabajo basados en clases de nodo único o supervisor.

    4. Aplique el manifiesto de objeto Cluster:

      tanzu cluster create -f vsphere-snc.yaml
      

Crear un clúster de nodo único estándar

Para crear un clúster de carga de trabajo de nodo único en vSphere que utilice un TKr de Ubuntu o Photon estándar:

  1. Cree un archivo de configuración plano para el clúster de carga de trabajo como se describe en Archivos de configuración de vSphere con clúster de administración independiente.

  2. Ejecute tanzu cluster create con la marca --dry-run para convertir el archivo de configuración plano en una especificación de objeto Cluster estilo Kubernetes, como se describe en Crear una especificación de objeto.

  3. Edite la especificación del objeto Cluster para incluir la siguiente configuración:

    • En topology.controlPlane

      replicas: 1
      
    • Sin bloqueo de topology.workers; si está presente, elimínelo.

    • En topology.variables

      - name: controlPlaneTaint
        value: false
      
  4. Ejecute tanzu cluster create con la especificación del objeto Cluster modificada como se describe en Crear un clúster basado en clases desde la especificación del objeto.

check-circle-line exclamation-circle-line close-line
Scroll to top icon