Organízate con las colecciones
Guarda y clasifica el contenido según tus preferencias.
GKE en AWS le permite ejecutar cargas de trabajo Arm creadas para procesadores AWS Graviton basados en Arm.
Limitaciones
Los grupos de nodos de Arm que ejecutan versiones de Kubernetes anteriores a la 1.24.8-gke.1300 agregan automáticamente una condición de taint durante la creación del grupo de nodos para evitar que las cargas de trabajo de Arm se programen en nodos que no sean de Arm. Los grupos de nodos de Arm en clústeres con la versión 1.24.8-gke.1300 o superior ya no agregan esta condición de taint. Si actualiza desde un clúster anterior a la 1.24.8-gke.1300, debe crear esta condición de taint usted mismo o tenerla en cuenta al actualizar.
Los grupos de nodos de Arm en GKE en AWS no son compatibles con Cloud Service Mesh, Config Sync ni Policy Controller. Debe ejecutar estos productos en un grupo de nodos x86.
Los clústeres que ejecutan la versión 1.24 de Kubernetes necesitan un grupo de nodos x86 para ejecutar el Agente de Conexión . Si su clúster ejecuta la versión 1.25 o posterior de Kubernetes, no necesita un grupo de nodos x86.
Esta página explica cómo crear un grupo de nodos de Arm, por qué las imágenes de múltiples arquitecturas son la forma recomendada de implementar cargas de trabajo de Arm y cómo programar cargas de trabajo de Arm.
Antes de empezar
Antes de crear grupos de nodos para sus cargas de trabajo de Arm, necesita los siguientes recursos:
Un clúster de AWS existente para crear el grupo de nodos. Este clúster debe ejecutar Kubernetes versión 1.24 o posterior.
NODE_POOL_NAME : el nombre que elija para su grupo de nodos
CLUSTER_NAME : el nombre del clúster al que se adjuntará el grupo de nodos
INSTANCE_TYPE : uno de los siguientes tipos de instancia:
m6g
m6gd
t4g
r6g
r6gd
c6g
c6gd
c6gn
x2gd
c7g
im4gn
g5g
Estos tipos de instancias se basan en procesadores Graviton de AWS basados en Arm. También debe especificar el tamaño de instancia deseado. Por ejemplo, m6g.medium . Para obtener una lista completa, consulte Tipos de instancias de AWS compatibles .
ROOT_VOLUME_SIZE : el tamaño deseado para el volumen raíz de cada nodo, en Gb
NODEPOOL_PROFILE : el perfil de instancia de IAM para las máquinas virtuales del grupo de nodos
NODE_VERSION : la versión de Kubernetes que se instalará en cada nodo del grupo de nodos, que debe ser la 1.24 o posterior. Por ejemplo, 1.24.3-gke.200 .
MIN_NODES : el número mínimo de nodos que puede contener el grupo de nodos
MAX_NODES : el número máximo de nodos que puede contener el grupo de nodos
MAX_PODS_PER_NODE : la cantidad máxima de pods que se pueden crear en cualquier nodo individual del grupo
GOOGLE_CLOUD_LOCATION : el nombre de la Google Cloud
Ubicación desde la que se administrará este grupo de nodos
NODEPOOL_SUBNET : ID de la subred donde se ejecutará el grupo de nodos. Si esta subred está fuera del bloque CIDR principal de la VPC, deberá realizar pasos adicionales. Para obtener más información, consulte los grupos de seguridad .
SSH_KEY_PAIR_NAME : el nombre del par de claves SSH de AWS creado para el acceso SSH (opcional)
CONFIG_KMS_KEY_ARN : el nombre de recurso de Amazon (ARN) de la clave AWS KMS que cifra los datos del usuario
Comprender imágenes multiarquitectura
Las imágenes de contenedor deben ser compatibles con la arquitectura del nodo donde se ejecutarán las cargas de trabajo de Arm. Para garantizar que su imagen de contenedor sea compatible con Arm, le recomendamos utilizar imágenes multiarquitectura.
Una imagen multiarquitectura es compatible con múltiples arquitecturas. Parece una sola imagen con una sola etiqueta, pero contiene un conjunto de imágenes para ejecutarse en diferentes arquitecturas de máquina. Las imágenes multiarquitectura son compatibles con el Esquema 2 del Manifiesto de Imagen de Docker V2 o las Especificaciones del Índice de Imagen OCI.
Al implementar una imagen multiarquitectura en un clúster, el entorno de ejecución del contenedor selecciona automáticamente la imagen compatible con la arquitectura del nodo donde se implementa. Una vez que se tiene una imagen multiarquitectura para una carga de trabajo, se puede implementar en múltiples arquitecturas. Programar una imagen de una sola arquitectura en un nodo incompatible provoca un error al cargar.
[[["Es fácil de entender","easyToUnderstand","thumb-up"],["Me ofreció una solución al problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Es difícil de entender","hardToUnderstand","thumb-down"],["La información o el código de muestra no son correctos","incorrectInformationOrSampleCode","thumb-down"],["Me faltan las muestras o la información que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-06-12 (UTC)."],[],[],null,["# Run Arm workloads in GKE on AWS\n\nGKE on AWS lets you run Arm workloads built for Arm-based\n[AWS Graviton processors](https://aws.amazon.com/ec2/graviton/).\n\nLimitations\n-----------\n\n- Arm node pools running Kubernetes versions earlier than 1.24.8-gke.1300\n automatically add a taint during node pool creation to prevent Arm workloads\n from being scheduled on non-Arm nodes. Arm node pools in clusters at version\n 1.24.8-gke.1300 or higher no longer add this taint. If you're upgrading from a\n cluster earlier than 1.24.8-gke.1300, you must create this\n taint yourself or otherwise take this into account when upgrading.\n\n- Arm node pools on GKE on AWS don't support Cloud Service Mesh, Config Sync,\n or Policy Controller. You must run these products on an x86 node\n pool.\n\n- Clusters running Kubernetes version 1.24 need an x86 node pool to run the\n [Connect Agent](/anthos/fleet-management/docs/connect-agent).\n If your cluster runs Kubernetes version 1.25 or later, you don't need an\n x86 node pool.\n\nThis page explains how to create an Arm node pool, why\nmulti-architecture images are the recommended way to deploy Arm workloads, and\nhow to schedule Arm workloads.\n\n### Before you begin\n\nBefore you create node pools for your Arm workloads, you need the following\nresources:\n\n- An existing AWS cluster to create the node pool in. This cluster must run Kubernetes version 1.24 or later.\n- An [IAM instance profile](/kubernetes-engine/multi-cloud/docs/aws/how-to/create-aws-iam-roles#create_a_node_pool_iam_role) for the node pool VMs.\n- A [subnet](/kubernetes-engine/multi-cloud/docs/aws/how-to/create-aws-vpc#create_the_node_pool_subnets) where the node pool VMs will run.\n- If your cluster is running Kubernetes version 1.24, an x86 node pool to run\n the [Connect Agent](/anthos/fleet-management/docs/connect-agent).\n\n For details on how to create a node pool in GKE on AWS, see\n [Create a node pool](/kubernetes-engine/multi-cloud/docs/aws/how-to/create-node-pool).\n\n### Create an Arm node pool\n\nGKE on AWS supports node pools built on the Canonical Ubuntu\narm64 minimal node image and `containerd` runtime.\n\nTo create an Arm node pool and add it to an existing cluster, run the following\ncommand: \n\n gcloud container aws node-pools create \u003cvar translate=\"no\"\u003eNODE_POOL_NAME\u003c/var\u003e \\\n --cluster \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e \\\n --instance-type \u003cvar translate=\"no\"\u003eINSTANCE_TYPE\u003c/var\u003e \\\n --root-volume-size \u003cvar translate=\"no\"\u003eROOT_VOLUME_SIZE\u003c/var\u003e \\\n --iam-instance-profile \u003cvar translate=\"no\"\u003eNODEPOOL_PROFILE\u003c/var\u003e \\\n --node-version \u003cvar translate=\"no\"\u003eNODE_VERSION\u003c/var\u003e \\\n --min-nodes \u003cvar translate=\"no\"\u003eMIN_NODES\u003c/var\u003e \\\n --max-nodes \u003cvar translate=\"no\"\u003eMAX_NODES\u003c/var\u003e \\\n --max-pods-per-node \u003cvar translate=\"no\"\u003eMAX_PODS_PER_NODE\u003c/var\u003e \\\n --location \u003cvar translate=\"no\"\u003eGOOGLE_CLOUD_LOCATION\u003c/var\u003e \\\n --subnet-id \u003cvar translate=\"no\"\u003eNODEPOOL_SUBNET\u003c/var\u003e \\\n --ssh-ec2-key-pair \u003cvar translate=\"no\"\u003eSSH_KEY_PAIR_NAME\u003c/var\u003e \\\n --config-encryption-kms-key-arn \u003cvar translate=\"no\"\u003eCONFIG_KMS_KEY_ARN\u003c/var\u003e\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eNODE_POOL_NAME\u003c/var\u003e: the name you choose for your node pool\n- \u003cvar translate=\"no\"\u003eCLUSTER_NAME\u003c/var\u003e: the name of the cluster to attach the node pool to\n- \u003cvar translate=\"no\"\u003eINSTANCE_TYPE\u003c/var\u003e: one of the following instance types:\n\n - `m6g`\n - `m6gd`\n - `t4g`\n - `r6g`\n - `r6gd`\n - `c6g`\n - `c6gd`\n - `c6gn`\n - `x2gd`\n - `c7g`\n - `im4gn`\n - `g5g`\n\n These instance types are powered by Arm-based AWS Graviton processors.\n You also need to specify the instance size that you want. For example,\n `m6g.medium`. For a complete list, see\n [Supported AWS instance types](/kubernetes-engine/multi-cloud/docs/aws/reference/supported-instance-types#supported_instance_types).\n- \u003cvar translate=\"no\"\u003eROOT_VOLUME_SIZE\u003c/var\u003e: the desired size for each node's root\n volume, in Gb\n\n- \u003cvar translate=\"no\"\u003eNODEPOOL_PROFILE\u003c/var\u003e: the IAM instance profile\n for node pool VMs\n\n- \u003cvar translate=\"no\"\u003eNODE_VERSION\u003c/var\u003e: the Kubernetes version to install on each\n node in the node pool, which must be version 1.24 or later. For example,\n `1.24.3-gke.200`.\n\n- \u003cvar translate=\"no\"\u003eMIN_NODES\u003c/var\u003e: the minimum number of nodes the node pool can\n contain\n\n- \u003cvar translate=\"no\"\u003eMAX_NODES\u003c/var\u003e: the maximum number of nodes the node pool can\n contain\n\n- \u003cvar translate=\"no\"\u003eMAX_PODS_PER_NODE\u003c/var\u003e: the maximum number of Pods that can be\n created on any single node in the pool\n\n- \u003cvar translate=\"no\"\u003eGOOGLE_CLOUD_LOCATION\u003c/var\u003e: the name of the Google Cloud\n\n location from which this node pool will be managed\n- \u003cvar translate=\"no\"\u003eNODEPOOL_SUBNET\u003c/var\u003e: the ID of the subnet the node pool will\n run on. If this subnet is outside of the VPC's primary CIDR block, you need\n to take additional steps. For more information, see\n [security groups](/kubernetes-engine/multi-cloud/docs/aws/reference/security-groups).\n\n- \u003cvar translate=\"no\"\u003eSSH_KEY_PAIR_NAME\u003c/var\u003e: the name of the AWS SSH key pair\n created for SSH access (optional)\n\n- \u003cvar translate=\"no\"\u003eCONFIG_KMS_KEY_ARN\u003c/var\u003e: the Amazon Resource Name (ARN) of the\n AWS KMS key that encrypts user data\n\nUnderstand multi-architecture images\n------------------------------------\n\nContainer images must be compatible with the architecture of the node where you\nintend to run the Arm workloads. To ensure that your container image is\nArm-compatible, we recommend that you use multi-architecture (\"multi-arch\")\nimages.\n\nA multi-arch image is an image that can support multiple architectures. It looks\nlike a single image with a single tag, but contains a set of images to run\non different machine architectures. Multi-arch images are\ncompatible with the Docker Image Manifest V2 Scheme 2 or OCI Image Index\nSpecifications.\n\nWhen you deploy a multi-arch image to a cluster, the container runtime\nautomatically chooses the image that is compatible with the architecture of the\nnode you're deploying to. Once you have a multi-arch image for a workload, you\ncan deploy this workload across multiple architectures. Scheduling a\nsingle-architecture image onto an incompatible node causes an error at load\ntime.\n\nTo learn more about how to use multi-arch images with Arm workloads, see\n[Build multi-architecture images for Arm workloads](/kubernetes-engine/docs/how-to/build-multi-arch-for-arm)\nin the Google Kubernetes Engine (GKE) documentation.\n\nWhat's next\n-----------\n\n- [Troubleshoot Arm workloads](/kubernetes-engine/multi-cloud/docs/aws/troubleshooting#troubleshoot-arm)."]]