En esta página, se muestra cómo realizar el ajuste de escala automático en los clústeres de Google Kubernetes Engine (GKE) estándar. Para obtener más información sobre cómo funciona el escalador automático de clústeres, consulta Escalador automático de clústeres.
Con los clústeres de Autopilot, no tienes que preocuparte por aprovisionar nodos o administrar los grupos de nodos, ya que los grupos de nodos se aprovisionan automáticamente mediante el aprovisionamiento automático de nodos, y se escalan de forma automática para cumplir con los requisitos de tus cargas de trabajo.
Usa el escalador automático de clústeres
En las siguientes secciones, se explica cómo usar el escalador automático de clústeres.
Crea un clúster con ajuste de escala automático
Puedes crear un clúster con el ajuste de escala automático habilitado mediante la CLI de Google Cloud o la consola de Google Cloud.
gcloud
Para crear un clúster con ajuste de escala automático habilitado, usa la marca --enable-autoscaling
y especifica --min-nodes
y --max-nodes
.
gcloud container clusters create CLUSTER_NAME \
--enable-autoscaling \
--num-nodes NUM_NODES \
--min-nodes MIN_NODES \
--max-nodes MAX_NODES \
--region=COMPUTE_REGION
Reemplaza lo siguiente:
CLUSTER_NAME
: es el nombre del clúster que se creará.NUM_NODES
: es la cantidad de nodos que se crearán en cada ubicación.MIN_NODES
: es la cantidad mínima de nodos que se deben escalar de forma automática para el grupo de nodos especificado por zona. A fin de especificar la cantidad mínima de nodos para todo el grupo de nodos en las versiones 1.24 y posteriores de GKE, usa--total-min-nodes
. Las marcas--total-min-nodes
y--total-max-nodes
son mutuamente excluyentes con las marcas--min-nodes
y--max-nodes
.MAX_NODES
: la cantidad máxima de nodos que se escalarán de forma automática para el grupo de nodos especificado por zona. A fin de especificar la cantidad máxima de nodos para todo el grupo de nodos en las versiones 1.24 de GKE y posteriores, usa--total-max-nodes
. Las marcas--total-min-nodes
y--total-max-nodes
son mutuamente excluyentes con las marcas--min-nodes
y--max-nodes
.COMPUTE_REGION
: es la región de Compute Engine del clúster. Para los clústeres zonales, usa--zone=COMPUTE_ZONE
.
Ejemplo: Crea un clúster con ajuste de escala automático de nodos habilitado, y nodos mínimos y máximos
El siguiente comando crea un clúster con 90 nodos o 30 nodos en cada una de las 3 zonas presentes en la región. El ajuste de escala automático de nodos está habilitado y cambia la cantidad de nodos según la carga del clúster. El escalador automático de clústeres puede reducir el tamaño del grupo de nodos predeterminado a 15 nodos o aumentar el grupo de nodos a un máximo de 50 nodos por zona.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes=30 \
--min-nodes=15 --max-nodes=50 \
--region=us-central
Ejemplo: Crea un clúster con el ajuste de escala automático de nodos habilitado y el total de nodos
El siguiente comando crea un clúster con 30 nodos o 10 nodos en cada una de las 3 zonas presentes en la región. El ajuste de escala automático de nodos está habilitado y cambia la cantidad de nodos según la carga del clúster. En este ejemplo, el tamaño total del clúster puede ser de entre 10 y 60 nodos, sin importar si se distribuye entre zonas.
gcloud container clusters create my-cluster --enable-autoscaling \
--num-nodes 10 \
--region us-central1 \
--total-min-nodes 10 --total-max-nodes 60
Console
Para crear un clúster nuevo en el que el grupo de nodos predeterminado tenga habilitado el ajuste de escala automático, haz lo siguiente:
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
Haz clic en add_box Crear.
Configura tu clúster como desees.
En el panel de navegación, en Grupos de nodos, haz clic en default-pool.
Selecciona la casilla de verificación Habilitar ajuste de escala automático.
Cambia los valores de los campos Cantidad mínima de nodos y Cantidad máxima de nodos.
Haz clic en Crear.
Agrega un grupo de nodos con ajuste de escala automático
Puedes crear un grupo de nodos con el ajuste de escala automático habilitado mediante la CLI de gcloud o la consola de Google Cloud.
gcloud
Para agregar un grupo de nodos con ajuste de escala automático a un clúster existente, usa el siguiente comando:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--enable-autoscaling \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--region=COMPUTE_REGION
Reemplaza lo siguiente:
POOL_NAME
: es el nombre del grupo de nodos deseado.CLUSTER_NAME
: es el nombre del clúster en el que se creó el grupo de nodos.MIN_NODES
: es la cantidad mínima de nodos que se deben escalar de forma automática para el grupo de nodos especificado por zona. A fin de especificar la cantidad mínima de nodos para todo el grupo de nodos en las versiones 1.24 y posteriores de GKE, usa--total-min-nodes
. Las marcas--total-min-nodes
y--total-max-nodes
son mutuamente excluyentes con las marcas--min-nodes
y--max-nodes
.MAX_NODES
: la cantidad máxima de nodos que se escalarán de forma automática para el grupo de nodos especificado por zona. A fin de especificar la cantidad máxima de nodos para todo el grupo de nodos en las versiones 1.24 de GKE y posteriores, usa--total-max-nodes
. Las marcas--total-min-nodes
y--total-max-nodes
son mutuamente excluyentes con las marcas--min-nodes
y--max-nodes
.COMPUTE_REGION
: es la región de Compute Engine del clúster. Para los clústeres zonales, usa--zone=COMPUTE_ZONE
.
Ejemplo: Agrega un grupo de nodos con el ajuste de escala automático de nodos habilitado
El siguiente comando crea un grupo de nodos con ajuste de escala automático que escala el grupo de nodos a un máximo de 5 nodos y un mínimo de 1:
gcloud container node-pools create my-node-pool \
--cluster my-cluster \
--enable-autoscaling \
--min-nodes 1 --max-nodes 5 \
--zone us-central1-c
Console
Para agregar un grupo de nodos con ajuste de escala automático a un clúster existente, haz lo siguiente:
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.
Haz clic en add_box Agregar grupo de nodos.
Configura el grupo de nodos como desees.
En Tamaño, selecciona la casilla de verificación Habilitar ajuste de escala automático.
Cambia los valores de los campos Cantidad mínima de nodos y Cantidad máxima de nodos.
Haz clic en Crear.
Habilita el ajuste de escala automático para un grupo de nodos existente
Puedes habilitar el ajuste de escala automático para un grupo de nodos existente con la CLI de gcloud o la consola de Google Cloud.
gcloud
A fin de habilitar el ajuste de escala automático para un grupo de nodos existente, usa el siguiente comando:
gcloud container clusters update CLUSTER_NAME \
--enable-autoscaling \
--node-pool=POOL_NAME \
--min-nodes=MIN_NODES \
--max-nodes=MAX_NODES \
--region=COMPUTE_REGION
Reemplaza lo siguiente:
CLUSTER_NAME
: es el nombre del clúster que se actualizará.POOL_NAME
: es el nombre del grupo de nodos deseado. Si solo tienes un grupo de nodos, proporcionadefault-pool
como valor.MIN_NODES
: es la cantidad mínima de nodos que se deben escalar de forma automática para el grupo de nodos especificado por zona. A fin de especificar la cantidad mínima de nodos para todo el grupo de nodos en las versiones 1.24 y posteriores de GKE, usa--total-min-nodes
. Las marcas--total-min-nodes
y--total-max-nodes
son mutuamente excluyentes con las marcas--min-nodes
y--max-nodes
.MAX_NODES
: la cantidad máxima de nodos que se escalarán de forma automática para el grupo de nodos especificado por zona. A fin de especificar la cantidad máxima de nodos para todo el grupo de nodos en las versiones 1.24 de GKE y posteriores, usa--total-max-nodes
. Las marcas--total-min-nodes
y--total-max-nodes
son mutuamente excluyentes con las marcas--min-nodes
y--max-nodes
.COMPUTE_REGION
: es la región de Compute Engine del clúster. Para los clústeres zonales, usa--zone=COMPUTE_ZONE
.
Console
Para habilitar el ajuste de escala automático en un grupo de nodos existente, sigue estos pasos:
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.
Haz clic en la pestaña Nodos.
En Grupos de nodos, haz clic en el nombre del grupo de nodos que deseas modificar y, luego, en edit Editar.
En Tamaño, selecciona la casilla de verificación Habilitar ajuste de escala automático.
Cambia los valores de los campos Cantidad mínima de nodos y Cantidad máxima de nodos.
Haz clic en Guardar.
Verifica que el ajuste de escala automático para el grupo de nodos existente esté habilitado
Debes verificar que tu clúster use el ajuste de escala automático con la CLI de Google Cloud o la consola de Google Cloud.
gcloud
Describe los grupos de nodos del clúster:
gcloud container node-pools describe NODE_POOL_NAME --cluster=CLUSTER_NAME |grep autoscaling -A 1
Reemplaza lo siguiente:
POOL_NAME
: el nombre del grupo de nodos nuevo que elijas.CLUSTER_NAME
: el nombre del clúster
Si el ajuste de escala automático está habilitado, el resultado es similar al siguiente:
autoscaling:
enabled: true
Console
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que deseas verificar.
Haz clic en la pestaña Nodos.
En Grupos de nodos, verifica que el estado del grupo de nodos sea
Autoscalling
.
Crea un grupo de nodos que priorice la optimización de las reservas sin usar
Puedes usar la marca --location_policy=ANY
cuando crees un grupo de nodos para indicarle al escalador automático del clúster que priorice el uso de las reservas sin usar:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location_policy=ANY
Reemplaza lo siguiente:
POOL_NAME
: el nombre del grupo de nodos nuevo que elijas.CLUSTER_NAME
: el nombre del clúster
Inhabilita el ajuste de escala automático para un grupo de nodos existente
Puedes inhabilitar el ajuste de escala automático para un grupo de nodos existente con la CLI de gcloud o la consola de Google Cloud.
gcloud
A fin de inhabilitar el ajuste de escala automático para un grupo de nodos específico, usa la marca --no-enable-autoscaling
:
gcloud container clusters update CLUSTER_NAME \
--no-enable-autoscaling \
--node-pool=POOL_NAME \
--region=COMPUTE_REGION
Reemplaza lo siguiente:
CLUSTER_NAME
: es el nombre del clúster que se actualizará.POOL_NAME
: es el nombre del grupo de nodos deseado.COMPUTE_REGION
: es la región de Compute Engine del clúster. Para los clústeres zonales, usa--zone=COMPUTE_ZONE
.
El tamaño del clúster se establece en el tamaño del grupo de nodos predeterminado actual del clúster, que se puede actualizar de forma manual.
Console
Para inhabilitar el ajuste de escala automático en un grupo de nodos específico, sigue estos pasos:
Ve a la página de Google Kubernetes Engine en la consola de Google Cloud.
En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.
Haz clic en la pestaña Nodos.
En Grupos de nodos, haz clic en el nombre del grupo de nodos que deseas modificar y, luego, en edit Editar.
En Tamaño, desmarca la casilla de verificación Habilitar ajuste de escala automático.
Haz clic en Guardar.
Cambia el tamaño de un grupo de nodos
Para los clústeres con el ajuste de escala automático habilitado, el escalador automático del clúster cambia el tamaño de los grupos de nodos de forma automática dentro de los límites especificados por el tamaño mínimo (--min-nodes
) y el tamaño máximo (--max-nodes
) o el tamaño total mínimo (--total-min-nodes
) y el tamaño total máximo (--total-max-nodes
). Estas marcas son mutuamente excluyentes. No puedes cambiar el tamaño de un grupo de nodos de forma manual modificando estos valores.
Si deseas cambiar de forma manual el tamaño de un grupo de nodos en un clúster que tiene habilitado el ajuste de escala automático, haz lo siguiente:
- Inhabilita el ajuste de escala automático en el grupo de nodos.
- Cambia el tamaño del clúster de forma manual.
- Vuelve a habilitar el ajuste de escala automático y especifica el tamaño mínimo y máximo del grupo de nodos.
Evita que los Pods se programen en nodos seleccionados
Puedes usar taints startup
o status
para evitar que se programen Pods en nodos seleccionados, según el caso de uso.
Esta función está disponible en GKE en la versión 1.28 y versiones posteriores.
Taints de inicio
Usa taints startup
cuando haya una operación que se deba completar antes de que cualquier Pod pueda ejecutarse en el nodo. Por ejemplo, los Pods no deben ejecutarse hasta que finalice la instalación de los controladores en el nodo.
El escalador automático del clúster trata a los nodos con taints startup
como no listos, pero lo tiene en cuenta durante la lógica de escalamiento vertical, en el caso de que estén listos en breve.
Los taints de estado se definen como todos los taints con el prefijo startup-taint.cluster-autoscaler.kubernetes.io/
Taints de estado
Usa taints status
cuando GKE no deba usar un nodo determinado para ejecutar Pods.
El escalador automático de clústeres considera que los nodos contaminados con taints status
están listos, pero los ignora durante la lógica de escalamiento vertical. Aunque el nodo con taint está listo, no se debe ejecutar ningún Pod. Si los Pods necesitan más recursos, GKE escala verticalmente el clúster y, además, ignora los nodos con taints.
Los taints de estado se definen como todos los taints con el prefijo status-taint.cluster-autoscaler.kubernetes.io/
Taints de omisión
Los taints de omisión se definen como todos los taints con el prefijo ignore-taint.cluster-autoscaler.kubernetes.io/
Soluciona problemas
Para obtener sugerencias sobre cómo solucionar problemas, consulta las siguientes páginas:
- Solución de problemas relacionados con el escalador automático de clústeres que no reduce la escala verticalmente.
- Soluciona problemas relacionados con el escalador automático de clústeres que no escala verticalmente.
¿Qué sigue?
- Obtén más información sobre el escalador automático de clústeres.
- Consulta eventos del escalador automático de clústeres