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
Las propiedades que se pueden actualizar en los grupos de nodos en los clústeres basados en ClusterClass
se pueden dividir en dos tipos:
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.
ImportanteLos comandos
node-pool
proporcionados por la CLI de Tanzu requieren que las variables anteriores se definan enClusterClass
para admitir la creación y la actualización de grupos de nodos. Si utiliza unClusterClass
personalizado, estas variables se requieren como definiciones de variables de nivel superior enClusterClass
. Aún es posible obtener y eliminar grupos de nodos en clústeres basados enClusterClass
personalizados mediante la CLI de Tanzu. Hay un caso especial en el quetanzu cluster node-pool create
ytanzu cluster node-pool update
funcionará para los objetos deClusterClass
personalizados. específicamente si la definición del grupo de nodos que se pasa a CLI de Tanzu especifica como máximo las variablesreplicas
,az
,name
,workerClass
ytkrResolver
. En este caso, elworkerClass
debe coincidir con una definición deworkerClass
en elClusterClass
personalizado.
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.
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
.
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
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