Usa el aprovisionamiento automático de nodos

En esta página, se explica cómo usar el aprovisionamiento automático de nodos en Google Kubernetes Engine (GKE).

Descripción general

El aprovisionamiento automático de nodos administra de forma automática un conjunto de grupos de nodos en nombre del usuario. Sin el aprovisionamiento automático de nodos, GKE considera iniciar nuevos nodos solo a partir del conjunto de grupos de nodos creados por el usuario. Con el aprovisionamiento automático de nodos, se pueden crear y borrar grupos de nodos nuevos de forma automática.

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.

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 regionales, establece 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

Requisitos

El aprovisionamiento automático de nodos está disponible en las siguientes versiones de GKE:

  • Versión 1.11.2-gke.25 y posteriores para clústeres zonales
  • Versión 1.12.x y posteriores para clústeres regionales

Características no compatibles

Las siguientes funciones no son compatibles con el aprovisionamiento automático de nodos. Esto significa que no se aprovisionarán grupos de nodos con estas funciones, sino que se les realizará un ajuste de escala automático a los grupos de nodos existentes:

  • No se admite el ajuste de escala automático de PersistentVolumes locales
  • Familias de instancias de Compute Engine que no sean n1 (n2, e2, c2, …)
  • Sistemas operativos que no sean COS
  • gvisor
  • Control de la afinidad de reserva
  • Aprovisionamiento automático de grupos de nodos para pods con almacenamiento efímero
  • Aprovisionamiento automático mediante programación personalizada con filtros alterados

Operación

El aprovisionamiento automático de nodos es un mecanismo del escalador automático del clúster, que escala por grupos de nodos. Con el aprovisionamiento automático de nodos habilitado, el escalador automático del clúster puede extender grupos de nodos de forma automática en función de las especificaciones de Pods no programables.

El aprovisionamiento automático de nodos crea grupos de nodos de acuerdo con esta información:

Límites de recursos

El aprovisionamiento automático de nodos y el escalador automático del clúster tienen límites en los dos niveles siguientes:

  • Nivel de grupo de nodos
  • Nivel de clúster

Límites para los grupos de nodos

Los grupos de nodos que crea el aprovisionamiento automático de nodos tienen un límite de 1,000 nodos.

Límites de los clústeres

Los límites que definas se aplicarán en función de los recursos totales de CPU y memoria usados en tu clúster, no solo en los grupos de aprovisionamiento automático.

El escalador automático de clúster no crea nodos nuevos si al hacerlo se excede uno de los límites definidos. Si ya se excedieron los límites, los nodos no se borran de forma automática.

Separación de las cargas de trabajo

Si los Pods pendientes tienen tolerancias y afinidades de nodo, el aprovisionamiento automático de nodos puede aprovisionar nodos con etiquetas y taints que coincidan.

El aprovisionamiento automático de nodos podría crear grupos de nodos con etiquetas y taints si se cumplen las siguientes condiciones:

  • Un Pod pendiente requiere un nodo con una clave de etiqueta y un valor específicos.
  • El pod tiene una tolerancia para un taint con la misma clave.
  • La tolerancia es para el efecto NoSchedule, el efecto NoExecute o todos los efectos.

La especificación del pod puede expresar que requiere nodos con etiquetas específicas de las dos maneras siguientes:

  • Mediante un campo nodeSelector.
  • Mediante un campo nodeAffinity con un operador In y exactamente un valor.

El ejemplo siguiente es un extracto de una especificación de pod que se interpreta como una solicitud de separación de carga de trabajo. En este ejemplo, el administrador del clúster eligió dedicated como la clave que se usará en el aislamiento de la carga de trabajo, y el equipo de la IU determinó que necesitan nodos dedicados para sus cargas de trabajo.

El pod tiene tolerancia para los nodos etiquetados con dedicated=ui-team y usa nodeAffinity en la selección de nodos:

spec:
  tolerations:
  - key: dedicated
    operator: Equal
    value: ui-team
    effect: NoSchedule
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: dedicated
            operator: In
            values:
            - ui-team

Si este Pod existe, los nodos con el taint dedicated=ui-team:NoSchedule y la etiqueta dedicated=ui-team se tienen en cuenta para la creación en el aprovisionamiento automático de nodos.

En el siguiente ejemplo, se usa nodeSelector y el efecto es el mismo:

spec:
  tolerations:
  - key: dedicated
    operator: Equal
    value: ui-team
    effect: NoSchedule
  nodeSelector:
    dedicated: ui-team

Borra grupos de nodos aprovisionados de forma automática

Cuando no hay nodos en un grupo de nodos aprovisionados de forma automática, GKE borra el grupo de nodos. Los grupos de nodos que no están marcados como aprovisionados de forma automática no se borran.

Tipos de máquina admitidos

Por el momento, para el aprovisionamiento automático de nodos solo se considerará crear grupos de nodos con máquinas de los tipos de máquinas N1 con hasta 64 CPU virtuales.

Imágenes de nodo compatibles

Por el momento, solo se considerará crear grupos de nodos con la imagen de nodo de Container-Optimized OS para el aprovisionamiento automático de nodos.

Compatibilidad con VM interrumpibles

El aprovisionamiento automático de nodos permite crear grupos de nodos basados en instancias de máquina virtual (VM) interrumpible.

La creación de grupos de nodos basados en VM interrumpibles solo se considera si existen pods no programables con tolerancia para taint cloud.google.com/gke-preemptible="true":NoSchedule.

Los nodos que se basan en VM interrumpibles y que se crean mediante grupos de nodos aprovisionados de forma automática tienen el taint aplicado.

Limitaciones de escalabilidad

El aprovisionamiento automático de nodos tiene las mismas limitaciones que el escalador automático del clúster, además de las siguientes limitaciones adicionales:

Límite sobre la cantidad de cargas de trabajo independientes
El aprovisionamiento automático de nodos admite un máximo de 100 cargas de trabajo distintas.
Límite sobre la cantidad de grupos de nodos
El aprovisionamiento automático de nodos reduce la prioridad de la creación de grupos de nodos nuevos cuando la cantidad de grupos se acerca a 100. La creación de más de 100 grupos de nodos es posible, pero solo cuando es la única opción para programar un Pod pendiente.

Habilita el aprovisionamiento automático de nodos

Habilita el aprovisionamiento automático de nodos en un clúster con gcloud o Google Cloud Console.

gcloud

Para habilitar el aprovisionamiento automático de nodos, ejecuta el comando siguiente:

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --min-cpu minimum-cpu \
    --min-memory minimum-memory \
    --max-cpu maximum-cpu \
    --max-memory maximum-memory

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
  • minimum-cpu: Es la cantidad mínima de núcleos en el clúster.
  • minimum-memory: Es la cantidad mínima de gigabytes de memoria en el clúster.
  • maximum-cpu: Es la cantidad máxima de núcleos en el clúster.
  • maximum-memory: Es la cantidad máxima de gigabytes de memoria en el clúster.

En el siguiente ejemplo, se habilita el aprovisionamiento automático de nodos en el dev-cluster y se permite escalar entre un tamaño de clúster total de 1 CPU y 1 gigabyte de memoria hasta un máximo de 10 CPU y 64 gigabytes de memoria:

gcloud container clusters update dev-cluster \
    --enable-autoprovisioning \
    --min-cpu 1 \
    --min-memory 1 \
    --max-cpu 10 \
    --max-memory 64

Console

Para habilitar el aprovisionamiento automático de nodos, sigue estos pasos:

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

Ir al menú Google Kubernetes Engine

  1. Selecciona el clúster deseado.
  2. Haz clic en el ícono .
  3. Desplázate hasta Aprovisionamiento automático de nodos y selecciona Habilitado.
  4. Configura el uso mínimo y máximo de CPU y memoria que deseas para el clúster.
  5. Haz clic en Guardar. GKE actualiza el clúster.

Usa un archivo de configuración de aprovisionamiento automático

El aprovisionamiento automático de nodos se puede configurar mediante un archivo de configuración YAML. El archivo de configuración puede contener solo una línea si se usa para cambiar una única opción de configuración. Se pueden especificar varias opciones de configuración en un solo archivo de configuración. En este caso, todas las opciones de configuración se modificarán cuando se aplique el archivo de configuración.

Algunas opciones de configuración avanzadas solo se pueden especificar mediante un archivo de configuración.

Ejemplo 1: Aplicar el siguiente archivo de configuración habilita la reparación automática y la actualización automática de nodos para cualquier grupo de nodos nuevo que cree el aprovisionamiento automático de nodos:

management:
  autoRepair: true
  autoUpgrade: true

Ejemplo 2: Aplicar el siguiente archivo de configuración cambiaría la siguiente configuración:

  • Configura los límites de recursos para CPU, memoria y GPU. El aprovisionamiento automático de nodos no creará un nodo si el tamaño total del clúster supera los límites de recursos especificados.
  • Habilita la reparación automática y la actualización automática de nodos para cualquier grupo de nodos nuevo que cree el aprovisionamiento automático de nodos.
  • Habilita la opción de inicio seguro y supervisión de integridad para cualquier grupo de nodos nuevo que cree el aprovisionamiento automático de nodos.
  • Configura el tamaño del disco de arranque en 100 GB para cualquier grupo de nodos nuevo que cree el aprovisionamiento automático de nodos.
resourceLimits:
  -resourceType: 'cpu'
   minimum: 4
   maximum: 10
  -resourceType: 'memory'
   maximum: 64
  -resourceType: 'nvidia-tesla-k80'
   maximum: 4
management:
  autoRepair: true
  autoUpgrade: true
shieldedInstanceConfig:
  enableSecureBoot: true
  enableIntegrityMonitoring: true
diskSizeGb: 100

Para usar un archivo de configuración de aprovisionamiento automático, sigue estos pasos:

  1. Crea un archivo con la configuración deseada en una ubicación a la que gcloud pueda acceder.

  2. Ejecuta el siguiente comando para aplicar la configuración a tu clúster:

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

    Reemplaza los siguientes valores:

    • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
    • file-name: Es el nombre del archivo YAML que contiene la configuración deseada.

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

Configuración predeterminada del aprovisionamiento automático

El aprovisionamiento automático de nodos analiza los requisitos de los Pods en el clúster para determinar qué tipo de nodos se adapta mejor a ellos. Sin embargo, los Pods no especifican directamente algunas opciones de configuración del grupo de nodos (por ejemplo, la configuración relacionada con las actualizaciones de nodos). Puedes establecer valores predeterminados para esas opciones, que se aplicarán a todos los grupos de nodos recién creados.

Configura valores predeterminados de identidad para grupos de nodos aprovisionados de forma automática

Los permisos para los recursos de Google Cloud son proporcionados por identidades.

Puedes especificar la identidad predeterminada (ya sea una cuenta de servicio, o uno o más permisos) para los grupos de nodos nuevos aprovisionados de forma automática mediante la herramienta de gcloud o un archivo de configuración.

gcloud

Para especificar la cuenta de servicio de IAM predeterminada que usa el aprovisionamiento automático de nodos, ejecuta el siguiente comando:

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --autoprovisioning-service-account=service-account

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
  • service-account: Es la dirección de correo electrónico de la cuenta de servicio predeterminada.

En el siguiente ejemplo, se configura test-service-account@google.com como la cuenta de servicio predeterminada en el clúster dev-cluster:

gcloud container clusters update dev-cluster \
    --enable-autoprovisioning --autoprovisioning-service-account=test-service-account@google.com

Para especificar los permisos predeterminados que debe usar el aprovisionamiento automático de nodos, ejecuta el siguiente comando:

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --autoprovisioning-scopes=scope

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
  • scope: Son los permisos de Google Cloud que usan los grupos de nodos aprovisionados de forma automática. Para especificar varios permisos, debes separarlos con una coma (por ejemplo, scope, scope,…).

En el siguiente ejemplo, se establece el permiso predeterminado del clúster dev-cluster en devstorage.read_only:

gcloud container clusters update dev-cluster \
    --enable-autoprovisioning \
    --autoprovisioning-scopes=https://www.googleapis.com/auth/pubsub,https://www.googleapis.com/auth/devstorage.read_only

Archivo

Puedes especificar la identidad predeterminada que usa el aprovisionamiento automático de nodos mediante un archivo de configuración. Mediante la siguiente configuración de YAML, se establece la cuenta de servicio de IAM:

  serviceAccount: service-account

Reemplaza service-account por la dirección de correo electrónico de la cuenta de servicio predeterminada.

Como alternativa, puedes usar la siguiente configuración de YAML para especificar los permisos predeterminados que usa el aprovisionamiento automático de nodos:

  scopes: scope

Reemplaza scope por el permiso de Google Cloud que usan los grupos de nodos aprovisionados de forma automática. Para especificar varios permisos, debes separarlos con una coma (por ejemplo, scope, scope,…).

Para usar un archivo de configuración de aprovisionamiento automático, sigue estos pasos:

  1. Crea un archivo de configuración que especifique los valores de identidad predeterminados en una ubicación a la que gcloud pueda acceder.

  2. Ejecuta el siguiente comando para aplicar la configuración a tu clúster:

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
  • file-name: Es el nombre del archivo de configuración.

Claves de encriptación administradas por el cliente (CMEK)

Puedes especificar claves de encriptación administradas por el cliente (CMEK) que usan los grupos de nodos nuevos aprovisionados de forma automática.

Puedes habilitar la encriptación administrada por el cliente para los controladores de arranque mediante un archivo de configuración. La siguiente configuración de YAML establece la clave CMEK:

  bootDiskKmsKey: projects/key-project-id/locations/location/keyRings/key-ring/cryptoKeys/key

Reemplaza los siguientes valores:

  • zone: Es la zona en la que deseas crear el clúster.
  • key-project-id: Es el ID del proyecto de claves.
  • location: Es la ubicación del llavero de claves.
  • key-ring: Es el nombre del llavero de claves.
  • key: Es el nombre de la clave.
  • cluster-project-id: Es el ID del proyecto del clúster.

Para usar un archivo de configuración de aprovisionamiento automático, sigue estos pasos:

  1. Crea un archivo de configuración que especifique una clave CMEK en una ubicación a la que gcloud pueda acceder.

  2. Ejecuta el siguiente comando para aplicar la configuración a tu clúster:

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

    Reemplaza los siguientes valores:

    • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
    • file-name: Es el nombre del archivo de configuración.

Integridad del nodo

El aprovisionamiento automático de nodos permite crear grupos de nodos con el inicio seguro y la supervisión de integridad habilitados.

Puedes habilitar el inicio seguro y la supervisión de integridad mediante un archivo de configuración. Con la siguiente configuración de YAML, se habilita el inicio seguro y se inhabilita la supervisión de integridad:

  shieldedInstanceConfig:
    enableSecureBoot: true
    enableIntegrityMonitoring: false

Para usar un archivo de configuración de aprovisionamiento automático, sigue estos pasos:

  1. Copia la configuración anterior en un archivo que se encuentre en una ubicación a la que gcloud pueda acceder. Edita los valores de enableSecureBoot y enableIntegrityMonitoring. Guarda el archivo.

  2. Ejecuta el siguiente comando para aplicar la configuración a tu clúster:

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

    Reemplaza los siguientes valores:

    • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
    • file-name: Es el nombre del archivo de configuración.

Reparación y actualización automáticas de nodos

El aprovisionamiento automático de nodos es compatible con la creación de grupos de nodos con la reparación y la actualización automáticas de nodos habilitadas.

gcloud

Para habilitar la reparación y la actualización automáticas en todos los grupos de nodos nuevos aprovisionados de forma automática, ejecuta el siguiente comando:

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --enable-autoprovisioning-autorepair \
    --enable-autoprovisioning-autoupgrade

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.

A fin de inhabilitar la reparación y la actualización automáticas en todos los grupos de nodos aprovisionados de forma automática, ejecuta el siguiente comando:

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --no-enable-autoprovisioning-autorepair \
    --no-enable-autoprovisioning-autoupgrade

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.

Archivo

Puedes habilitar o inhabilitar la reparación y la actualización automáticas mediante un archivo de configuración. Mediante la siguiente configuración de YAML, puedes habilitar la reparación automática y, a su vez, inhabilitar la actualización automática:

  management:
    autoRepair: true
    autoUpgrade: false

Para usar un archivo de configuración de aprovisionamiento automático, sigue estos pasos:

  1. Copia la configuración anterior en un archivo que se encuentre en una ubicación a la que gcloud pueda acceder. Edita los valores de autoUpgrade y autoRepair. Guarda el archivo.

  2. Ejecuta el siguiente comando para aplicar la configuración a tu clúster:

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --autoprovisioning-config-file file-name

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
  • file-name: Es el nombre del archivo de configuración.

Parámetros de configuración de las actualizaciones de aumento de nodos

El aprovisionamiento automático de nodos permite crear grupos de nodos con una configuración específica de actualización de aumento.

gcloud

A fin de especificar la configuración de actualización de aumento para todos los grupos de nodos nuevos aprovisionados de forma automática, ejecuta el siguiente comando:

gcloud container clusters update cluster-name \
    --autoprovisioning-max-surge-upgrade max-surge-upgrade \
    --autoprovisioning-max-unavailable-upgrade max-unavailable-upgrade

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
  • max-surge-upgrade: Es el valor de la actualización de aumento máxima establecida en grupos de nodos aprovisionados de forma automática.
  • max-unavailable-upgrade: Es el valor de max-unavailable-upgrade establecido en grupos de nodos aprovisionados de forma automática.

Archivo

Puedes especificar la configuración de actualización de aumento para todos los grupos de nodos aprovisionados de forma automática mediante un archivo de configuración como el siguiente:

  upgradeSettings:
    maxSurgeUpgrade: 1
    maxUnavailableUpgrade: 2

Para usar un archivo de configuración de aprovisionamiento automático, sigue estos pasos:

  1. Copia la configuración anterior en un archivo que se encuentre en una ubicación a la que gcloud pueda acceder. Edita los valores de maxSurgeUpgrade y maxUnavailableUpgrade. Guarda el archivo.

  2. Ejecuta el siguiente comando para aplicar la configuración a tu clúster:

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --autoprovisioning-config-file file-name

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
  • file-name: Es el nombre del archivo de configuración.

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

Discos de arranque personalizados

El aprovisionamiento automático de nodos permite crear grupos de nodos con discos de arranque personalizados.

Puedes personalizar la configuración del disco de arranque mediante un archivo de configuración. La siguiente configuración de YAML hace que el aprovisionamiento automático de nodos cree grupos de nodos con discos SSD de 100 GB:

  diskSizeGb: 100
  diskType: pd-ssd

Especifica los siguientes valores:

  • diskSizeGb: Es el tamaño del disco, especificado en GB.
  • diskType: Es el tipo de disco, que puede ser uno de los siguientes valores:
    • pd-standard: Es un disco persistente estándar (predeterminado).
    • pd-ssd: Es un disco persistente SSD.

Para usar un archivo de configuración de aprovisionamiento automático, sigue estos pasos:

  1. Crea un archivo con la configuración del disco de arranque deseada en una ubicación a la que gcloud pueda acceder.

  2. Ejecuta el siguiente comando para aplicar la configuración a tu clúster:

    gcloud container clusters update cluster-name \
       --enable-autoprovisioning \
       --autoprovisioning-config-file file-name

    Reemplaza los siguientes valores:

    • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
    • file-name: Es el nombre del archivo de configuración.

Configura los límites de GPU

Cuando usas el aprovisionamiento automático de nodos con GPU, puedes establecer el límite máximo para cada tipo de GPU en el clúster mediante la herramienta de gcloud o Google Cloud Console. Si deseas configurar varios tipos de GPU, debes usar un archivo de configuración.

Para enumerar los resourceTypes disponibles, ejecuta gcloud compute accelerator-types list.

gcloud

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --max-cpu maximum-cpu \
    --max-memory maximum-memory \
    --min-accelerator type=gpu-type,count=minimum-accelerator \
    --max-accelerator type=gpu-type,count=maximum-accelerator

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
  • maximum-cpu: Es la cantidad máxima de núcleos en el clúster.
  • maximum-memory: Es la cantidad máxima de gigabytes de memoria en el clúster.
  • gpu-type: Es el tipo de acelerador de GPU.
  • minimum-accelerator: Es la cantidad mínima de aceleradores de GPU gpu-type en el clúster.
  • maximum-accelerator: Es la cantidad máxima de aceleradores de GPU gpu-type en el clúster.

En el siguiente ejemplo, se establecen los límites de GPU para el tipo de acelerador de GPU nvidia-tesla-k80 en el clúster dev-cluster:

gcloud container clusters update dev-cluster \
    --enable-autoprovisioning \
    --max-cpu 10 \
    --max-memory 64 \
    --min-accelerator type=nvidia-tesla-k80,count=1 \
    --max-accelerator type=nvidia-tesla-k80,count=4

Archivo

Puedes cargar límites para varios tipos de GPU mediante un archivo de configuración. Mediante la siguiente configuración YAML, se configuran dos tipos de GPU diferentes:

  resourceLimits:
    -resourceType: 'cpu'
     minimum: 4
     maximum: 10
    -resourceType: 'memory'
     maximum: 64
    -resourceType: 'nvidia-tesla-k80'
     maximum: 4
    -resourceType: 'nvidia-tesla-v100'
     maximum: 2

Para usar un archivo de configuración de aprovisionamiento automático, sigue estos pasos:

  1. Copia la configuración anterior en un archivo que se encuentre en una ubicación a la que gcloud pueda acceder. Edita los valores para cpu y memory. Agrega tantos valores como necesites para resourceType. Guarda el archivo.

  2. Ejecuta el siguiente comando para aplicar la configuración a tu clúster:

gcloud container clusters update cluster-name \
    --enable-autoprovisioning \
    --autoprovisioning-config-file file-name

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster en el que se habilitará el aprovisionamiento automático de nodos.
  • file-name: Es el nombre del archivo de configuración.

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

Console

Para habilitar el aprovisionamiento automático de nodos con recursos de GPU, sigue estos pasos:

  1. Visita el menú de Google Kubernetes Engine en Cloud Console.

Ir al menú Google Kubernetes Engine

  1. Selecciona el clúster deseado.
  2. Haz clic en el ícono Editar.
  3. Desplázate hasta Aprovisionamiento automático de nodos y selecciona Habilitado.
  4. Configura el uso mínimo y máximo de CPU y memoria que deseas para el clúster.
  5. Haz clic en Agregar recurso.
  6. Selecciona el tipo de GPU (por ejemplo, NVIDIA TESLA K80) que deseas agregar. Establece la cantidad mínima y máxima de GPU que deseas agregar al clúster.
  7. Acepta las limitaciones de GPU en GKE.
  8. Haz clic en Guardar. GKE actualiza el clúster.

Ubicaciones de aprovisionamiento automático de nodos

Establece las zonas en las que el aprovisionamiento automático de nodos puede crear grupos de nodos nuevos. No se admiten ubicaciones regionales. Las zonas deben pertenecer a la misma región que el clúster, pero no se limitan a las ubicaciones de nodos definidas a nivel de clúster. El cambio de las ubicaciones de aprovisionamiento automático de nodos no afecta a ningún grupo de nodos existente.

Para configurar las ubicaciones en las que el aprovisionamiento automático de nodos puede crear grupos de nodos nuevos, ejecuta el siguiente comando:

gcloud container clusters update cluster-name \
    --enable-autoprovisioning --autoprovisioning-locations=zone

Reemplaza los siguientes valores:

  • cluster-name: Es el nombre del clúster que habilitará el aprovisionamiento automático de nodos.
  • zone: Es la zona en la que el aprovisionamiento automático de nodos puede crear grupos de nodos nuevos. Para especificar varias zonas, sepáralas con una coma (por ejemplo, zone, zone,…).

Inhabilita el aprovisionamiento automático de nodos

Cuando inhabilitas el aprovisionamiento automático de nodos para un clúster, los grupos de nodos dejan de aprovisionarse de forma automática.

gcloud

A fin de inhabilitar el aprovisionamiento automático de nodos en un clúster, ejecuta el siguiente comando:

gcloud container clusters update cluster-name --no-enable-autoprovisioning

Console

Para inhabilitar el aprovisionamiento automático de nodos mediante Google Cloud Console, sigue estos pasos:

  1. Ve al menú de Google Kubernetes Engine en Cloud Console.

Ir al menú Google Kubernetes Engine

  1. Selecciona el clúster deseado.
  2. Haz clic en el ícono Editar.
  3. Desplázate hasta Aprovisionamiento automático de nodos y selecciona Inhabilitado.

Marca un grupo de nodos como aprovisionados de forma automática

Después de habilitar el aprovisionamiento automático de nodos en el clúster, puedes especificar los grupos de nodos que se aprovisionarán automáticamente. Un grupo de nodos aprovisionado de forma automática se borra de manera automática cuando no hay cargas de trabajo que lo usen.

Para marcar un grupo de nodos como aprovisionado de forma automática, ejecuta el siguiente comando:

gcloud container node-pools update node-pool-name --enable-autoprovisioning

Reemplaza node-pool-name por el nombre del grupo de nodos.

Marca un grupo de nodos como no aprovisionado de forma automática

Para marcar un grupo de nodos como no aprovisionado de forma automática, ejecuta el siguiente comando:

gcloud container node-pools update node-pool-name --no-enable-autoprovisioning

Reemplaza node-pool-name por el nombre del grupo de nodos.

Próximos pasos