Configuración de grupo de nodos para clústeres basados en ClusterClass

Existen diferencias en el comportamiento cuando se utilizan los comandos tanzu cluster node-pool en un clúster que utiliza una definición de ClusterClass en lugar de usar otros comandos tanzu. Lo único que todas estas API tienen en común al operar con un clúster basado en ClusterClass es la necesidad de actualizar el clúster, específicamente la topología del clúster.

tanzu cluster node-pool delete

El comando tanzu cluster node-pool delete es el cambio más sencillo. El recurso de clúster se actualiza para eliminar la definición de la implementación de la máquina con el nombre del grupo de nodos que se envía a la API de eliminación. La API aún prohíbe la eliminación del grupo de nodos final en el clúster.

tanzu cluster node-pool delete tkg-wc-vsphere -n md–0

tanzu cluster node-pool list

El comando tanzu cluster node-pool list recupera los recursos de MachineDeployment del mismo modo que en el caso del clúster basado en planes y compara estos recursos con las implementaciones de máquina en la topología del clúster. Esto permite que el comando tanzu cluster node-pool list devuelva los mismos recursos MachineDeployment con nombres actualizados para que coincidan con las implementaciones de máquina que se definen en la topología del clúster.

tanzu cluster node-pool list tkg-wc-vsphere
  NAME  NAMESPACE  PHASE      REPLICAS  READY  UPDATED  UNAVAILABLE
  md-0  default    Ready      1         1      1        0

Propiedades de los grupos de nodos en clústeres basados en ClusterClass

Las propiedades que se pueden actualizar en los grupos de nodos en los clústeres basados en ClusterClass se pueden dividir en dos tipos:

  • Propiedades directas de los recursos de topología de implementación de máquinas, como el recuento de réplicas, que modifican directamente la topología de implementación de la máquina.
  • Anulaciones de variables, que se basan en la definición de variables en el nivel ClusterClass. Al implementar un clúster basado en un ClusterClass, la definición del clúster debe especificar un número de estas variables, que se aplican a todas las implementaciones de máquinas de forma predeterminada. La topología de implementación de máquinas permite que estas variables se anulen en la implementación de máquinas.

El origen definitivo de las propiedades que se pueden modificar son los objetos ClusterClass. Los objetos TKG ClusterClass definen una variable, worker, que contiene propiedades de máquina virtual del nodo de trabajo. Esto incluye instanceType y vmSize para AWS y Azure, respectivamente. La versión de vSphere incluye propiedades para diskGiB, memoryMiB y numCPU. TKG con supervisor define variables de nivel superior para vmClass y storageClass, así como una matriz para nodePoolVolumes para personalizar los nodos de trabajo. TKG en vSphere también define una variable vcenter para actualizar las propiedades relacionadas con la instancia de vCenter Server.

Todos los objetos TKG ClusterClass definen una variable nodePoolLabels que especifica las etiquetas de nodo que se aplicarán en los nodos de trabajo.

Importante

Los comandos node-pool proporcionados por la CLI de Tanzu requieren que las variables anteriores se definan en ClusterClass para admitir la creación y la actualización de grupos de nodos. Si utiliza un ClusterClass personalizado, estas variables se requieren como definiciones de variables de nivel superior en ClusterClass. Aún es posible obtener y eliminar grupos de nodos en clústeres basados en ClusterClass personalizados mediante la CLI de Tanzu. Hay un caso especial en el que tanzu cluster node-pool create y tanzu cluster node-pool update funcionará para los objetos de ClusterClass personalizados. específicamente si la definición del grupo de nodos que se pasa a CLI de Tanzu especifica como máximo las variables replicas, az, name, workerClass y tkrResolver. En este caso, el workerClass debe coincidir con una definición de workerClass en el ClusterClass personalizado.

Actualizar un grupo de nodos existente con tanzu cluster node-pool set

Cuando el comando tanzu cluster node-pool set se denomina con el nombre de un grupo de nodos existente, la actualización solo modificará el recuento de réplicas y las etiquetas del grupo de nodos con nombre, si se proporciona. Cualquier otra opción proporcionada se ignorará. Específicamente, la topología del clúster se actualiza con un nuevo recuento de réplicas y una anulación de la variable nodePoolLabels si se proporcionan estos valores.

Cree un nuevo grupo de nodos con tanzu cluster node-pool set

La creación de grupos de nodos puede seguir una de estas dos rutas. Puede proporcionar el comando tanzu cluster node-pool set una implementación de máquina base que se utilice como punto de inicio para el nuevo grupo de nodos. Una copia profunda de la implementación de la máquina base con nombre actúa como una base en la que las propiedades proporcionadas por el usuario se colocan en capas. En general, esto significa que todas las anulaciones de variables de la implementación de máquina copiada se actualizan con los nuevos valores que se proporcionan. Esto es diferente del caso en el que no se proporciona una implementación de máquina base. En este caso, las anulaciones de variables se copian de las definiciones de variables globales definidas en la topología del clúster y, a continuación, los valores proporcionados por el usuario se colocan en capas sobre ellos. Además, cuando no proporciona una implementación de máquina base, debe proporcionar una definición workerClass y tkrResolver. Los objetos TKG ClusterClass tienen una clase tkg-worker definida de forma predeterminada y deben utilizarse a menos que haya agregado su propia definición de clase de trabajo. tkrResolver es el valor de la anotación tkr-resolver.

Crear un nuevo grupo de nodos mediante la implementación de una máquina base

Si desea utilizar una implementación de máquina base para crear un nuevo grupo de nodos, ejecute el siguiente comando:

tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml –-base-machine-deployment md-0

Con el siguiente contenido en el archivo node-pool.yml:

name: np-1
replicas: 1
nodeMachineType: t3.large

Crear un nuevo grupo de nodos sin usar una implementación de máquina base

Cree un nuevo grupo de nodos sin usar una implementación de máquina base; ejecute el siguiente comando:

tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml

Con el siguiente contenido en el archivo node-pool.yml:

name: np-1
replicas: 1
nodeMachineType: t3.large
workerClass: tkg-worker
tkrResolver: os-name=ubuntu,os-arch=amd64
check-circle-line exclamation-circle-line close-line
Scroll to top icon