Crear un clúster de zona


En esta página se muestra cómo crear un clúster zonal estándar con las funciones predeterminadas habilitadas en Google Kubernetes Engine (GKE). Los clústeres zonales tienen una única instancia de plano de control en una única zona. En función de tus requisitos de disponibilidad, puedes distribuir los nodos de tu clúster zonal en una o varias zonas.

Práctica recomendada: Usa clústeres regionales para ejecutar tus cargas de trabajo de producción, ya que ofrecen una disponibilidad mayor que los clústeres zonales. En un clúster regional, el plano de control se replica en varias zonas de una región.

Esta página está dirigida a operadores, arquitectos de Cloud y desarrolladores que necesiten crear y configurar clústeres, así como desplegar cargas de trabajo en GKE. Para obtener más información sobre los roles habituales y las tareas de ejemplo a las que hacemos referencia en el Google Cloud contenido, consulta Roles y tareas habituales de los usuarios de GKE.

Antes de leer esta página, asegúrate de que conoces las opciones de configuración de clústeres.

Antes de empezar

Antes de empezar, asegúrate de haber 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.

Configurar cuentas de servicio de IAM para GKE

GKE usa cuentas de servicio de gestión de identidades y accesos que están asociadas a tus nodos para ejecutar tareas del sistema, como el registro y la monitorización. Como mínimo, estas cuentas de servicio de nodo deben tener el rol Cuenta de servicio de nodo predeterminada 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 cuenta de servicio del nodo.

Para asignar el rol roles/container.defaultNodeServiceAccount a la cuenta de servicio predeterminada de Compute Engine, sigue estos pasos:

consola

  1. Ve a la página Bienvenida:

    Ir a Bienvenida

  2. En el campo Número de proyecto, haz clic en Copiar en el portapapeles.
  3. Ve a la página Gestión de identidades y accesos:

    Ir a IAM

  4. Haz clic en Conceder acceso.
  5. En el campo Nuevos principales, especifique el siguiente valor:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    Sustituye PROJECT_NUMBER por el número de proyecto que has copiado.
  6. En el menú Seleccionar un rol, elige el rol Cuenta de servicio de nodo predeterminada 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)"

    Sustituye PROJECT_ID por el ID del proyecto.

    El resultado debería ser similar al siguiente:

    12345678901
    
  2. Asigna 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"

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

Crear un clúster de zona

La información mínima que debe especificar al crear un clúster zonal es un nombre, un proyecto (normalmente, el proyecto actual) y una zona (normalmente, la ubicación predeterminada de las herramientas de línea de comandos), con los ajustes predeterminados para todos los demás valores. Sin embargo, hay más ajustes de configuración posibles, de los cuales solo se describen algunos en esta sección y otros no se pueden cambiar después de crear el clúster. Asegúrate de saber qué ajustes no se pueden cambiar después de crear un clúster y de elegir el ajuste adecuado al crear un clúster si no quieres tener que volver a crearlo.

Puedes ver un resumen de las opciones de configuración de clústeres en el artículo Acerca de las opciones de configuración de clústeres y una lista completa de las opciones posibles en las guías de referencia de gcloud container clusters create y Terraform google_container_cluster.

Puedes crear un clúster zonal mediante la CLI de gcloud, laGoogle Cloud consola o Terraform.

Si desarrollas aplicaciones de GKE con Cloud Code para VS Code, prueba a crear clústeres con Cloud Code.

gcloud

Para crear un clúster zonal con la CLI de gcloud, usa uno de los siguientes comandos.

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del nuevo clúster.
  • CHANNEL: el tipo de canal de lanzamiento, que puede ser rapid, regular, stable o None. De forma predeterminada, el clúster se registra en el canal de lanzamiento regular, a menos que se especifique al menos una de las siguientes marcas: --cluster-version, --release-channel, --no-enable-autoupgrade y --no-enable-autorepair.
  • CONTROL_PLANE_LOCATION: la zona de Compute Engine del plano de control de tu clúster.
  • VERSION: la versión que quieras especificar para tu clúster.
  • COMPUTE_ZONE,COMPUTE_ZONE1,[...]: las zonas en las que se crean los nodos. Puedes especificar tantas zonas como necesites para tu clúster. Todas las zonas deben estar en la misma región que el plano de control del clúster, especificada por la marca --location. En el caso de los clústeres zonales, --node-locations debe contener la zona principal del clúster.

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

Para especificar una cuenta de servicio personalizada en la CLI de gcloud, añade la siguiente marca al comando:

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

Sustituye SERVICE_ACCOUNT_NAME por el nombre de tu cuenta de servicio con el número mínimo de privilegios necesarios.

Usar un canal de lanzamiento específico:

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

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

Usar una versión específica:

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

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

Usar la versión predeterminada en clústeres que no estén registrados en un canal de lanzamiento:

Para crear un clúster con la versión predeterminada de los clústeres que no están registrados en un canal de lanzamiento, no es necesario que especifiques una versión del clúster, pero sí que definas el canal de lanzamiento como None:

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

Ejemplo

El siguiente comando crea un clúster multizona llamado example-cluster, donde el plano de control del clúster se encuentra en la zona us-central-a y hay tres ubicaciones de nodos. El clúster se ha registrado en el canal de lanzamiento regular.

Si se omite la marca --num-nodes, el número predeterminado de nodos por zona que crea el clúster es tres. Como se han especificado tres zonas, este comando crea un clúster de nueve nodos con tres nodos en us-central1-a, us-central1-b y us-central1-c.

gcloud container clusters create example-cluster \
    --location us-central1-a \
    --node-locations us-central1-a,us-central1-b,us-central1-c

Consola

Para crear un clúster de zona con la Google Cloud consola, sigue estos pasos:

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

    Ir a Crear un clúster de Kubernetes

  2. En la sección Información básica de los clústeres, haz lo siguiente:

    1. Introduce el nombre del clúster.
    2. En Location type (Tipo de ubicación), selecciona Zonal (Zonal) y, a continuación, la zona de tu clúster.
    3. Si vas a crear un clúster multizonal, marca la casilla Especificar ubicaciones de nodos predeterminadas y, a continuación, elige las zonas adicionales en las que quieras que se ejecuten los grupos de nodos.

    4. Elige un canal de lanzamiento. También puede seleccionar Ningún canal en la lista desplegable, pero le recomendamos que consulte la comparación entre los clústeres registrados y no registrados en un canal de lanzamiento antes de elegir esta opción. GKE actualiza automáticamente los clústeres que no están en un canal de lanzamiento 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 ajustes para el nuevo clúster.

  4. Opcional (disponible con GKE Enterprise): si quieres registrar tu nuevo clúster en una flota, ve a la sección Registro de flotas y sigue las instrucciones de la consola para crear y registrar un nuevo clúster. Google Cloud

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

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

    1. Introduce un nombre para el grupo de nodos predeterminado.
    2. Opcional: Elige la versión de Node.
    3. Introduce el Número de nodos que quieres crear en el clúster. Debes tener cuota de recursos disponible para los nodos y sus recursos (como las rutas de cortafuegos).
    4. Opcional: Puedes inhabilitar las actualizaciones automáticas de los nodos. Sin embargo, te recomendamos que consultes las consideraciones antes de inhabilitar las actualizaciones automáticas de los nodos antes de elegir esta opción.
  7. En el panel de navegación, ve a Grupos de nodos y haz clic en Nodos.

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

  9. Elige la configuración de máquina predeterminada que quieras usar en las instancias. Cada tipo de máquina se factura de forma diferente. El tipo de máquina predeterminado es e2-medium. Para obtener información sobre los precios de los tipos de máquinas, consulta la hoja de precios de los tipos de máquinas.

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

  11. Introduce el tamaño del disco de arranque.

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

  13. También puedes especificar una cuenta de servicio de gestión de identidades y accesos personalizada para tus nodos:
    1. En la página Configuración avanzada, despliega la sección Seguridad.
    2. En el menú Cuenta de servicio, selecciona la que prefieras.

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

  14. Haz clic en Crear.

Terraform

Para crear un clúster zonal con un grupo de nodos de una sola zona mediante Terraform, consulta el siguiente ejemplo:

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-single-zone"
  location           = "us-central1-a"
  initial_node_count = 1
}

Para crear un clúster de zona con un grupo de nodos multizona mediante Terraform, consulta el siguiente ejemplo:

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

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

Interactuar con un clúster mediante kubectl

Una vez que hayas creado un clúster, debes configurar kubectl para poder interactuar con él desde la línea de comandos.

Plantillas de clúster

Anteriormente, GKE admitía plantillas para clústeres. Esas plantillas se han retirado de la consola Google Cloud , pero se puede seguir accediendo a ellas a través de los siguientes enlaces:

Siguientes pasos

Pruébalo

Si es la primera vez que utilizas Google Cloud, crea una cuenta para evaluar el rendimiento de GKE en situaciones reales. Los nuevos clientes también reciben 300 USD en crédito gratuito para ejecutar, probar y desplegar cargas de trabajo.

Probar GKE gratis