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:

Establece la configuración de gcloud predeterminada mediante uno de los siguientes métodos:

  • Usa gcloud init si deseas ver una explicación sobre cómo configurar parámetros predeterminados.
  • Usa gcloud config para establecer el ID, la zona y la región del proyecto de manera individual.

Usa gcloud init

Si recibes el error One of [--zone, --region] must be supplied: Please specify location, completa esta sección.

  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 a fin de autorizar a gcloud para que use 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 predeterminada de Compute Engine para clústeres zonales o una región para clústeres regionales o de Autopilot.

Usa gcloud config

  • Establece tu ID del proyecto predeterminado:
    gcloud config set project PROJECT_ID
  • Si trabajas con clústeres zonales, establece tu zona de procesamiento predeterminada:
    gcloud config set compute/zone COMPUTE_ZONE
  • Si trabajas con clústeres de Autopilot o regionales, configura tu región de procesamiento predeterminada:
    gcloud config set compute/region COMPUTE_REGION
  • Actualiza gcloud a la versión más reciente:
    gcloud components update

Agrega un grupo de nodos

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

Para ver la lista completa de opciones, consulta la documentación de gcloud container node-pools create.

Una solicitud node-pools create correcta muestra la información del grupo de nodos:

Creating node pool example-pool...done.
Created [https://container.googleapis.com/v1/projects/kubernetes-engine-docs/zones/us-central1-f/clusters/example-cluster/nodePools/example-pool].
NAME          MACHINE_TYPE   DISK_SIZE_GB  NODE_VERSION
example-pool  e2-medium      100           1.2.4

Se crea el grupo de 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. Junto al clúster que deseas editar, haz clic en Acciones y, luego, en Editar.

  3. Haz clic en Agregar grupo de nodos.

  4. Configura tu grupo de nodos como desees.

  5. 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 encuentran los grupos 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. Junto al clúster que deseas editar, haz clic en Acciones y, luego, en Editar.

  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:

Para actualizar 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. 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

Borra 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. Junto al clúster que deseas editar, haz clic en Acciones y, luego, en Editar.

  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?