Administrar grupos de nodos de diferentes tipos de máquina virtual

En este tema se explica cómo crear, actualizar y eliminar grupos de nodos en un clúster de carga de trabajo creado por Tanzu Kubernetes Grid v2.0 en vSphere 8 con supervisor. Los grupos de nodos permiten que un único clúster de carga de trabajo contenga y administre distintos tipos de nodos para satisfacer las diversas necesidades de diferentes aplicaciones.

Por ejemplo, un clúster puede utilizar nodos con alta capacidad de almacenamiento para ejecutar un almacén de datos y nodos de nodos para procesar solicitudes de aplicaciones.

Acerca de los grupos de nodos

Los grupos de nodos definen propiedades para los conjuntos de nodos de trabajo que utiliza un clúster de carga de trabajo.

Algunas propiedades del grupo de nodos dependen de las opciones de máquina virtual que están disponibles en la infraestructura subyacente, pero todos los grupos de nodos en todas las infraestructuras de nube comparten las siguientes propiedades:

  • name: un identificador único para el grupo de nodos, que se utiliza para operaciones como actualizaciones y eliminación.
  • replicas: el número de nodos del grupo, todos los cuales comparten las mismas propiedades.
  • labels: los pares de clave/valor se establecen como metadatos en los nodos para que las cargas de trabajo coincidan con los nodos del grupo. Para obtener más información y etiquetas de ejemplo, consulte Etiquetas y selectores en la documentación de Kubernetes.

Todos los clústeres de carga de trabajo se crean con un primer grupo de nodos original. Cuando se crean grupos de nodos adicionales para un clúster, como se describe a continuación, el primer grupo de nodos proporciona valores predeterminados para las propiedades no establecidas en las nuevas definiciones de grupos de nodos.

Enumerar grupos de nodos

Para inspeccionar los grupos de nodos disponibles actualmente en un clúster, ejecute:

tanzu cluster node-pool list CLUSTER-NAME

Esto devuelve una lista de todos los grupos de nodos del clúster y el estado de las réplicas en cada grupo de nodos.

Crear un grupo de nodos

Para crear un grupo de nodos en un clúster:

  1. Cree un archivo de configuración para el grupo de nodos. Consulte a continuación un archivo de configuración de ejemplo. Para obtener una lista completa de las propiedades de configuración, consulte Propiedades de configuración.

  2. Cree el grupo de nodos definido por el archivo de configuración:

    tanzu cluster node-pool set CLUSTER-NAME -f /PATH/TO/CONFIG-FILE
    

    Opciones:

    • --namespace especifica el espacio de nombres del clúster. El valor predeterminado es default
    • --machine-deployment-base especifica el objeto base MachineDeployment desde el que se creará el nuevo grupo de nodos.
      • Establezca este valor como un identificador MachineDeployment como aparece en el resultado del clúster de tanzu cluster get en Details.
      • El valor predeterminado es el primero en la matriz del clúster de nodos de trabajo MachineDeployment objetos, representados internamente como workerMDs[0].

Configuración

Además de las propiedades anteriores de name, replicas y labels, los archivos de configuración de los grupos de nodos en vSphere pueden incluir un bloque vsphere para definir propiedades opcionales específicas para configurar máquinas virtuales en vSphere.

Ejemplo de definición de grupo de nodos para vSphere clúster:

name: tkg-wc-oidc-md-1
replicas: 4
labels:
  key1: value1
  key2: value2
vsphere:
  memoryMiB: 8192
  diskGiB: 64
  numCPUs: 4
  datacenter: dc0
  datastore: iscsi-ds-0
  storagePolicyName: name
  folder: vmFolder
  resourcePool: rp-1
  vcIP: 10.0.0.1
  template: templateName
  cloneMode: clone-mode
  network: network-name

Los valores que no se establecen en el bloque vsphere se heredan de los valores del primer grupo de nodos del clúster.

Para el valor vcIP, los grupos de nodos del clúster de carga de trabajo deben ejecutarse en la misma instancia de vCenter que el plano de control del clúster.

Para obtener más información sobre las propiedades storageClass, tkr y vmClass, consulte TanzuKubernetesCluster v1alpha3 API – Annotated en la documentación de vSphere with Tanzu.

Propiedades de configuración

En la siguiente tabla se enumeran todas las propiedades que puede definir en un archivo de configuración de grupo de nodos para clústeres de carga de trabajo.

Nombre Tipo Objeto de clúster Notas
name cadena Cualquiera Nombre del grupo de nodos que se va a crear o actualizar.
replicas entero Cualquiera Número de nodos en el grupo de nodos.
labels map[string]string Cualquiera Etiquetas que se establecerán en el nodo mediante kubeletExtraArgs (‐‐node-labels).
taints []corev1. Mancha Cualquiera Manchas que se aplicarán al nodo.
vmClass cadena Cualquiera Nombre de un vmClass de Kubernetes. Coincide con el vmClass definido en el clúster de TKC. Esta clase establece la CPU y la memoria disponibles para el nodo. Para ver una lista de las clases de máquinas virtuales disponibles, ejecute kubectl describe virtualmachineclasses.
storageClass cadena Cualquiera Nombre de un kubernetes StorageClass que se utilizará para el grupo de nodos. Esta clase se aplica a los discos que almacenan los sistemas de archivos raíz de los nodos. Para ver una lista de las clases de almacenamiento disponibles, ejecute kubectl describe storageclasses.
volumes:
  • name, cadena
  • mountPath, cadena
  • capacity, corev1. Lista de recursos
  • storageClass, cadena
[]objeto Cualquiera Volúmenes que se utilizarán para los nodos.
tkr:
  • reference, cadena
objeto Basado en TKC Nombre del TKR que se utilizará para el grupo de nodos. Por ejemplo, v1.23.8—vmware.2-tkg.2.
tkrResolver cadena Basado en clases La anotación tkr-resolve de la definición del clúster.
Solo es necesario si no se establece la marca –base-machine-deployment.
nodeDrainTimeout metav1. Duración Cualquiera Tiempo de espera de purga de nodo.
vsphere objeto Cualquiera Ver a continuación.
workerClass cadena Basado en clases El workerClass del ClusterClass que desea que use el grupo de nodos.
Solo es necesario si no se establece la marca –base-machine-deployment.

Actualizar grupos de nodos

Si solo necesita cambiar el número de nodos en un grupo de nodos, utilice el comando de la CLI de Tanzu en Escalar nodos solo a continuación. Si también desea agregar etiquetas, siga el procedimiento descrito en Agregar etiquetas y escalar nodos.

Precaución: Con estos procedimientos, no cambie las etiquetas existentes, la zona de disponibilidad, el tipo de instancia de nodo (en AWS o Azure) ni las propiedades de máquina virtual (en vSphere) del grupo de nodos. Esto puede tener efectos negativos graves en las cargas de trabajo en ejecución. Para cambiar estas propiedades, cree un nuevo grupo de nodos con estas propiedades y migre las cargas de trabajo al nuevo grupo de nodos antes de eliminar el original.

Escalar nodos solo

Para cambiar el número de nodos en un grupo de nodos, ejecute:

tanzu cluster scale CLUSTER-NAME -p NODE-POOL-NAME -w NODE-COUNT

Donde:

  • CLUSTER-NAME es el nombre del clúster de carga de trabajo.
  • NODE-POOL-NAME es el nombre del grupo de nodos.
  • NODE-COUNT es el número de nodos, como un número entero, que pertenecen a este grupo de nodos.

Agregar etiquetas y escalar nodos

Puede agregar etiquetas a un grupo de nodos y escalar sus nodos al mismo tiempo a través del archivo de configuración del grupo de nodos.

  1. Abra el archivo de configuración del grupo de nodos que desea actualizar.

  2. Si va a aumentar o reducir el número de nodos en este grupo de nodos, actualice el número después de replicas.

  3. Si va a agregar etiquetas, aplíquelas a continuación de labels. Por ejemplo:

    labels:
      key1: value1
      key2: value2
    
  4. Guarde el archivo de configuración del grupo de nodos.

  5. En un terminal, ejecute:

    tanzu cluster node-pool set CLUSTER-NAME -f /PATH/TO/CONFIG-FILE
    

    Si CLUSTER-NAME en el comando y name en el archivo de configuración coinciden con un grupo de nodos del clúster, este comando actualiza el grupo de nodos existente en lugar de crear uno nuevo.

Eliminar grupos de nodos

Para eliminar un grupo de nodos, ejecute:

tanzu cluster node-pool delete CLUSTER-NAME -n NODE-POOL-NAME

Donde CLUSTER-NAME es el nombre del clúster de carga de trabajo y NODE-POOL-NAME es el nombre de grupo del nodo.

De forma opcional, utilice --namespace para especificar el espacio de nombres del clúster. El valor predeterminado es default

Precaución: Migre las cargas de trabajo de estos nodos a otros nodos antes de realizar esta operación. tanzu cluster node-pool delete no migra las cargas de trabajo fuera de los nodos antes de eliminarlas.

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