Acerca de los grupos de nodos


En esta página, se explica cómo funcionan los grupos de nodos en Google Kubernetes Engine (GKE).

Si quieres obtener información sobre cómo administrar grupos de nodos, consulta Cómo agregar y administrar grupos de nodos.

Descripción general

Un grupo de nodos es un conjunto de nodos dentro de un clúster que tienen la misma configuración. Los grupos de nodos usan una especificación NodeConfig. Cada nodo del grupo tiene una etiqueta de nodo de Kubernetes, cloud.google.com/gke-nodepool, que tiene el nombre del grupo de nodos como su valor.

Cuando creas un clúster, la cantidad y el tipo de nodos que especificas se usan para crear el primer grupo de nodos del clúster. Después, puedes agregar grupos de nodos personalizados adicionales de tamaños y tipos diferentes a tu clúster. Todos los nodos en un grupo de nodos dado son idénticos unos a otros.

Por ejemplo, podrías crear un grupo de nodos en tu clúster con SSD locales, una plataforma de CPU mínima, VM puntuales, una imagen de nodo específica, diferentes tipos de máquinas o una interfaz de red virtual más eficiente.

Los grupos de nodos personalizados son útiles cuando necesitas programar los pods que requieren más recursos que otros, como más memoria o más espacio en el disco local. Si quieres controlar dónde se programan los pods, puedes usar taints de nodos.

Puedes crear, actualizar y borrar grupos de nodos de forma individual sin afectar a todo el clúster. No puedes configurar un solo nodo en un grupo de nodos; todos los cambios en la configuración afectan a todos los nodos en el grupo de nodos.

Para cambiar el tamaño de los grupos de nodos de un clúster, agrega o quita nodos.

De forma predeterminada, todos los grupos de nodos nuevos ejecutan la misma versión de Kubernetes que el plano de control. Los grupos de nodos existentes se pueden actualizar de forma manual o actualizar de forma automática. También puedes ejecutar varias versiones de nodos de Kubernetes en cada grupo de nodos en tu clúster, actualizar cada grupo de nodos de manera independiente y orientar a grupos de nodos diferentes para implementaciones específicas.

Implementa servicios en grupos de nodos específicos

Cuando defines un servicio, puedes controlar de forma indirecta en qué grupo de nodos se implementará. El grupo de nodos no depende de la configuración del servicio, pero sí de la configuración del Pod.

Nodos en clústeres multizonales o regionales

Si creaste un clúster multizonal o regional, todos los grupos de nodos se replican de forma automática en esas zonas. Cualquier grupo de nodos nuevo se crea de forma automática en esas zonas. Del mismo modo, cualquier proceso de borrado también borra esos grupos de nodos de las zonas adicionales.

Ten en cuenta que, debido a este efecto multiplicativo, esto puede consumir más de la cuota de tu proyecto para una región específica cuando se crean los grupos de nodos.

Borra grupos de nodos

Cuando borras un grupo de nodos, GKE vacía todos los nodos del grupo y, así, borra y reprograma todos los Pods. Para el proceso de vaciado, GKE expulsa los Pods de cada nodo del grupo de nodos. Cada nodo de un grupo de nodos se vacía a través de la expulsión de Pods con un período de finalización ordenado asignado de MAX_POD. MAX_POD es el valor máximo establecido para terminationGracePeriodSeconds en los Pods programados del nodo, con un límite de una hora. La configuración de PodDisruptionBudget no se respeta durante la eliminación del grupo de nodos.

Si los Pods tienen selectores de nodo específicos, pueden mantenerse en una condición no programable si ningún otro nodo en el clúster cumple con los requisitos.

Sin embargo, cuando se borra un clúster, GKE no sigue este proceso de finalizar con facilidad los nodos a través de su desvío. Si las cargas de trabajo que se ejecutan en un clúster deben finalizarse de forma correcta, usa kubectl drain para limpiarlas antes de borrar el clúster.

Para borrar un grupo de nodos, consulta Borra un grupo de nodos.

¿Qué sigue?