Crea un clúster regional

En este documento se muestra cómo crear un clúster regional estándar para aumentar la disponibilidad del plano de control y las cargas de trabajo del clúster durante las actualizaciones del clúster, el mantenimiento automático o una interrupción zonal.

Los clústeres de Autopilot de GKE siempre son regionales.

Descripción general

Cuando creas un clúster regional en lugar de un clúster zonal, el plano de control del clúster se replica en varias zonas en una región determinada. Para los grupos de nodos en un clúster regional, puedes especificar de forma manual las zonas en las que se ejecutan los grupos de nodos o puedes usar la configuración predeterminada, que replica cada grupo de nodos en tres zonas de la región del plano de control. Todas las zonas deben estar dentro de la misma región que el plano de control del clúster.

Los clústeres regionales replican recursos en varias zonas y consumen cuotas adicionales.

Para obtener información sobre los diferentes tipos de disponibilidad del clúster, consulta Acerca de las opciones de configuración del clúster.

En las instrucciones de las siguientes secciones, se explica cómo hacer lo siguiente:

Después de crear un clúster regional, no puedes convertirlo en un clúster zonal.

La información mínima que debes especificar cuando creas un clúster regional nuevo es un nombre, un proyecto (por lo general, el proyecto actual) y una región (por lo general, la ubicación predeterminada para las herramientas de línea de comandos), con la configuración predeterminada para todos los demás valores. Sin embargo, hay más parámetros de configuración posibles, de los cuales solo algunos se describen en esta guía y otros no se pueden cambiar después de crear el clúster. Asegúrate de comprender qué parámetros de configuración no se pueden cambiar después de crear el clúster y de elegir el parámetro de configuración correcto cuando crees un clúster si no quieres tener que volver a crearlo.

Puedes ver una descripción general de las opciones de configuración del clúster en Acerca de las opciones de configuración del clúster y una lista completa de las opciones posibles en las guías de referencia de gcloud container clusters create y google_container_cluster de Terraform.

Antes de comenzar

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

  • Habilita la API de Google Kubernetes Engine.
  • Habilitar la API de Google Kubernetes Engine
  • Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta el comando gcloud components update para obtener la versión más reciente. Es posible que las versiones anteriores de gcloud CLI no admitan la ejecución de los comandos que se describen en este documento.

Configura cuentas de servicio de IAM para GKE

GKE usa cuentas de servicio de IAM que se adjuntan a tus nodos para ejecutar tareas del sistema, como el registro y la supervisión. Como mínimo, estas cuentas de servicio de nodo deben tener el rol de cuenta de servicio de nodo predeterminado de Kubernetes Engine (roles/container.defaultNodeServiceAccount) en tu proyecto. De forma predeterminada, GKE usa la cuenta de servicio predeterminada de Compute Engine, que se crea automáticamente en tu proyecto, como la cuenta de servicio del nodo.

Para otorgar el rol roles/container.defaultNodeServiceAccount a la cuenta de servicio predeterminada de Compute Engine, completa los siguientes pasos:

Console

  1. Ve a la página Bienvenido:

    Ir a Bienvenida

  2. En el campo Número del proyecto, haz clic en Copiar en el portapapeles.
  3. Ve a la página IAM:

    Ir a IAM

  4. Haz clic en Grant access.
  5. En el campo Principales nuevas, especifica el siguiente valor:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    Reemplaza PROJECT_NUMBER por el número de proyecto que copiaste.
  6. En el menú Selecciona un rol, selecciona el rol de Cuenta de servicio de nodo predeterminado de Kubernetes Engine.
  7. Haz clic en Guardar.

gcloud

  1. Busca tu Google Cloud número de proyecto:
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    Reemplaza PROJECT_ID con el ID del proyecto.

    El resultado es similar a este:

    12345678901
    
  2. Otorga el rol roles/container.defaultNodeServiceAccount a la cuenta de servicio predeterminada de Compute Engine:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/container.defaultNodeServiceAccount"

    Reemplaza PROJECT_NUMBER por el número de proyecto del paso anterior.

Crear un clúster regional con un grupo de nodos de zona única

En las siguientes instrucciones, se muestra cómo crear un clúster regional con un grupo de nodos que opera en una zona única dentro de la región. El plano de control del clúster se replica en varias zonas de la región especificada, pero los nodos se encuentran en la zona única y no se replican en otras zonas.

Puedes usar gcloud CLI, la consola de Google Cloud o Terraform para crear el clúster.

Si estás desarrollando aplicaciones de GKE con Cloud Code para VS Code, intenta crear clústeres con Cloud Code.

gcloud

Antes de ejecutar los comandos de gcloud CLI para crear el clúster, configura el proyecto correcto ejecutando el siguiente comando:

gcloud config set project PROJECT_ID
# gcloud config set billing/quota_project PROJECT_ID

Para crear un clúster regional con la CLI de gcloud, usa uno de los siguientes comandos y reemplaza las siguientes variables:

  • CLUSTER_NAME: Es el nombre del clúster regional nuevo.
  • CONTROL_PLANE_LOCATION: La región de Compute Engine del plano de control de tu clúster. Proporciona una región, como us-central1.
  • COMPUTE_ZONE: la zona del grupo de nodos, como us-central1-a. La zona debe estar en la misma región que el plano de control del clúster.
  • CHANNEL: Es el tipo de canal de versiones, que puede ser rapid, regular, stable o None. De forma predeterminada, el clúster se inscribe en el canal de versiones regular, a menos que se especifique al menos una de las siguientes marcas: --cluster-version, --release-channel, --no-enable-autoupgrade, y --no-enable-autorepair.
  • VERSION: Es la versión que deseas especificar para el clúster.

Te recomendamos que especifiques una cuenta de servicio de IAM con privilegios mínimos que tus nodos puedan usar en lugar de la cuenta de servicio predeterminada de Compute Engine. Para obtener información sobre cómo crear una cuenta de servicio con privilegios mínimos, consulta Usa una cuenta de servicio privilegio mínimo mínimos.

Para especificar una cuenta de servicio personalizada en gcloud CLI, agrega la siguiente marca a tu comando:

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Reemplaza SERVICE_ACCOUNT_NAME por el nombre de tu cuenta de servicio con privilegios mínimos.

Usa un canal de versiones específico:

Para crear un clúster nuevo con un canal de versiones específico, ejecuta el siguiente comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE \
    --release-channel CHANNEL

Usa una versión específica:

Para crear un clúster nuevo con una versión de clúster específica, ejecuta el siguiente comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE \
    --cluster-version VERSION

Usa la versión predeterminada para clústeres no inscritos en un canal de versiones:

Para crear un clúster nuevo con la versión predeterminada para clústeres no inscritos en un canal de versiones, no necesitas especificar una versión del clúster, pero debes configurar el canal de versiones como None:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations COMPUTE_ZONE \
    --release-channel None

Ejemplo

Con el siguiente comando, se crea un clúster regional inscrito en el canal de versiones regular (predeterminado), con tres nodos (predeterminado) en la zona us-west1-c:

gcloud container clusters create my-regional-cluster \
    --location us-west1 \
    --node-locations us-west1-c

Ejemplo

Con el siguiente comando, se crea un clúster regional inscrito en el canal de versiones regular (predeterminado), con dos nodos ubicados en la zona us-west1-c:

gcloud container clusters create my-regional-cluster \
    --location us-west1 \
    --node-locations us-west1-c \
    --num-nodes 2

Console

  1. En la consola de Google Cloud , ve a la página Crea un clúster de Kubernetes.

    Ir a Crea un clúster de Kubernetes

  2. En la sección Aspectos básicos del clúster, completa lo siguiente:

    1. Ingresa el nombre de tu clúster.
    2. En Tipo de ubicación, selecciona Regional y, luego, la región que desees para el clúster.
    3. Si deseas anular las ubicaciones de nodos predeterminadas (por ejemplo, para ejecutarlas en una zona única), selecciona la casilla de verificación Especificar las ubicaciones predeterminada de nodos y, luego, elige las zonas en las que deseas que se ejecuten los grupos de nodos.

    4. Elige un canal de versiones. De manera opcional, puedes seleccionar Sin canal en la lista desplegable. Sin embargo, te recomendamos que revises la comparación entre los clústeres inscritos y los que no están inscritos en un canal de versiones antes de elegir esta opción. GKE actualiza de forma automática los clústeres que no están en un canal de versiones con versiones del canal estable.

    5. Opcional: Especifica una versión del plano de control en la lista desplegable Versión.

  3. Opcional: Configura otros parámetros para tu nuevo clúster.

  4. Opcional: Si deseas registrar tu clúster nuevo en una flota, ve a la sección Registro de flotas y sigue las instrucciones de la consola Google Cloud para crear y registrar un clúster nuevo y completar el registro del clúster.

  5. En el panel de navegación, en Grupos de nodos, haz clic en default-pool.

  6. En la sección Detalles del grupo de nodos, completa lo siguiente:

    1. Ingresa un Nombre para el Grupo de nodos predeterminado.
    2. Opcional: Elige la Versión del nodo.
    3. Ingresa la Cantidad de nodos que deseas crear en el clúster. Debes tener una cuota de recursos disponible para los nodos y sus recursos (como las rutas de firewall).
    4. Opcional: Puedes elegir inhabilitar las actualizaciones automáticas de nodos, pero te recomendamos que revises las consideraciones antes de inhabilitar las actualizaciones automáticas de nodos antes de elegir esta opción.
  7. En el panel de navegación, en Grupos de nodos, haz clic en Nodos.

  8. En la lista desplegable Tipo de imagen, selecciona la imagen de nodo.

  9. Elige la Configuración de la máquina predeterminada para usar en las instancias. Cada tipo de máquina se factura de manera diferente. El tipo de máquina predeterminado es e2-medium. Para obtener información sobre el precio del tipo de máquina, consulta la hoja de precios de tipos de máquinas.

  10. En la lista desplegable Tipo de disco de arranque, selecciona el tipo de disco deseado.

  11. Ingresa el Tamaño de disco de arranque.

  12. Opcional: En el panel de navegación, en Grupos de nodos, haz clic en Seguridad.

  13. De manera opcional, especifica una cuenta de servicio de IAM personalizada para tus nodos:
    1. En la página Configuración avanzada, expande la sección Seguridad.
    2. En el menú Cuenta de servicio, selecciona la cuenta de servicio que prefieras.

    Te recomendamos que especifiques una cuenta de servicio de IAM con privilegios mínimos que tus nodos puedan usar en lugar de la cuenta de servicio predeterminada de Compute Engine. Para obtener información sobre cómo crear una cuenta de servicio con privilegios mínimos, consulta Usa una cuenta de servicio privilegio mínimo mínimos.

  14. Haz clic en Crear.

Terraform

Para crear un clúster zonal con un grupo de nodos de zona única a través de Terraform, consulta el siguiente ejemplo:

resource "google_container_cluster" "default" {
  name               = "gke-standard-regional-single-zone"
  location           = "us-west1"
  node_locations     = ["us-west1-c"]
  initial_node_count = 2
}

Si deseas obtener más información sobre el uso de Terraform, consulta Compatibilidad con Terraform para GKE.

Interactúa con un clúster mediante kubectl

Después de crear un clúster, debes configurar kubectl para poder interactuar con el clúster de la línea de comandos.

Crear un clúster regional con un grupo de nodos multizonal

En las siguientes instrucciones, se muestra cómo crear un clúster regional con un grupo de nodos multizonal, que es la configuración predeterminada. El plano de control y los nodos del clúster se replican en varias zonas de la región especificada.

Puedes usar gcloud CLI, la Google Cloud consola o Terraform para crear el clúster.

Si estás desarrollando aplicaciones de GKE con Visual Studio Code, intenta crear clústeres con Cloud Code.

gcloud

Antes de ejecutar los comandos de gcloud CLI para crear el clúster, configura el proyecto correcto ejecutando el siguiente comando:

gcloud config set project PROJECT_ID
# The project set above is used for quota and billing by default.
# To use a different project for quota and billing, run the following command:
# gcloud config set billing/quota_project PROJECT_ID

Para crear un clúster regional con la CLI de gcloud, usa uno de los siguientes comandos y reemplaza las siguientes variables:

  • CLUSTER_NAME: Es el nombre del clúster regional nuevo.
  • CONTROL_PLANE_LOCATION: La región de Compute Engine del plano de control de tu clúster. Proporciona una región, como us-central1.
  • CHANNEL: Es el tipo de canal de versiones, que puede ser rapid, regular, stable o None. De forma predeterminada, el clúster se inscribe en el canal de versiones regular si no se especifican las siguientes marcas: --cluster-version, --release-channel, --no-enable-autoupgrade y --no-enable-autorepair.
  • VERSION: Es la versión que deseas especificar para el clúster.
  • Para las regiones con más de tres zonas o en las que se prefieren menos zonas, puedes usar la marca opcional --node-locations a fin de anular las zonas predeterminadas en las que se replican los nodos.

Te recomendamos que especifiques una cuenta de servicio de IAM con privilegios mínimos que tus nodos puedan usar en lugar de la cuenta de servicio predeterminada de Compute Engine. Para obtener información sobre cómo crear una cuenta de servicio con privilegios mínimos, consulta Usa una cuenta de servicio privilegio mínimo mínimos.

Para especificar una cuenta de servicio personalizada en gcloud CLI, agrega la siguiente marca a tu comando:

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

Reemplaza SERVICE_ACCOUNT_NAME por el nombre de tu cuenta de servicio con privilegios mínimos.

Usa un canal de versiones específico:

Para crear un clúster nuevo con un canal de versiones específico, ejecuta el siguiente comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --release-channel CHANNEL

Usa una versión específica:

Para crear un clúster nuevo con una versión de clúster específica, ejecuta el siguiente comando:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --cluster-version VERSION

Usa la versión predeterminada para clústeres no inscritos en un canal de versiones:

Para crear un clúster nuevo con la versión predeterminada para clústeres no inscritos en un canal de versiones, no necesitas especificar una versión del clúster, pero debes configurar el canal de versiones como None:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --release-channel None

Ejemplo

Con el siguiente comando, se crea un clúster regional inscrito en el canal de versiones regular, con nueve nodos en us-west1 (tres zonas con tres nodos cada una, que es la configuración predeterminada):

gcloud container clusters create my-regional-cluster --location us-west1

Ejemplo

Con el siguiente comando, se crea un clúster regional inscrito en el canal de versiones regular con seis nodos (tres zonas con dos nodos cada una, especificado por --num-nodes):

gcloud container clusters create my-regional-cluster \
    --location us-west1 \
    --num-nodes 2

Ejemplo

Con el siguiente comando, se crea un clúster regional inscrito en el canal de versiones regular, con seis nodos en dos zonas (dos zonas, especificadas por --node-locations, con tres nodos cada una):

gcloud container clusters create my-regional-cluster \
    --location us-central1 \
    --node-locations us-central1-b,us-central1-c

Console

  1. En la consola de Google Cloud , ve a la página Crea un clúster de Kubernetes.

    Ir a Crea un clúster de Kubernetes

  2. En la sección Aspectos básicos del clúster, completa lo siguiente:

    1. Ingresa el nombre de tu clúster.
    2. En Tipo de ubicación, selecciona Regional y, luego, la región que desees para el clúster.
    3. Si deseas anular las ubicaciones de nodos predeterminadas (por ejemplo, para ejecutarlas en una zona única), selecciona la casilla de verificación Especificar las ubicaciones predeterminada de nodos y, luego, elige las zonas en las que deseas que se ejecuten los grupos de nodos.

    4. Elige un canal de versiones. De manera opcional, puedes seleccionar Sin canal en la lista desplegable. Sin embargo, te recomendamos que revises la comparación entre los clústeres inscritos y los que no están inscritos en un canal de versiones antes de elegir esta opción. GKE actualiza de forma automática los clústeres que no están en un canal de versiones con versiones del canal estable.

    5. Opcional: Especifica una versión del plano de control en la lista desplegable Versión.

  3. Opcional: Configura otros parámetros para tu nuevo clúster.

  4. Opcional: Si deseas registrar tu clúster nuevo en una flota, ve a la sección Registro de flotas y sigue las instrucciones de la consola Google Cloud para crear y registrar un clúster nuevo y completar el registro del clúster.

  5. En el panel de navegación, en Grupos de nodos, haz clic en default-pool.

  6. En la sección Detalles del grupo de nodos, completa lo siguiente:

    1. Ingresa un Nombre para el Grupo de nodos predeterminado.
    2. Opcional: Elige la Versión del nodo.
    3. Ingresa la Cantidad de nodos que deseas crear en el clúster. Debes tener una cuota de recursos disponible para los nodos y sus recursos (como las rutas de firewall).
    4. Opcional: Puedes elegir inhabilitar las actualizaciones automáticas de nodos, pero te recomendamos que revises las consideraciones antes de inhabilitar las actualizaciones automáticas de nodos antes de elegir esta opción.
  7. En el panel de navegación, en Grupos de nodos, haz clic en Nodos.

  8. En la lista desplegable Tipo de imagen, selecciona la imagen de nodo.

  9. Elige la Configuración de la máquina predeterminada para usar en las instancias. Cada tipo de máquina se factura de manera diferente. El tipo de máquina predeterminado es e2-medium. Para obtener información sobre el precio del tipo de máquina, consulta la hoja de precios de tipos de máquinas.

  10. En la lista desplegable Tipo de disco de arranque, selecciona el tipo de disco deseado.

  11. Ingresa el Tamaño de disco de arranque.

  12. Opcional: En el panel de navegación, en Grupos de nodos, haz clic en Seguridad.

  13. De manera opcional, especifica una cuenta de servicio de IAM personalizada para tus nodos:
    1. En la página Configuración avanzada, expande la sección Seguridad.
    2. En el menú Cuenta de servicio, selecciona la cuenta de servicio que prefieras.

    Te recomendamos que especifiques una cuenta de servicio de IAM con privilegios mínimos que tus nodos puedan usar en lugar de la cuenta de servicio predeterminada de Compute Engine. Para obtener información sobre cómo crear una cuenta de servicio con privilegios mínimos, consulta Usa una cuenta de servicio privilegio mínimo mínimos.

  14. Haz clic en Crear.

Terraform

Para crear un clúster zonal con un grupo de nodos multizona a través de Terraform, consulta el siguiente ejemplo:

resource "google_container_cluster" "default" {
  name               = "gke-standard-regional-multi-zone"
  location           = "us-central1"
  node_locations     = ["us-central1-b", "us-central1-c"]
  initial_node_count = 2
}

Si deseas obtener más información sobre el uso de Terraform, consulta Compatibilidad con Terraform para GKE.

Interactúa con un clúster mediante kubectl

Después de crear un clúster, debes configurar kubectl para poder interactuar con el clúster de la línea de comandos.

¿Qué sigue?