Crear un clúster de Autopilot


En esta página se explica cómo crear un clúster de Google Kubernetes Engine (GKE) en modo Autopilot. Autopilot es un modo de funcionamiento de GKE que te permite centrarte en tus servicios y aplicaciones, mientras que GKE gestiona tus nodos e infraestructura. Cuando implementas tus cargas de trabajo, GKE aprovisiona, configura y gestiona los recursos y el hardware, incluso cuando escalas.

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.

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 Autopilot

La información mínima que debes especificar al crear un clúster de Autopilot es un nombre, un proyecto (normalmente, el proyecto actual) y una región (normalmente, la región predeterminada de las herramientas de línea de comandos). Sin embargo, hay muchos más ajustes de configuración posibles, algunos de los cuales 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-auto y Terraform google_container_cluster.

Puedes crear un clúster Autopilot con la CLI de Google Cloud, la Google Cloud consola o Terraform:

gcloud

Ejecuta el siguiente comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --project=PROJECT_ID

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del nuevo clúster de Autopilot.
  • LOCATION: la región de tu clúster.
  • PROJECT_ID: tu ID de proyecto.

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.

Para ver una lista de otras opciones que puedes especificar, consulta la documentación de referencia de gcloud container clusters create-auto.

Consola

Realiza las siguientes tareas:

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

    Ir a Crear un clúster de Autopilot

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

  3. Introduce el nombre del clúster.

  4. Selecciona una región para el clúster.

    1. 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 la sección Redes, consulta Personalizar el aislamiento de la red para ver las instrucciones de configuración.

  6. 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.

  7. También puedes configurar otros ajustes, como las ventanas de mantenimiento y las funciones de seguridad avanzadas.

  8. Haz clic en Crear.

Terraform

Para crear un clúster de Autopilot con Terraform, consulta el siguiente ejemplo:

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-basic"
  location = "us-central1"

  enable_autopilot = true
}

Para crear un clúster de Autopilot que use una cuenta de servicio de IAM personalizada, sigue estos pasos:

  1. Crea una cuenta de servicio de IAM y concédele el rol roles/container.defaultNodeServiceAccount en el proyecto:

    resource "google_service_account" "default" {
      account_id   = "gke-node-service-account"
      display_name = "GKE node service account"
    }
    
    data "google_project" "project" {
    }
    
    resource "google_project_iam_member" "default" {
      project = data.google_project.project.project_id
      role    = "roles/container.defaultNodeServiceAccount"
      member  = "serviceAccount:${google_service_account.default.email}"
    }
  2. Crea un clúster de Autopilot que use la nueva cuenta de servicio:

    resource "google_container_cluster" "default" {
      name     = "autopilot-custom-account"
      location = "us-central1"
    
      enable_autopilot = true
    
      cluster_autoscaling {
        auto_provisioning_defaults {
          service_account = google_service_account.default.email
        }
      }
    }

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

Crear un clúster de Autopilot con un canal de lanzamiento y una versión específicos

De forma predeterminada, GKE registra los nuevos clústeres de Autopilot en el canal de lanzamiento Regular con la versión predeterminada de GKE en el canal. Puedes cambiar el canal de lanzamiento al crear un clúster Autopilot con la CLI de gcloud, la Google Cloud consola o Terraform.

También puedes definir una versión específica de GKE al crear un clúster con la CLI de gcloud. Definir la versión del clúster solo es útil si tienes un requisito de versión específico. Para definir la versión del clúster, especifica la marca --cluster-version en el comando gcloud container clusters create-auto. La versión que especifiques debe ser una versión de GKE disponible.

Las siguientes instrucciones para definir el canal de lanzamiento y la versión son opcionales. A menos que necesites una versión específica de GKE, te recomendamos que mantengas el ajuste predeterminado del canal de lanzamiento.

gcloud

Ejecuta el siguiente comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --release-channel=RELEASE_CHANNEL

Sustituye RELEASE_CHANNEL por el nombre del canal de lanzamiento del clúster. El valor predeterminado es Regular.

De forma opcional, especifica --cluster-version=CLUSTER_VERSION, sustituyendo CLUSTER_VERSION por la versión de GKE del clúster, como 1.29.4-gke.1043002. La versión que especifiques se aplicará hasta que una versión más reciente se convierta en la predeterminada en tu canal de lanzamiento. A continuación, GKE actualiza automáticamente tu clúster a la nueva versión predeterminada. Si omite esta marca, GKE asignará la versión predeterminada del canal de lanzamiento.

Para consultar las versiones disponibles, consulta ¿Qué versiones están disponibles en un canal? Puedes usar cualquier versión secundaria del canal seleccionado o elegir un subconjunto de versiones de parche de otros canales.

Consola

Para definir el canal de lanzamiento al crear un clúster de Autopilot, haga lo siguiente:

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

    Ir a Crear un clúster de Autopilot

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

    1. Especifica un nombre.
    2. Selecciona una región.
  3. En la sección Configuración avanzada, elige un canal de lanzamiento.

  4. Si quieres, puedes configurar otros ajustes para el nuevo clúster.

  5. Haz clic en Crear.

Terraform

Para definir el canal de lanzamiento y la versión del clúster al crear un clúster de Autopilot con Terraform, consulta el siguiente ejemplo:

resource "google_container_cluster" "default" {
  name     = "gke-autopilot-release-channel"
  location = "us-central1"

  enable_autopilot = true

  release_channel {
    channel = "REGULAR"
  }
}

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

También puedes cambiar el canal de lanzamiento y la versión de GKE de los clústeres que ya tengas. Para obtener instrucciones, consulta Actualizar manualmente un plano de control y Seleccionar un nuevo canal de lanzamiento.

Conéctate al clúster

gcloud

gcloud container clusters get-credentials CLUSTER_NAME \
    --location=LOCATION \
    --project=PROJECT_ID

Este comando configura kubectl para que use el clúster que has creado.

Consola

  1. En la lista de clústeres, junto al clúster al que quieras conectarte, haz clic en Acciones y, a continuación, en Conectar.

  2. Cuando se le solicite, haga clic en Ejecutar en Cloud Shell. El comando generado se copia en tu Cloud Shell. Por ejemplo:

    gcloud container clusters get-credentials autopilot-cluster --location=us-central1 --project=autopilot-test
    
  3. Pulsa Intro para ejecutar el comando.

Verificar el modo de clúster

Puedes verificar que tu clúster es un clúster de Autopilot mediante la CLI de gcloud o la Google Cloud consola.

gcloud

Para verificar que el clúster se ha creado en el modo Autopilot, ejecuta el siguiente comando:

gcloud container clusters describe CLUSTER_NAME \
    --location=LOCATION

La salida contiene lo siguiente:

autopilot:
  enabled: true

Consola

Para verificar que tu clúster se ha creado en el modo Autopilot, haz lo siguiente:

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

    Ir a Google Kubernetes Engine

  2. Busca tu clúster en la lista de clústeres. En Modo, debería aparecer Autopilot.

Siguientes pasos