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
.
- Consulta los requisitos y las limitaciones de los nodos C4A y T2A.
- Asegúrate de que tienes los permisos correctos para crear clústeres. Como mínimo, debes tener el rol Administrador de clúster de Kubernetes Engine.
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
- Ve a la página Bienvenida:
- En el campo Número de proyecto, haz clic en Copiar en el portapapeles.
- Ve a la página Gestión de identidades y accesos:
- Haz clic en Conceder acceso.
- En el campo Nuevos principales, especifique el siguiente valor:
SustituyePROJECT_NUMBER-compute@developer.gserviceaccount.com
PROJECT_NUMBER
por el número de proyecto que has copiado. - En el menú Seleccionar un rol, elige el rol Cuenta de servicio de nodo predeterminada de Kubernetes Engine.
- Haz clic en Guardar.
gcloud
- 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
- 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, comous-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, comoc4a-standard-8
ot2a-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
En la Google Cloud consola, ve a la página Crear un clúster de Kubernetes.
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.
Elige una ubicación en la que estén disponibles los nodos Arm.
- En la sección Información básica del clúster, en Tipo de ubicación, elige Zonal o Regional:
- En el menú desplegable, elige una zona o una región donde estén disponibles los nodos Arm.
- Marca la casilla Especificar ubicaciones de nodo predeterminadas. Selecciona las zonas en las que estén disponibles los nodos Arm.
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.
- También puedes especificar una cuenta de servicio de gestión de identidades y accesos personalizada para tus nodos:
- En la página Configuración avanzada, despliega la sección Seguridad.
- 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.
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:
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, comous-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, comoc4a-standard-8
ot2a-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:
Ve a la página Google Kubernetes Engine en la Google Cloud consola.
En la lista de clústeres, haga clic en el nombre del clúster que quiera modificar.
Haz clic en add_box Añadir grupo de nodos.
Configura el grupo de nodos.
Elige las ubicaciones de los nodos en las que haya nodos Arm disponibles.
- En la sección Detalles del grupo de nodos, marca la casilla Especificar ubicaciones de nodos.
- Selecciona las zonas en las que estén disponibles los nodos Arm.
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.
En el menú de navegación, haz clic en Seguridad.
- También puedes especificar una cuenta de servicio de gestión de identidades y accesos personalizada para tus nodos:
- En la página Configuración avanzada, despliega la sección Seguridad.
- 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.
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:
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
- Crear imágenes de varias arquitecturas para cargas de trabajo de Arm
- Prepara una carga de trabajo de Arm para el despliegue
- Migrar una aplicación x86 en GKE a una multiarquitectura con Arm