Crear clústeres y grupos de nodos estándar con nodos Arm

En esta página se explica cómo crear un clúster o un grupo de nodos estándar de GKE con nodos Arm para que puedas ejecutar cargas de trabajo de Arm en Google Kubernetes Engine (GKE). Para saber cómo desplegar cargas de trabajo de Arm en clústeres de Autopilot, consulta Desplegar cargas de trabajo de Autopilot en la arquitectura Arm.

Puedes crear clústeres con nodos Arm usando la serie de máquinas C4A o la serie de máquinas Tau T2A. Para obtener más información sobre las ventajas de Arm y elegir la mejor serie de máquinas para tus cargas de trabajo, consulta Máquinas virtuales Arm en Compute.

Con GKE, puedes crear un clúster que tenga grupos de nodos con un tipo de arquitectura (por ejemplo, Arm) o varios tipos de arquitectura (por ejemplo, Arm y x86). Cuando ejecutas nodos con varios tipos de arquitectura, puedes implementar cargas de trabajo en diferentes arquitecturas en el mismo clúster.

Esta página está dirigida a operadores y desarrolladores que aprovisionan y configuran recursos de nube que despliegan cargas de trabajo. Para obtener más información sobre los roles comunes, consulta Roles y tareas comunes de usuario de GKE.

Antes de leer esta página, familiarízate con las cargas de trabajo de Arm en GKE.

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 con un grupo de nodos Arm

En las siguientes instrucciones se explica cómo crear un clúster con un grupo de nodos que ejecute nodos Arm de la serie de máquinas C4A o de la serie de máquinas Tau T2A.

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

gcloud

Crea un clúster zonal con el grupo de nodos predeterminado mediante nodos Arm:

gcloud container clusters create CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations NODE_LOCATIONS \
    --machine-type ARM_MACHINE_TYPE \
    --num-nodes NUM_NODES

Haz los cambios siguientes:

  • CLUSTER_NAME: el nombre del nuevo clúster con un grupo de nodos Arm.
  • CONTROL_PLANE_LOCATION: la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales. La región o zona seleccionada debe ser una de las ubicaciones disponibles para la serie de máquinas Arm que elijas.
  • NODE_LOCATIONS: las zonas de tu grupo de nodos, como us-central1-a. Debes elegir entre las zonas disponibles para la serie de máquinas Arm. De lo contrario, es posible que no se pueda crear el grupo de nodos.
  • ARM_MACHINE_TYPE: una de las formas de máquina C4A o T2A disponibles, como c4a-standard-8 o t2a-standard-16.
  • NUM_NODES: número de nodos de tu grupo de nodos Arm.

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.

Si quieres definir ajustes adicionales para tu clúster, consulta la referencia de gcloud container clusters create para ver una lista completa de los ajustes disponibles al crear un clúster.

Consola

  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. Configura el clúster. Para obtener más información, consulta las instrucciones para crear un clúster zonal o crear un clúster regional.

  3. Elige una ubicación en la que estén disponibles los nodos Arm.

    1. En la sección Información básica del clúster, en Tipo de ubicación, elige Zonal o Regional:
    2. En el menú desplegable, elige una zona o una región donde estén disponibles los nodos Arm.
    3. Marca la casilla Especificar ubicaciones de nodo predeterminadas. Selecciona las zonas en las que estén disponibles los nodos Arm.
  4. Para seleccionar un tipo de máquina Arm, en la subsección Nodos, vaya a Configurar ajustes de nodo > Configuración de máquina > Familia de máquinas y seleccione GENERAL-PURPOSE. En el menú desplegable Serie, selecciona C4A o T2A. En el menú desplegable Tipo de máquina, elige una de las opciones disponibles.

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

  6. Haz clic en Crear.

Terraform

Para crear un clúster zonal con el grupo de nodos predeterminado mediante nodos Arm con Terraform, consulta el siguiente ejemplo:

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-arm-cluster"
  location           = "us-central1-a"
  node_locations     = ["us-central1-b", "us-central1-f"]
  initial_node_count = 2

  node_config {
    machine_type    = "t2a-standard-1"
    service_account = google_service_account.default.email
  }
}

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

Añadir un grupo de nodos Arm a un clúster de GKE

Puedes añadir un nuevo grupo de nodos a un clúster Estándar de GKE mediante la CLI de gcloud, la Google Cloud consola o Terraform.

Como práctica recomendada para crear un clúster de GKE con cualquier tipo de nodo, te recomendamos que crees y uses una cuenta de servicio de gestión de identidades y accesos (IAM) con el número mínimo de privilegios necesarios para que la usen tus grupos de nodos en lugar de la cuenta de servicio predeterminada de Compute Engine.

Para obtener instrucciones sobre cómo crear una cuenta de servicio con el número mínimo de privilegios necesarios, consulta el artículo Reforzar la seguridad del clúster.

gcloud

Añade un grupo de nodos Arm a un clúster:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --location CONTROL_PLANE_LOCATION \
    --node-locations NODE_LOCATIONS \
    --machine-type ARM_MACHINE_TYPE \
    --num-nodes NUM_NODES \
    --service-account SERVICE_ACCOUNT

Haz los cambios siguientes:

  • NODE_POOL_NAME: el nombre del nuevo grupo de nodos de Arm de tu clúster.
  • CONTROL_PLANE_LOCATION: la ubicación de Compute Engine del plano de control de tu clúster. Proporciona una región para los clústeres regionales o una zona para los clústeres zonales.
  • CLUSTER_NAME: el nombre del clúster al que quieres añadir un grupo de nodos Arm.
  • NODE_LOCATIONS: las zonas de tu grupo de nodos, como us-central1-a. Debes elegir entre las zonas disponibles para la serie de máquinas Arm. De lo contrario, es posible que no se pueda crear el grupo de nodos.
  • ARM_MACHINE_TYPE: una de las formas de máquina C4A o T2A disponibles, como c4a-standard-8 o t2a-standard-16.
  • NUM_NODES: número de nodos de tu grupo de nodos Arm.

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.

Si quieres definir ajustes adicionales para tu grupo de nodos, consulta la referencia de gcloud container node-pools create para ver una lista completa de los ajustes disponibles al crear grupos de nodos.

Consola

Para añadir un grupo de nodos de Arm a un clúster, sigue estos pasos:

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

    Ir a Google Kubernetes Engine

  2. En la lista de clústeres, haga clic en el nombre del clúster que quiera modificar.

  3. Haz clic en Añadir grupo de nodos.

  4. Configura el grupo de nodos.

  5. Elige las ubicaciones de los nodos en las que haya nodos Arm disponibles.

    1. En la sección Detalles del grupo de nodos, marca la casilla Especificar ubicaciones de nodos.
    2. Selecciona las zonas en las que estén disponibles los nodos Arm.
  6. Para seleccionar un tipo de máquina Arm, en la subsección Nodos, vaya a Configurar ajustes de nodo > Configuración de máquina > Familia de máquinas y seleccione GENERAL-PURPOSE. En el menú desplegable Serie, selecciona C4A o T2A. En el menú desplegable Tipo de máquina, elige una de las opciones disponibles.

  7. En el menú de navegación, haz clic en Seguridad.

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

  9. Haz clic en Crear para añadir el grupo de nodos.

Terraform

Para añadir un grupo de nodos que utilice nodos Arm a un clúster que ya tengas con Terraform, consulta el siguiente ejemplo:

resource "google_container_node_pool" "default" {
  name           = "gke-standard-zonal-arm-node-pool"
  cluster        = google_container_cluster.default.id
  node_locations = ["us-central1-a"]
  node_count     = 1

  node_config {
    machine_type = "t2a-standard-1"

    service_account = google_service_account.default.email
  }
}

Sustituye google_container_cluster.default.id por el nombre de tu clúster.

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

Siguientes pasos