Agrega y administra grupos de nodos


En esta página, se muestra cómo agregar y realizar operaciones en grupos de nodos mediante la ejecución de los clústeres de Google Kubernetes Engine (GKE). Para obtener información sobre cómo funcionan los grupos de nodos, consulta Grupos de nodos.

Antes de comenzar

Antes de comenzar, asegúrate de haber realizado las siguientes tareas:

  • Asegúrate de que habilitaste la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Asegúrate de que instalaste el SDK de Cloud.
  • Establece la configuración predeterminada de la herramienta de línea de comandos de gcloud para tu proyecto mediante uno de los siguientes métodos:
    • Usa gcloud init si deseas ver una explicación sobre cómo configurar los valores predeterminados del proyecto.
    • Usa gcloud config para configurar el ID, la zona y la región del proyecto de manera individual.

    gcloud init

    1. Ejecuta gcloud init y sigue las instrucciones:

      gcloud init

      Si usas SSH en un servidor remoto, usa la marca --console-only para evitar que el comando abra un navegador:

      gcloud init --console-only
    2. Sigue las instrucciones para autorizar a la herramienta de gcloud a usar tu cuenta de Google Cloud.
    3. Crea una configuración nueva o selecciona una existente.
    4. Elige un proyecto de Google Cloud.
    5. Elige una zona de Compute Engine predeterminada.
    6. Elige una región de Compute Engine predeterminada.

    gcloud config

    1. Establece tu ID del proyecto predeterminado:
      gcloud config set project PROJECT_ID
    2. Configura la región de Compute Engine predeterminada (por ejemplo, us-central1):
      gcloud config set compute/region COMPUTE_REGION
    3. Configura la zona de Compute Engine predeterminada (por ejemplo, us-central1-c):
      gcloud config set compute/zone COMPUTE_ZONE
    4. Actualiza gcloud a la versión más reciente:
      gcloud components update

    Cuando configuras las ubicaciones predeterminadas, puedes evitar errores en la herramienta gcloud como el siguiente: One of [--zone, --region] must be supplied: Please specify location.

Agregue un grupo de nodos

Puedes agregar un grupo de nodos nuevo a un clúster de GKE Standard con la herramienta de gcloud o Cloud Console. GKE también es compatible con el aprovisionamiento automático de nodos, que administra de forma automática los grupos de nodos de tu clúster según los requisitos de escalamiento.

Como práctica recomendada en ambos casos, te recomendamos que crees y uses una cuenta de servicio de administración de identidades y accesos (IAM) con privilegios mínimos para que la usen tus grupos de nodos en lugar de laCuenta de servicio predeterminada de Compute Engine. Para obtener instrucciones sobre cómo crear una cuenta de servicio con privilegios mínimos, consulta Endurece la seguridad del clúster.

gcloud

Para crear un grupo de nodos, ejecuta el comando gcloud container node-pools create:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --service-account SERVICE_ACCOUNT

Reemplaza lo siguiente:

  • POOL_NAME: el nombre del grupo de nodos nuevo
  • CLUSTER_NAME: Es el nombre del clúster existente.
  • SERVICE_ACCOUNT: Es el nombre de la cuenta de servicio de IAM que usarán los nodos. Si se omite, el grupo de nodos usa la cuenta de servicio predeterminada de Compute Engine.

Para obtener una lista completa de las marcas opcionales que puedes especificar, consulta la documentación de gcloud container node-pools create.

El resultado es similar a este:

Creating node pool POOL_NAME...done.
Created [https://container.googleapis.com/v1/projects/PROJECT_ID/zones/us-central1/clusters/CLUSTER_NAME/nodePools/POOL_NAME].
NAME: POOL_NAME
MACHINE_TYPE: e2-medium
DISK_SIZE_GB: 100
NODE_VERSION: 1.21.5-gke.1302

En este resultado, verás detalles sobre el grupo de nodos, como el tipo de máquina y la versión de GKE que se ejecuta en los nodos.

Puede suceder que el grupo de nodos se cree de forma correcta, pero el comando de gcloud agote el tiempo de espera en lugar de informar sobre el estado del servidor. Para comprobar el estado de todos los grupos de nodos, incluidos aquellos que aún no están aprovisionados del todo, usa el siguiente comando:

gcloud container node-pools list --cluster CLUSTER_NAME

Console

Para agregar un grupo de nodos a un clúster existente, realiza los siguientes pasos:

  1. Ve a la página de Google Kubernetes Engine en Cloud Console:

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. Haz clic en Agregar grupo de nodos.

  4. Configura tu grupo de nodos.

  5. En el menú de navegación, haz clic en Seguridad.

  6. En el menú desplegable Cuenta de servicio, selecciona la cuenta de servicio de IAM para el grupo de nodos que se usará. De forma predeterminada, el grupo de nodos usa la cuenta de servicio predeterminada de Compute Engine.

  7. Haz clic en Crear para agregar el grupo de nodos.

Visualiza grupos de nodos en un clúster

gcloud

Para enumerar todos los grupos de nodos de un clúster, ejecuta el comando gcloud container node-pools list:

gcloud container node-pools list --cluster CLUSTER_NAME

Para visualizar detalles sobre un grupo de nodos específico, ejecuta el comando gcloud container node-pools describe:

gcloud container node-pools describe POOL_NAME \
    --cluster CLUSTER_NAME

Reemplaza lo siguiente:

  • CLUSTER_NAME: el nombre del clúster
  • POOL_NAME: el nombre del grupo de nodos que se debe ver

Console

Para ver los grupos de nodos de un clúster, realiza los siguientes pasos:

  1. Ve a la página de Google Kubernetes Engine en Cloud Console:

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster.

  3. Haz clic en la pestaña Nodos.

  4. En Grupos de nodos, haz clic en el nombre del grupo de nodos que quieres ver.

Cambia el tamaño de un grupo de nodos

gcloud

Para cambiar el tamaño del grupo de nodos de un clúster, ejecuta el siguiente comando gcloud container clusters resize:

gcloud container clusters resize CLUSTER_NAME \
    --node-pool POOL_NAME \
    --num-nodes NUM_NODES

Reemplaza lo siguiente:

  • CLUSTER_NAME: el nombre del clúster al que se cambiará el tamaño
  • POOL_NAME: el nombre del grupo de nodos al que se cambiará el tamaño
  • NUM_NODES: la cantidad de nodos en el grupo en un clúster zonal Si usas clústeres multizonales o regionales, NUM_NODES es la cantidad de nodos de cada zona en la que se encuentra el grupo de nodos.

Repite este comando para cada grupo de nodos. Si tu clúster tiene un solo grupo de nodos, omite la marca --node-pool.

Console

Para cambiar el tamaño de los grupos de nodos de un clúster, realiza los siguientes pasos:

  1. Ve a la página de Google Kubernetes Engine en Cloud Console:

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. Haz clic en la pestaña Nodos.

  4. En la sección Grupos de nodos, haz clic en el nombre del grupo de nodos al que quieres cambiarle el tamaño.

  5. Haz clic en Cambiar de tamaño.

  6. En el campo Cantidad de nodos, ingresa la cantidad de nodos que quieres incluir en el grupo de nodos y, luego, haz clic en Cambiar tamaño.

  7. Repite este paso para cada grupo de nodos según sea necesario.

Actualiza un grupo de nodos

De forma predeterminada, los nodos de un clúster tienen habilitada la actualización automática y se recomienda no inhabilitarla.

Cuando se actualiza un grupo de nodos, puedes definir la configuración de actualización de aumento para controlar cuántos nodos se actualizan GKE a la vez y cómo interrumpe la actualización a las cargas de trabajo. De forma predeterminada, GKE actualiza un nodo a la vez.

Mientras se actualiza un nodo, GKE deja de programar pods nuevos en él y, en cambio, intenta programar sus pods en ejecución en otros nodos. Esto es similar a otros eventos que recrean el nodo, como la habilitación o inhabilitación de una función en el grupo de nodos.

La actualización se completará cuando se vuelvan a crear todos los nodos y el clúster se encuentre en el estado deseado. Cuando un nodo recién actualizado se registra con el plano de control, GKE marca el nodo como programable.

Las instancias de nodo nuevas ejecutan la versión deseada de Kubernetes y también los elementos siguientes:

Actualiza un grupo de nodos de forma manual

Puedes actualizar la versión de un grupo de nodos de forma manual para que coincida con la versión del plano de control o con una versión inferior que aún esté disponible y que sea compatible con el plano de control. La política de compatibilidad de versiones y del sesgo de versiones de Kubernetes garantiza que los planos de control sean compatibles con nodos de hasta dos versiones secundarias inferiores a la del plano de control. Por ejemplo, los planos de control de Kubernetes 1.13 son compatibles con los nodos de Kubernetes 1.11.

Cuando actualizas de forma manual un grupo de nodos, GKE quita las etiquetas que agregaste a los nodos individuales mediante kubectl. Para evitar esto, aplica etiquetas a los grupos de nodos (vista previa) en su lugar.

Puedes actualizar tus grupos de nodos de forma manual a una versión compatible con el plano de control mediante Google Cloud Console o la herramienta de línea de comandos de gcloud.

gcloud

Para actualizar todos los nodos a la misma versión que el plano de control, ejecuta el comando gcloud container clusters upgrade:

gcloud container clusters upgrade CLUSTER_NAME

Reemplaza CLUSTER_NAME por el nombre del clúster que deseas actualizar.

Para actualizar un grupo de nodos específico, establece la marca --node-pool:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME

Si deseas especificar una versión diferente de GKE en los nodos, usa la marca opcional --cluster-version:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME \
  --cluster-version VERSION

Reemplaza VERSION por la versión de Kubernetes a la que se actualizarán los nodos. Por ejemplo, --cluster-version=1.7.2 o cluster-version=latest.

Para obtener más información sobre cómo especificar versiones, consulta Control de versiones.

Para obtener más información, consulta la documentación gcloud container clusters upgrade.

Console

Si deseas actualizar un grupo de nodos mediante Cloud Console, sigue estos pasos:

  1. Ve a la página de Google Kubernetes Engine en Cloud Console:

    Ir a Google Kubernetes Engine

  2. Junto al clúster que deseas editar, haz clic en  Acciones y, luego, en  Editar.

  3. En la página Detalles del clúster, haz clic en la pestaña Nodos.

  4. En la sección Grupos de nodos, haz clic en el nombre del grupo de nodos que deseas actualizar.

  5. Haz clic en  Editar.

  6. Haz clic en Cambiar, en Versión del nodo.

  7. Selecciona la versión deseada en la lista desplegable Versión del nodo y, luego, haz clic en Cambiar.

Implementa un Pod en un grupo de nodos específico

Puedes implementar un Pod de forma explícita en un grupo de nodos específico mediante un nodeSelector en el manifiesto del Pod. nodeSelector programa Pods en nodos con una etiqueta coincidente.

Todos los grupos de nodos de GKE tienen etiquetas con el siguiente formato: cloud.google.com/gke-nodepool: POOL_NAME. Agrega esta etiqueta al campo nodeSelector en el Pod, como se muestra en el siguiente ejemplo:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    cloud.google.com/gke-nodepool: POOL_NAME

Para obtener más información, consulta Asigna Pods a nodos.

Como alternativa al selector de nodos, puedes usar la afinidad de nodos. Usa la afinidad de nodos si quieres una regla menos estricta en la que el Pod intenta cumplir con la restricción, pero aún está programado, incluso si la restricción no puede satisfacerse. Para obtener más información, consulta Afinidad de nodos. También puedes especificar las solicitudes de recursos para los contenedores.

Cambia a una versión inferior de los grupos de nodos

Borrar un grupo de nodos

Cuando se borra un grupo de nodos, se borran los nodos y las rutas a ellos. Cualquier pod que se ejecuta en esos nodos se expulsa y reprograma. 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.

gcloud

Para borrar un grupo de nodos, ejecuta el comando gcloud container node-pools delete:

gcloud container node-pools delete POOL_NAME \
    --cluster CLUSTER_NAME

Console

Para borrar un grupo de nodos, realiza los siguientes pasos:

  1. Ve a la página de Google Kubernetes Engine en Cloud Console:

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haz clic en el nombre del clúster que deseas modificar.

  3. Haz clic en la pestaña Nodos.

  4. En la sección Grupos de nodos, haz clic en junto al grupo de nodos que deseas borrar.

  5. Cuando se te solicite confirmar, haz clic en Borrar.

¿Qué sigue?