Usar el aprovisionamiento automático de nodos

En esta página se explica cómo habilitar y configurar el aprovisionamiento automático de nodos en clústeres estándar de Google Kubernetes Engine (GKE). En esta página se muestra, con ejemplos, cómo usar archivos de configuración YAML para configurar ajustes avanzados, como límites de recursos, reparación automática y actualización automática, así como para definir algunos valores predeterminados para el aprovisionamiento automático.

También aprenderás a hacer lo siguiente:

  • Mejora la seguridad del clúster usando claves de cifrado gestionadas por el cliente (CMEK) y configurando la integridad de los nodos.
  • Optimiza el uso de recursos y minimiza las interrupciones especificando estrategias de actualización surge o blue-green, y separando los pods gestionados por GKE de las cargas de trabajo de los usuarios.
  • Mejora el rendimiento usando aceleradores, como GPUs o TPUs, con aprovisionamiento automático.

Esta página está dirigida a operadores, arquitectos de la nube, desarrolladores e ingenieros de redes que aprovisionan y configuran recursos en la nube, y que implementan cargas de trabajo en clústeres de GKE. Para obtener más información sobre los roles y las tareas de ejemplo habituales que se mencionan en el contenido de Google Cloud , consulta Roles y tareas de usuario habituales de GKE.

Antes de leer esta página, asegúrese de que conoce los siguientes conceptos:

Antes de empezar

Antes de empezar, asegúrate de que has realizado las siguientes tareas:

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si quieres usar Google Cloud CLI para esta tarea, instálala y, a continuación, inicialízala. Si ya has instalado la gcloud CLI, obtén la versión más reciente ejecutando gcloud components update.
  • Asegúrate de que tienes un clúster Standard. Para habilitar el aprovisionamiento automático en clústeres que ejecuten VMs de TPU, asegúrate de que el clúster de GKE ejecute una de las siguientes versiones:

    • Versión 1.27.6 o posterior, o 1.28 o posterior, para las versiones 4 y 5e de TPU de Cloud.
    • Versión 1.28.7-gke.1020000 o posterior y 1.29.2-gke.1035000 o posterior para la TPU v5p de Cloud.
    • Versión 1.31.1-gke.1146000 o posterior para TPU de Cloud Trillium.

    Para crear un clúster estándar, consulta Crear un clúster regional.

Limitaciones

El aprovisionamiento automático de nodos tiene las siguientes limitaciones de recursos:

  • Debes planificar cuidadosamente el intervalo de direcciones IP de los nodos. Puedes ampliar el intervalo de direcciones IP del nodo después de crear un clúster. Sin embargo, te recomendamos que no amplíes el intervalo de direcciones IP de los nodos después de crear el clúster, ya que debes actualizar las reglas de cortafuegos para incluir el nuevo intervalo como origen. Puedes ampliar el intervalo de direcciones IP de los pods usando CIDR de varios pods no contiguos con el aprovisionamiento automático de nodos.

  • Cuando defines intervalos máximos de CPU y memoria, los límites se calculan para todo el clúster de GKE, no por nodo ni por grupo de nodos. El aprovisionamiento automático de nodos comprueba estos límites teniendo en cuenta la suma de los recursos de los grupos de nodos que hayas creado manualmente, de todos los grupos de nodos aprovisionados automáticamente que estén activos y de los nuevos nodos que pueda crear el aprovisionamiento automático de nodos. Si el aprovisionamiento de un nuevo nodo provoca que el uso total de recursos del clúster supere cualquiera de estos máximos especificados, el aprovisionamiento automático de nodos no creará el nuevo nodo. En este caso, los pods pueden permanecer sin programar si requieren recursos que superen los máximos definidos.

Habilitar el aprovisionamiento automático de nodos

Puedes habilitar el aprovisionamiento automático de nodos en un clúster con la CLI de gcloud o la consola deGoogle Cloud .

gcloud

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

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning \
    --min-cpu MINIMUM_CPU \
    --min-memory MINIMUM_MEMORY \
    --max-cpu MAXIMUM_CPU \
    --max-memory MAXIMUM_MEMORY \
    --autoprovisioning-scopes=https://www.googleapis.com/auth/logging.write,https://www.googleapis.com/auth/monitoring,https://www.googleapis.com/auth/devstorage.read_only

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster para habilitar el aprovisionamiento automático de nodos.
  • MINIMUM_CPU: número mínimo de núcleos del clúster.
  • MINIMUM_MEMORY: número mínimo de gigabytes de memoria del clúster.
  • MAXIMUM_CPU: número máximo de núcleos del clúster. Este límite suma los recursos de CPU de todos los grupos de nodos creados manualmente y de todos los grupos de nodos que se pueden crear mediante el aprovisionamiento automático de nodos.
  • MAXIMUM_MEMORY: número máximo de gigabytes de memoria del clúster. Este límite suma los recursos de memoria de todos los grupos de nodos creados manualmente y de todos los grupos de nodos que se puedan crear mediante el aprovisionamiento automático de nodos.

En el siguiente ejemplo, se habilita el aprovisionamiento automático de nodos en dev-cluster y se permite el escalado entre un tamaño total del clúster de 1 CPU y 1 gigabyte de memoria, y un máximo de 10 CPUs 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

Consola

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

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

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster.

  3. En la sección Automatización, en Aprovisionamiento automático de nodos, haz clic en Editar.

  4. Seleccione la casilla Habilitar aprovisionamiento automático de nodos.

  5. Define el uso mínimo y máximo de CPU y memoria que quieras para el clúster.

  6. Haz clic en Guardar cambios.

Usar 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 una sola línea si se usa para cambiar un solo ajuste. Se pueden especificar varios ajustes en un solo archivo de configuración. En este caso, todos esos ajustes se cambiarán cuando se aplique el archivo de configuración.

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

Ejemplo 1: Si aplicas el siguiente archivo de configuración, se habilitarán las funciones de reparación y actualización automáticas de nodos en los grupos de nodos que se creen con el aprovisionamiento automático de nodos:

management:
  autoRepair: true
  autoUpgrade: true

Ejemplo 2: Si se aplica el siguiente archivo de configuración, se cambiarán los siguientes ajustes:

  • Define límites de recursos para la CPU, la memoria y la GPU. El aprovisionamiento automático de nodos no crea un nodo si el total combinado de CPU, memoria o GPU de todos los grupos de nodos del clúster supera los límites de recursos especificados.
  • Habilita la reparación y la actualización automáticas de nodos en los grupos de nodos nuevos que se creen mediante el aprovisionamiento automático de nodos.
  • Habilita el arranque seguro y la monitorización de integridad en los grupos de nodos que se creen con el aprovisionamiento automático de nodos.
  • Define el tamaño del disco de arranque en 100 GB para los grupos de nodos que se creen con el aprovisionamiento automático de nodos.
# Set cluster-wide limits for CPU, memory, and hardware accelerators.
resourceLimits:
  - resourceType: 'cpu'
    minimum: 4
    maximum: 10
  - resourceType: 'memory'
    maximum: 64
  - resourceType: 'nvidia-tesla-t4'
    maximum: 4
# Enable automatic node repairs and upgrades for auto-created node pools.
management:
  autoRepair: true
  autoUpgrade: true
# Enable secure boot and integrity monitoring for auto-created node pools.
shieldedInstanceConfig:
  enableSecureBoot: true
  enableIntegrityMonitoring: true
# Set the boot disk size to 100 GB for auto-created node pools.
diskSizeGb: 100

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

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

  2. Aplica la configuración a tu clúster ejecutando el siguiente comando:

    gcloud container clusters update CLUSTER_NAME \
       --enable-autoprovisioning \
       --autoprovisioning-config-file FILE_NAME

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster.
    • FILE_NAME: el nombre del archivo de configuración.

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

Valores predeterminados del aprovisionamiento automático

El aprovisionamiento automático de nodos analiza los requisitos de los pods de tu clúster para determinar qué tipo de nodos se adapta mejor a esos pods. Sin embargo, algunos ajustes de los grupos de nodos no se especifican directamente en los pods (por ejemplo, los ajustes relacionados con las actualizaciones de los nodos). Puedes definir valores predeterminados para estos ajustes, que se aplicarán a todos los grupos de nodos que crees.

Definir el tipo de imagen de nodo predeterminado

Puedes especificar el tipo de imagen de nodo que se va a usar en todos los grupos de nodos aprovisionados automáticamente nuevos mediante la CLI de gcloud o un archivo de configuración. Este ajuste solo está disponible para la versión 1.20.6-gke.1800 y posteriores del clúster de GKE.

gcloud

Para definir el tipo de imagen de nodo predeterminado, ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
  --enable-autoprovisioning \
  --autoprovisioning-image-type IMAGE_TYPE

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • IMAGE_TYPE: el tipo de imagen del nodo, que puede ser uno de los siguientes:

    • cos_containerd: Container-Optimized OS con containerd.
    • ubuntu_containerd: Ubuntu con containerd.

YAML

En todos los grupos de nodos aprovisionados automáticamente, puede especificar el tipo de imagen de nodo que quiere usar mediante un archivo de configuración. La siguiente configuración YAML especifica que, en el caso de los grupos de nodos aprovisionados automáticamente, el tipo de imagen es cos_containerd y tiene límites de recursos asociados para la CPU y la memoria. Debes especificar los valores máximos de CPU y memoria para habilitar el aprovisionamiento automático.

  1. Guarda la configuración YAML:

    resourceLimits:
      - resourceType: 'cpu'
        minimum: 4
        maximum: 10
      - resourceType: 'memory'
        maximum: 64
    # Set the default node image type to Container-Optimized OS
    # with containerd, which is also the default GKE node
    # image.
    imageType: 'cos_containerd'
    
  2. Aplica la configuración:

    gcloud container clusters update CLUSTER_NAME \
      --enable-autoprovisioning \
      --autoprovisioning-config-file FILE_NAME
    

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster.
    • FILE_NAME: el nombre del archivo de configuración.

Definir identidades predeterminadas para grupos de nodos aprovisionados automáticamente

Los permisos de los recursos de Google Cloud se proporcionan mediante identidades.

Puedes especificar la identidad predeterminada (una cuenta de servicio o uno o varios ámbitos) de los nuevos grupos de nodos aprovisionados automáticamente mediante la CLI de gcloud o a través de un archivo de configuración.

.

gcloud

Para especificar la cuenta de servicio de gestión de identidades y accesos 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

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • SERVICE_ACCOUNT: el nombre de la cuenta de servicio predeterminada.

En el siguiente ejemplo se define 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 ámbitos predeterminados que usa el aprovisionamiento automático de nodos, ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning --autoprovisioning-scopes=SCOPE

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • SCOPE: los Google Cloud ámbitos que usan los grupos de nodos aprovisionados automáticamente. Para especificar varios permisos, sepáralos con una coma (por ejemplo, SCOPE1, SCOPE2,...).

En el siguiente ejemplo se asigna el valor devstorage.read_only al permiso predeterminado del clúster dev-cluster:

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

YAML

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

  serviceAccount: SERVICE_ACCOUNT

Sustituye SERVICE_ACCOUNT por el nombre de la cuenta de servicio predeterminada.

También puedes usar la siguiente configuración YAML para especificar los ámbitos predeterminados que usa el aprovisionamiento automático de nodos:

  scopes: SCOPE

Sustituye SCOPE por el Google Cloud ámbito utilizado por los grupos de nodos aprovisionados automáticamente. Para especificar varios permisos, sepáralos con una coma (por ejemplo, SCOPE1, SCOPE2,...).

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 predeterminados de identidad en una ubicación a la que pueda acceder la CLI de gcloud.

  2. Aplica la configuración a tu clúster ejecutando el siguiente comando:

    gcloud container clusters update CLUSTER_NAME \
       --enable-autoprovisioning \
       --autoprovisioning-config-file FILE_NAME

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • FILE_NAME: el nombre del archivo de configuración.

Claves de encriptado gestionadas por el cliente (CMEK)

Puedes especificar las claves de cifrado gestionadas por el cliente (CMEK) que usan los grupos de nodos aprovisionados automáticamente.

Puedes habilitar el cifrado gestionado por el cliente para los discos de arranque mediante un archivo de configuración. La siguiente configuración YAML define la clave CMEK:

  bootDiskKmsKey: projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

Haz los cambios siguientes:

  • KEY_PROJECT_ID: el ID de tu proyecto de clave.
  • LOCATION: la ubicación del conjunto de claves.
  • KEY_RING: el nombre del conjunto de claves.
  • KEY_NAME: el nombre de tu clave.

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 pueda acceder la CLI de gcloud.

  2. Aplica la configuración a tu clúster ejecutando el siguiente comando:

    gcloud container clusters update CLUSTER_NAME \
       --enable-autoprovisioning \
       --autoprovisioning-config-file FILE_NAME

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster.
    • FILE_NAME: el nombre del archivo de configuración.

Integridad de los nodos

El aprovisionamiento automático de nodos permite crear grupos de nodos con las funciones Arranque seguro y Monitorización de integridad habilitadas.

Puedes habilitar el arranque seguro y la monitorización de integridad mediante un archivo de configuración. La siguiente configuración YAML habilita el arranque seguro e inhabilita la monitorizació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 en una ubicación a la que pueda acceder la CLI de gcloud. Edita los valores de enableSecureBoot y enableIntegrityMonitoring. Guarda el archivo.

  2. Aplica la configuración a tu clúster ejecutando el siguiente comando:

    gcloud container clusters update CLUSTER_NAME \
       --enable-autoprovisioning \
       --autoprovisioning-config-file FILE_NAME

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster.
    • FILE_NAME: el nombre del archivo de configuración.

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

El aprovisionamiento automático de nodos permite crear 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 aprovisionados automáticamente, ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning --enable-autoprovisioning-autorepair \
    --enable-autoprovisioning-autoupgrade

Sustituye CLUSTER_NAME por el nombre del clúster.

Para inhabilitar la reparación y la actualización automáticas en todos los grupos de nodos aprovisionados automáticamente, ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning --no-enable-autoprovisioning-autorepair \
    --no-enable-autoprovisioning-autoupgrade

Sustituye CLUSTER_NAME por el nombre del clúster.

YAML

Puedes habilitar o inhabilitar la reparación y la actualización automáticas de los nodos mediante un archivo de configuración. La siguiente configuración de YAML habilita la reparación automática e inhabilita 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 en una ubicación a la que pueda acceder la CLI de gcloud. Edita los valores de autoUpgrade y autoRepair. Guarda el archivo.

  2. Aplica la configuración a tu clúster ejecutando el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning \
    --autoprovisioning-config-file FILE_NAME

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • FILE_NAME: el nombre del archivo de configuración.

Usar actualizaciones de aumento para los grupos de nodos aprovisionados automáticamente

Puedes especificar la configuración de actualización de picos en todos los grupos de nodos aprovisionados automáticamente nuevos mediante la CLI de gcloud o un archivo de configuración. De forma predeterminada, GKE define la estrategia de actualización de nodos como actualizaciones de aumento.

gcloud

Para especificar la configuración de actualización de picos de todos los grupos de nodos aprovisionados automáticamente, ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning \
    --autoprovisioning-max-surge-upgrade MAX_SURGE \
    --autoprovisioning-max-unavailable-upgrade MAX_UNAVAILABLE

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • MAX_SURGE: número máximo de nodos que se pueden añadir al grupo de nodos durante las actualizaciones.
  • MAX_UNAVAILABLE: el número máximo de nodos del grupo de nodos que pueden no estar disponibles simultáneamente durante las actualizaciones.

YAML

Puede especificar los ajustes de actualización de picos de demanda para todos los grupos de nodos aprovisionados automáticamente nuevos 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 en una ubicación a la que pueda acceder gcloud. Edita los valores de maxSurgeUpgrade y maxUnavailableUpgrade. Guarda el archivo.

  2. Aplica la configuración a tu clúster ejecutando el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning \
    --autoprovisioning-config-file FILE_NAME

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • FILE_NAME: el nombre del archivo de configuración.

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

Para volver a usar las actualizaciones de picos de demanda en los nuevos grupos de nodos aprovisionados automáticamente, ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
  --enable-autoprovisioning \
  --enable-autoprovisioning-surge-upgrade

Sustituye CLUSTER_NAME por el nombre del clúster.

También puedes incluir las marcas de ajustes específicos, como en los comandos anteriores. GKE reutiliza la configuración anterior de la estrategia de actualización, si se había definido.

Usar actualizaciones azul-verde en grupos de nodos aprovisionados automáticamente

Puedes usar actualizaciones azul-verde en todos los grupos de nodos aprovisionados automáticamente nuevos mediante la CLI de gcloud. Con las actualizaciones azul-verde, puedes usar la configuración predeterminada o ajustarla para optimizarla en tu entorno. Para obtener más información sobre las actualizaciones azul-verde, consulta Actualizaciones azul-verde.

Para actualizar la estrategia de actualización de nodos de cualquier grupo de nodos aprovisionado automáticamente, consulta Activar o desactivar la actualización de picos en un grupo de nodos y Actualizar la estrategia de actualización azul-verde de un grupo de nodos.

En los comandos que se indican a continuación se usan las siguientes variables:

  • CLUSTER_NAME: el nombre del clúster del nodo pool.
  • COMPUTE_ZONE: la zona del clúster.
  • NODE_POOL_NAME: el nombre del grupo de nodos.
  • NUMBER_NODES: el número de nodos del grupo de nodos en cada una de las zonas del clúster.
  • BATCH_NODE_COUNT: número de nodos azules que se van a vaciar en un lote durante la fase de vaciado del grupo azul. El valor predeterminado es 1. Si se le asigna el valor cero, se omitirá la fase de drenaje del grupo azul.
  • BATCH_PERCENT: porcentaje de nodos azules que se van a vaciar en un lote durante la fase de vaciado del grupo azul. Debe estar en el intervalo [0,0, 1,0].
  • BATCH_SOAK_DURATION: duración en segundos que se debe esperar después de cada purga por lotes. El valor predeterminado es cero.
  • NODE_POOL_SOAK_DURATION: la duración en segundos que se debe esperar después de completar el vaciado de todos los lotes. El valor predeterminado es de 3600 segundos.

La configuración predeterminada de las actualizaciones azul-verde es la siguiente:

  • BATCH_NODE_COUNT = 1
  • BATCH_SOAK_DURATION = 0 segundos
  • NODE_POOL_SOAK_DURATION = 3600 segundos (1 hora)

Actualizar un clúster para usar actualizaciones azul-verde en los nuevos grupos de nodos aprovisionados automáticamente

Los siguientes comandos usan gcloud container clusters update para actualizar la estrategia de actualización de nodos de los nuevos grupos de nodos aprovisionados automáticamente.

También puedes usar estas marcas cuando:

Para actualizar un clúster de forma que use las actualizaciones azul-verde con la configuración predeterminada de los nuevos grupos de nodos aprovisionados automáticamente, usa este comando:

gcloud container clusters update CLUSTER_NAME \
  --enable-autoprovisioning \
  --enable-autoprovisioning-blue-green-upgrade

Puedes actualizar un clúster para que use actualizaciones azul-verde con ajustes específicos para los nuevos grupos de nodos aprovisionados automáticamente. Estos comandos también se pueden usar sin la marca --enable-autoprovisioning-blue-green-upgrade para actualizar la configuración.

El siguiente comando usa BATCH_NODE_COUNT para definir un tamaño de lote de recuento de nodos absoluto:

gcloud container clusters update CLUSTER_NAME \
  --enable-autoprovisioning \
  --enable-autoprovisioning-blue-green-upgrade \
  --autoprovisioning-node-pool-soak-duration=NODE_POOL_SOAK_DURATION \
  --autoprovisioning-standard-rollout-policy=batch-node-count=BATCH_NODE_COUNT,batch-soak-duration=BATCH_SOAK_DURATION

También puedes usar BATCH_PERCENT para definir un tamaño de lote basado en porcentajes. Para ello, sustituye batch-node-count en el último comando por batch-percent y usa un decimal entre 0 y 1 (por ejemplo, el 25% es 0.25). Para ver cómo se definen los tamaños de lote basados en porcentajes, consulta Actualizar un grupo de nodos con una actualización azul/verde usando tamaños de lote basados en porcentajes.

Discos de arranque personalizados

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

Puedes personalizar el ajuste del disco de arranque mediante un archivo de configuración. GKE reserva una parte del disco de arranque del nodo para las funciones de kubelet. Para obtener más información, consulta Almacenamiento efímero respaldado por el disco de arranque del nodo.

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 lo siguiente:

  • diskSizeGb: tamaño del disco, especificado en GB.
  • diskType: el tipo de disco, que puede ser uno de los siguientes valores:
    • pd-balanced (predeterminado)
    • pd-standard
    • pd-ssd. En la versión 1.22 de GKE y versiones anteriores, si especificas pd-ssd, el aprovisionamiento automático de nodos solo tiene en cuenta los tipos de máquina N1 al crear grupos de nodos.

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 que quieras en una ubicación a la que pueda acceder la CLI de gcloud.

  2. Aplica la configuración a tu clúster ejecutando el siguiente comando:

    gcloud container clusters update CLUSTER_NAME \
       --enable-autoprovisioning \
       --autoprovisioning-config-file FILE_NAME

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster.
    • FILE_NAME: el nombre del archivo de configuración.

Separar los pods gestionados por GKE de tus cargas de trabajo

Como administrador de clústeres, puede que quieras separar los pods que gestiona GKE de tus cargas de trabajo. Esta separación ayuda a evitar problemas de reducción si hay nodos infrautilizados en el clúster que tienen pods del sistema en ejecución.

En el siguiente ejemplo se muestra cómo puedes separar los pods gestionados de tus cargas de trabajo usando una combinación de aprovisionamiento automático de nodos y taints y tolerancias de Kubernetes.

  1. Crea un grupo de nodos de e2-standard-2 VMs y aplica un taint de nodo que solo permita que las cargas de trabajo del sistema de GKE se ejecuten en esos nodos:

    gcloud container node-pools create NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --machine-type=e2-standard-2 \
        --node-taints=components.gke.io/gke-managed-components=true:NoSchedule
    

    Haz los cambios siguientes:

    • NODE_POOL_NAME: el nombre que elijas para tu grupo de nodos.
    • CLUSTER_NAME: el nombre del clúster.
  2. Habilita el aprovisionamiento automático de nodos en el clúster:

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

    Tu clúster puede escalar entre un tamaño total de 1 CPU y 1 gigabyte de memoria, y un máximo de 10 CPUs y 64 gigabytes de memoria.

  3. Para probar esta configuración, guarde el siguiente archivo de manifiesto de ejemplo como nginx.yaml:

    apiVersion: v1
    kind: Pod
    metadata:
      name: nginx
      labels:
        env: test
    spec:
      containers:
      - name: nginx
        image: nginx
        imagePullPolicy: IfNotPresent
      # Allow this Pod to run on nodes that have a dedicated: ui-team taint.
      tolerations:
      - key: dedicated
        operator: Equal
        value: ui-team
        # The NoSchedule effect prevents Pods that don't have this toleration from
        # running on the nodes.
        effect: NoSchedule
      nodeSelector:
        # Run this Pod only on nodes that have the dedicated: ui-team node label.
        dedicated: ui-team
    

    Este manifiesto despliega un pod de carga de trabajo de prueba en el clúster con una etiqueta nodeSelector y un taint de nodo dedicated: ui-team. Sin el aprovisionamiento automático de nodos, este pod de carga de trabajo no se puede programar porque ningún grupo de nodos tiene la etiqueta y las intolerancias adecuadas.

  4. Aplica el manifiesto al clúster:

    kubectl apply -f nginx.yaml
    

    El resultado debería ser similar al siguiente:

    pod/nginx created
    
  5. Consulta el nuevo grupo de nodos que se ajusta a la etiqueta ui-team:

    kubectl get node --selector=dedicated=ui-team
    

    El resultado debería ser similar al siguiente:

    NAME                                            STATUS   ROLES    AGE   VERSION
    gke-test-nap-e2-medium-14b723z1-19f89fa8-jmhr   Ready    <none>   14s   v1.21.11-gke.900
    

Tu clúster separa tus cargas de trabajo de los pods de GKE gestionados.

Limitar el tiempo de ejecución de los nodos aprovisionados automáticamente

En la versión 1.31.2-gke.1518000 de GKE y versiones posteriores, puedes limitar el tiempo de ejecución de los nodos aprovisionados automáticamente mediante el cloud.google.com/gke-max-run-duration-seconds selector de nodos. Añade el siguiente campo al archivo de manifiesto:

spec:
  nodeSelector:
    cloud.google.com/gke-max-run-duration-seconds: "MAX_RUN_DURATION"

Sustituye MAX_RUN_DURATION por la duración, en segundos, que quieres que se ejecute el nodo aprovisionado automáticamente antes de que se termine automáticamente. Para obtener información sobre las restricciones, consulta Restricciones de MaxRunDuration.

Usar aceleradores en grupos de nodos aprovisionados automáticamente

Puedes habilitar el aprovisionamiento automático de nodos y configurar GKE para que aprovisione automáticamente aceleradores de GPU o TPU de Cloud. De esta forma, te asegurarás de que haya capacidad suficiente para programar cargas de trabajo de IA o aprendizaje automático.

Configurar límites de GPU

Cuando se usa el aprovisionamiento automático de nodos con GPUs, se debe definir el límite máximo de cada tipo de GPU del clúster mediante la CLI de gcloud o laGoogle Cloud consola. El límite de GPU es el número máximo de GPU. Por ejemplo, una VM con 16 GPUs cuenta como 16, no como 1, a efectos de este límite. Para 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

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • MAXIMUM_CPU: número máximo de núcleos del clúster.
  • MAXIMUM_MEMORY: número máximo de gigabytes de memoria del clúster.
  • GPU_TYPE: el tipo de GPU.
  • MINIMUM_ACCELERATOR: número mínimo de aceleradores de GPU del clúster.
  • MAXIMUM_ACCELERATOR: número máximo de aceleradores de GPU del clúster.

En el siguiente ejemplo se definen los límites de GPU para el tipo de acelerador de GPU nvidia-tesla-t4 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-t4,count=1 \
    --max-accelerator type=nvidia-tesla-t4,count=4

YAML

Puedes cargar límites para varios tipos de GPU mediante un archivo de configuración. La siguiente configuración de YAML configura dos tipos de GPUs diferentes:

  resourceLimits:
    - resourceType: 'cpu'
      minimum: 4
      maximum: 10
    - resourceType: 'memory'
      maximum: 64
    # Limit the number of T4 GPUs in the cluster to 4.
    - resourceType: 'nvidia-tesla-t4'
      maximum: 4
    # Limit the number of V100 GPUs in the cluster to 2.
    - 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 en una ubicación a la que pueda acceder la CLI de gcloud. Edita los valores de cpu y memory. Añade tantos valores para resourceType como necesites. Guarda el archivo.

  2. Aplica la configuración a tu clúster ejecutando el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning \
    --autoprovisioning-config-file FILE_NAME

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • FILE_NAME: el nombre del archivo de configuración.

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

Consola

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

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

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster.

  3. En la sección Automatización, en Aprovisionamiento automático de nodos, haz clic en Editar.

  4. Seleccione la casilla Habilitar aprovisionamiento automático de nodos.

  5. Define el uso mínimo y máximo de CPU y memoria del clúster.

  6. Haz clic en Añadir recurso.

  7. Selecciona el tipo de GPU que quieras añadir (por ejemplo, NVIDIA T4). Define el número mínimo y máximo de GPUs que se añadirán al clúster.

  8. Acepta las limitaciones de las GPUs en GKE.

  9. Haz clic en Guardar cambios.

Elegir una versión del controlador para instalar

En la versión 1.29.2-gke.1108000 de GKE y versiones posteriores, puedes seleccionar una versión del controlador de GPU para que GKE la instale automáticamente en los nodos de GPU aprovisionados automáticamente. Añade el siguiente campo al archivo de manifiesto:

spec:
  nodeSelector:
    cloud.google.com/gke-gpu-driver-version: "DRIVER_VERSION"

Sustituye DRIVER_VERSION por uno de los siguientes valores:

  • default: es el controlador predeterminado y estable de la versión de GKE de tu nodo. Si omites el elemento nodeSelector en tu manifiesto, esta será la opción predeterminada.
  • latest: la versión del controlador más reciente disponible para la versión de GKE de tu nodo.

Configurar TPUs de Cloud

Si usas el aprovisionamiento automático de nodos para uno o varios recursos de TPU, debes configurar los límites de TPU. Para obtener más información sobre cómo funciona el aprovisionamiento automático de nodos con las TPUs, consulta Aceleradores de aprendizaje automático compatibles.

Configura tus pods para que usen recursos de TPU mediante gcloud CLI. Para configurar varios tipos de TPU, debes usar un archivo de configuración.

gcloud

  1. Actualiza el clúster y define los límites de TPU:

    gcloud container clusters update CLUSTER_NAME \
        --enable-autoprovisioning \
        [--min-cpu  MINIMUM_CPU ] \
        --max-cpu MAXIMUM_CPU \
        [--min-memory MINIMUM_MEMORY ] \
        --max-memory MAXIMUM_MEMORY \
        --min-accelerator=type=TPU_TYPE,count= MINIMUM_ACCELERATOR  \
        --max-accelerator=type=TPU_TYPE,count= MAXIMUM_ACCELERATOR
    

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster.
    • MINIMUM_CPU: número mínimo de vCPUs del clúster.
    • MAXIMUM_CPU: número máximo de vCPUs del clúster.
    • MINIMUM_MEMORY:número mínimo de gigabytes de memoria del clúster.
    • MAXIMUM_MEMORY: número máximo de gigabytes de memoria del clúster.
    • TPU_TYPE: el tipo de TPU que elijas:
      • Para seleccionar TPU v4, usa tpu-v4-podslice.
      • Para seleccionar la versión 5e de las TPU con un tipo de máquina que empiece por ct5lp-, usa tpu-v5-lite-podslice.
      • Para seleccionar la TPU v5p con un tipo de máquina que empiece por ct5p-, usa tpu-v5p-slice.
      • Para seleccionar TPU Trillium, usa tpu-v6e-slice.
    • MINIMUM_ACCELERATOR: número mínimo de chips de TPU del clúster.
      • Ten en cuenta que usar MINIMUM_ACCELERATOR puede impedir que se reduzca la escala de las slices de TPU de varios hosts, aunque count sea inferior al número de chips de TPU de la slice.
    • MAXIMUM_ACCELERATOR: número máximo de chips de TPU del clúster.
      • Si la configuración del pod solicita un segmento de TPU de varios hosts, GKE crea ese segmento de forma atómica. Define el valor de count de forma que sea lo suficientemente alto como para permitir el aprovisionamiento de todos los chips de TPU de la topología especificada. El número de chips de cada segmento de TPU es igual al producto de la topología. Por ejemplo, si la topología del segmento de TPU multihost es 2x2x2, el número de chips de TPU es 8, por lo que MAXIMUM_ACCELERATOR debe ser superior a 8.

    En el siguiente ejemplo se definen los límites de TPU para los tipos de máquina ct5lp-hightpu-1t, ct5lp-hightpu-4t y ct5lp-hightpu-8t del clúster dev-cluster. Por ejemplo, se podrían aprovisionar hasta diez ct5lp-hightpu-4t máquinas, cada una con 4 chips TPU, 112 vCPUs y 192 GiB de memoria.

    gcloud container clusters update dev-cluster-inference \
          --enable-autoprovisioning \
          --min-cpu 0 \
          --max-cpu 1120 \
          --min-memory 0 \
          --max-memory 1920 \
          --min-accelerator=type=tpu-v5-lite-podslice,count=0 \
          --max-accelerator=type=tpu-v5-lite-podslice,count=40
    
  2. Crea una especificación de Deployment que dé como resultado un Pod que solicite recursos de TPU. Por ejemplo, el siguiente manifiesto hará que GKE aprovisione cuatro nodos ct5lp-hightpu-4t:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: tpu-workload
      labels:
        app: tpu-workload
    spec:
      replicas: 4
      selector:
        matchLabels:
          app: nginx-tpu
      template:
        metadata:
          labels:
            app: nginx-tpu
        spec:
          nodeSelector:
            # Request a TPU type and topology.
            cloud.google.com/gke-tpu-accelerator: tpu-v5-lite-podslice
            cloud.google.com/gke-tpu-topology:  2x2
            # Request resources from a specific capacity reservation.
            cloud.google.com/reservation-name: my-reservation
          containers:
          - name: nginx
            image: nginx:1.14.2
            # Request a specific number of TPU chips for each node.
            resources:
              requests:
                google.com/tpu: 4
              limits:
                google.com/tpu: 4
            ports:
            - containerPort: 80
    

    En el campo nodeSelector, define el tipo de TPU, la topología de TPU y el número de aceleradores.

    • cloud.google.com/gke-tpu-accelerator: define el tipo de TPU. Por ejemplo, tpu-v4-podslice.
    • cloud.google.com/gke-tpu-topology: define la topología de la TPU. Por ejemplo, 2x2x1 o 4x4x8.
    • limits: google.com/tpu: define el número de chips de TPU por nodo.

    También puedes configurar los siguientes campos en nodeSelector:

    • Reserva de TPU: para consumir una reserva con tu carga de trabajo, especifica el nombre de la reserva en cloud.google.com/reservation-name.
    • Programación de la recogida: para crear una recogida con aprovisionamiento automático de nodos, incluye los siguientes valores en función del tipo de grupo de nodos que solicites:
      • Grupo de nodos de segmento de TPU de un solo host: cloud.google.com/gke-workload-type: HIGH_AVAILABILITY.
      • Grupo de nodos de segmento de TPU multihost: cloud.google.com/gke-nodepool-group-name: COLLECTION_NAME, cloud.google.com/gke-workload-type: HIGH_AVAILABILITY. Sustituye el valor COLLECTION_NAME por el nombre de la colección. Este valor debe cumplir los requisitos de las etiquetas de clústeres.

YAML

Puedes asignar límites a varios tipos de TPUs mediante un archivo de configuración. La siguiente configuración de YAML configura dos tipos diferentes de TPUs:

  resourceLimits:
    - resourceType: 'cpu'
      maximum: 10000
    - resourceType: 'memory'
      maximum: 10000
    # Limit the number of TPU v4 chips in the cluster to 32.
    - resourceType: 'tpu-v4-podslice'
      maximum: 32
    # Limit the number of TPU v5 chips in the cluster to 64.
    - resourceType: 'tpu-v5-lite'
      maximum: 64

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

  1. Copia la configuración anterior en un archivo en una ubicación a la que pueda acceder la CLI de gcloud. Edita los valores de resourceType y maximum. Añade tantos valores para resourceType como necesites. Guarda el archivo.

  2. Aplica la configuración a tu clúster ejecutando el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
    --enable-autoprovisioning \
    --autoprovisioning-config-file FILE_NAME

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • FILE_NAME: el nombre del archivo de configuración.

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

Ubicaciones de aprovisionamiento automático de nodos

Tú defines las zonas en las que el aprovisionamiento automático de nodos puede crear grupos de nodos. No se admiten las ubicaciones regionales. Las zonas deben pertenecer a la misma región que el clúster, pero no se limitan a las ubicaciones de los nodos definidas a nivel de clúster. Cambiar las ubicaciones de aprovisionamiento automático de nodos no afecta a los grupos de nodos que ya tengas.

Para definir las ubicaciones en las que el aprovisionamiento automático de nodos puede crear grupos de nodos, usa la CLI de gcloud o un archivo de configuración.

gcloud

Ejecuta el siguiente comando:

gcloud container clusters update CLUSTER_NAME \
  --enable-autoprovisioning --autoprovisioning-locations=ZONE

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del clúster.
  • ZONE: la zona en la que el aprovisionamiento automático de nodos puede crear grupos de nodos. Para especificar varias zonas, sepáralas con comas (por ejemplo, ZONE1, ZONE2,...).

YAML

Para definir las ubicaciones en las que el aprovisionamiento automático de nodos puede crear grupos de nodos, puede usar un archivo de configuración.

Añade la siguiente configuración YAML que define la ubicación de los nuevos grupos de nodos:

    autoprovisioningLocations:
      - ZONE

Sustituye ZONE por la zona en la que el aprovisionamiento automático de nodos puede crear grupos de nodos. Para especificar varias zonas, añade más zonas a la lista. Guarda el archivo.

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

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

  2. Aplica la configuración a tu clúster:

    gcloud container clusters update CLUSTER_NAME \
        --enable-autoprovisioning \
        --autoprovisioning-config-file FILE_NAME
    

    Haz los cambios siguientes:

    • CLUSTER_NAME: el nombre del clúster.
    • FILE_NAME: la ruta del archivo de configuración.

Nodos más cercanos físicamente con una colocación compacta

A partir de la versión 1.25 de GKE, el aprovisionamiento automático de nodos admite la política de colocación compacta. Con la política de colocación compacta, puedes indicar a GKE que cree grupos de nodos más próximos entre sí dentro de una zona.

Para definir una política de colocación compacta, añade un nodeSelector a la especificación de Pod con las siguientes claves:

  • cloud.google.com/gke-placement-group es el identificador que asignas al grupo de pods que deben ejecutarse juntos en el mismo grupo de emplazamiento compacto.

  • cloud.google.com/machine-family es el nombre de la familia de la máquina. Para obtener más información, consulta las familias de máquinas que admiten la colocación compacta.

En el siguiente ejemplo se define una política de posición compacta con el identificador de grupo de posiciones placement-group-1 y la familia de equipos c2:

apiVersion: v1
kind: Pod
metadata:
  ...
spec:
  ...
  nodeSelector:
    cloud.google.com/gke-placement-group: placement-group-1
    cloud.google.com/machine-family: c2

Para obtener más información, consulta cómo definir la colocación compacta de nodos de GKE.

Inhabilitar el aprovisionamiento automático de nodos

Si inhabilitas el aprovisionamiento automático de nodos en un clúster, los grupos de nodos ya no se aprovisionarán automáticamente.

gcloud

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

gcloud container clusters update CLUSTER_NAME \
  --no-enable-autoprovisioning

Sustituye CLUSTER_NAME por el nombre de tu clúster.

YAML

Para inhabilitar el aprovisionamiento automático de nodos mediante la consola de Google Cloud :

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

    Ir a Google Kubernetes Engine

  2. Haz clic en el nombre del clúster.

  3. En la sección Automatización, en Aprovisionamiento automático de nodos, haz clic en Editar.

  4. Desmarca la casilla Habilitar aprovisionamiento automático de nodos.

  5. Haz clic en Guardar cambios.

Marcar un grupo de nodos como aprovisionado automáticamente

Después de habilitar el aprovisionamiento automático de nodos en el clúster, puedes especificar qué grupos de nodos se aprovisionan automáticamente. Un grupo de nodos aprovisionado automáticamente se elimina automáticamente cuando no lo usa ninguna carga de trabajo.

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

gcloud container node-pools update NODE_POOL_NAME \
  --enable-autoprovisioning

Sustituye NODE_POOL_NAME por el nombre del grupo de nodos.

Marcar un grupo de nodos como no aprovisionado automáticamente

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

gcloud container node-pools update NODE_POOL_NAME \
  --no-enable-autoprovisioning

Sustituye NODE_POOL_NAME por el nombre del grupo de nodos.

Usar una familia de máquinas personalizada

Puedes elegir una serie de máquinas de Compute Engine específica, como n2 o t2d, para tus cargas de trabajo configurando uno de los siguientes campos en tu manifiesto:

  • Define la afinidad de nodo con la clave cloud.google.com/machine-family, el operador In y el valor de la familia de máquinas que quieras (por ejemplo, n2).
  • Añade un nodeSelector con la clave cloud.google.com/machine-family y el valor de la familia de máquinas que quieras.

En este ejemplo se asigna el valor nodeAffinity a una familia de máquinas n2:

spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: cloud.google.com/machine-family
            operator: In
            values:
            - n2

Después de aplicar los cambios, el aprovisionamiento automático de nodos elige el mejor grupo de nodos con un tipo de máquina de la serie de máquinas especificada. Si especifica varias entradas para matchExpressions, GKE elige arbitrariamente una serie de máquinas de las entradas especificadas.

Controlar los atributos de los nodos con una clase de cálculo personalizada

Para tener más control sobre los atributos de tus grupos de nodos aprovisionados automáticamente, crea y usa clases de computación personalizadas. Las clases de computación personalizadas te permiten configurar comportamientos de escalado, como las prioridades de respaldo al elegir tipos de máquinas para nodos o umbrales de utilización de recursos específicos que activan la consolidación de cargas de trabajo en nodos para liberar recursos no utilizados. Las clases de computación personalizadas se pueden usar en GKE 1.30.3-gke.1451000 y versiones posteriores.

Para obtener información sobre las funciones de las clases de computación personalizadas y cómo usarlas con el aprovisionamiento automático de nodos, consulta Acerca de las clases de computación personalizadas.

Plataforma de CPU mínima

El aprovisionamiento automático de nodos permite crear grupos de nodos con una plataforma de CPU mínima especificada. Puedes especificar la plataforma de CPU mínima a nivel de carga de trabajo (opción recomendada) o de clúster.

Siguientes pasos