En este documento, se muestra cómo seleccionar clases de procesamiento específicas para ejecutar cargas de trabajo que tienen requisitos de hardware únicos en tus clústeres de Google Kubernetes Engine (GKE) Autopilot. Antes de leer este documento, asegúrate de estar familiarizado con el concepto de clases de procesamiento en GKE Autopilot.
Descripción general de las clases de procesamiento de Autopilot
Autopilot ofrece clases de procesamiento diseñadas para ejecutar cargas de trabajo que tienen requisitos de hardware específicos. Estas clases de procesamiento son útiles para cargas de trabajo como las tareas de IA y aprendizaje automático, o la ejecución en tiempo real de bases de datos de tráfico alto.
Estas clases de procesamiento son un subconjunto de las series de máquinas de Compute Engine y ofrecen flexibilidad más allá de la clase de procesamiento de uso general de Autopilot predeterminada.
Por ejemplo, la clase Scale-Out desactiva los subprocesos múltiples simultáneos para que cada CPU virtual sea un núcleo físico.
En función de las necesidades de Pods individuales, puedes configurar los Pods de Autopilot regulares o los Pods Spot para solicitar nodos respaldados por estas clases de procesamiento. También puedes solicitar una arquitectura de CPU específica, como Arm, en las clases de procesamiento que admiten esa arquitectura.
Antes de comenzar
Antes de comenzar, asegúrate de haber realizado las siguientes tareas:
Si deseas usar Google Cloud CLI para esta tarea, instala y, luego, inicializa gcloud CLI. Si ya instalaste gcloud CLI, ejecuta gcloud components update para obtener la versión más reciente.
Solicita una clase de procesamiento en tu Pod de Autopilot
Para indicarle a Autopilot que coloque tus Pods en una clase de procesamiento específica, especifica la etiqueta cloud.google.com/compute-class en un nodeSelector o una regla de afinidad de nodos, como en los siguientes ejemplos:
También puedes solicitar clases de procesamiento específicas para tus Pods Spot.
Especifica solicitudes de recursos
Cuando elijas una clase de procesamiento, asegúrate de especificar solicitudes de recursos para tus Pods en función de las solicitudes de recursos mínimas y máximas de la clase que seleccionaste. Si tus solicitudes son menores que el mínimo, Autopilot aumentará la escala de tus solicitudes automáticamente. Sin embargo, si tus solicitudes son mayores que el máximo, Autopilot no implementa tus Pods y muestra un mensaje de error.
Elige una arquitectura de CPU
Algunas clases de procesamiento admiten varias arquitecturas de CPU. Por ejemplo, la clase Scale-Out admite arquitecturas Arm y x86. Si no solicitas una arquitectura específica, Autopilot aprovisiona nodos que tienen la arquitectura predeterminada de la clase de procesamiento especificada. Si tus Pods deben usar una arquitectura diferente, solicita esa arquitectura en tu selector de nodos o en la regla de afinidad de nodos, junto con tu solicitud de clase de procesamiento. La clase de procesamiento que solicites debe ser compatible con la arquitectura de CPU que especifiques.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2024-11-21 (UTC)"],[],[],null,["# Choose compute classes for Autopilot Pods\n\n[Autopilot](/kubernetes-engine/docs/concepts/autopilot-overview)\n\n*** ** * ** ***\n\nThis document shows you how to select specific compute classes to run workloads that\nhave unique hardware requirements in your Google Kubernetes Engine (GKE)\nAutopilot clusters. Before reading this document,\nensure that you're familiar with the concept\nof [compute classes in GKE Autopilot](/kubernetes-engine/docs/concepts/autopilot-compute-classes).\n\nOverview of Autopilot compute classes\n-------------------------------------\n\nAutopilot offers *compute classes* that are designed to run\nworkloads that have specific hardware requirements. These compute classes are\nuseful for workloads such as machine learning and AI tasks, or running real-time\nhigh traffic databases.\n\nThese compute classes are a subset of the Compute Engine\n[machine series](/compute/docs/machine-types#machine_type_comparison), and offer\nflexibility beyond the default Autopilot general-purpose compute class.\nFor example, the `Scale-Out` class turns off simultaneous multi-threading so that each\nvCPU is one physical core.\n\nBased on your individual Pod needs, you can configure your regular\nAutopilot Pods or your Spot Pods to request nodes backed by\nthese compute classes. You can also request specific CPU architecture, such as\n[Arm](https://www.arm.com/architecture), in compute classes that\nsupport that architecture.\n\nBefore you begin\n----------------\n\nBefore you start, make sure that you have performed the following tasks:\n\n- Enable the Google Kubernetes Engine API.\n[Enable Google Kubernetes Engine API](https://console.cloud.google.com/flows/enableapi?apiid=container.googleapis.com)\n- If you want to use the Google Cloud CLI for this task, [install](/sdk/docs/install) and then [initialize](/sdk/docs/initializing) the gcloud CLI. If you previously installed the gcloud CLI, get the latest version by running `gcloud components update`. **Note:** For existing gcloud CLI installations, make sure to set the `compute/region` [property](/sdk/docs/properties#setting_properties). If you use primarily zonal clusters, set the `compute/zone` instead. By setting a default location, you can avoid errors in the gcloud CLI like the following: `One of [--zone, --region] must be supplied: Please specify location`. You might need to specify the location in certain commands if the location of your cluster differs from the default that you set.\n\n\u003c!-- --\u003e\n\n- [Ensure that you have a GKE Autopilot cluster](/kubernetes-engine/docs/how-to/creating-an-autopilot-cluster) running GKE version 1.24.1-gke.1400 or later.\n\nRequest a compute class in your Autopilot Pod\n---------------------------------------------\n\nTo tell Autopilot to place your Pods on a specific compute class, specify the `cloud.google.com/compute-class` label in a [nodeSelector](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) or a [node affinity rule](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity), such as in the following examples:\n\n### nodeSelector\n\n```yaml\n apiVersion: apps/v1\n kind: Deployment\n metadata:\n name: hello-app\n spec:\n replicas: 3\n selector:\n matchLabels:\n app: hello-app\n template:\n metadata:\n labels:\n app: hello-app\n spec:\n nodeSelector:\n cloud.google.com/compute-class: \"\u003cvar translate=\"no\"\u003eCOMPUTE_CLASS\u003c/var\u003e\"\n containers:\n - name: hello-app\n image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0\n resources:\n requests:\n cpu: \"2000m\"\n memory: \"2Gi\"\n \n```\n\nReplace \u003cvar translate=\"no\"\u003eCOMPUTE_CLASS\u003c/var\u003e with the name of the [compute class](/kubernetes-engine/docs/concepts/autopilot-compute-classes#when-to-use)\nbased on your use case, such as `Scale-Out`. If you select `Accelerator`,\nyou must also specify a compatible GPU. For instructions, see [Deploy GPU workloads in Autopilot](/kubernetes-engine/docs/how-to/autopilot-gpus). If\nyou select `Performance`, you can optionally select a Compute Engine machine\nseries in the node selector. If you don't specify a machine series, GKE uses the\nC4 machine series depending on [regional\navailability](/compute/docs/regions-zones#available). For instructions, see [Run CPU-intensive workloads with optimal\nperformance](/kubernetes-engine/docs/how-to/performance-pods).\n\n### nodeAffinity\n\n```yaml\n apiVersion: apps/v1\n kind: Deployment\n metadata:\n name: hello-app\n spec:\n replicas: 3\n selector:\n matchLabels:\n app: hello-app\n template:\n metadata:\n labels:\n app: hello-app\n spec:\n terminationGracePeriodSeconds: 25\n containers:\n - name: hello-app\n image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0\n resources:\n requests:\n cpu: \"2000m\"\n memory: \"2Gi\"\n ephemeral-storage: \"1Gi\"\n affinity:\n nodeAffinity:\n requiredDuringSchedulingIgnoredDuringExecution:\n nodeSelectorTerms:\n - matchExpressions:\n - key: cloud.google.com/compute-class\n operator: In\n values:\n - \"\u003cvar translate=\"no\"\u003eCOMPUTE_CLASS\u003c/var\u003e\"\n \n```\n\nReplace \u003cvar translate=\"no\"\u003eCOMPUTE_CLASS\u003c/var\u003e with the name of the\n[compute\nclass](/kubernetes-engine/docs/concepts/autopilot-compute-classes#when-to-use) based on your use case, such as `Scale-Out`. If you select\n`Accelerator`, you must also specify a compatible GPU. For instructions, see [Deploy GPU workloads in Autopilot](/kubernetes-engine/docs/how-to/autopilot-gpus).\nIf you select `Performance`, you can optionally select a\nCompute Engine machine series in the node selector. If you don't specify a machine series, GKE uses the C4\nmachine series depending on [regional\navailability](/compute/docs/regions-zones#available). For instructions, see [Run CPU-intensive workloads with\noptimal performance](/kubernetes-engine/docs/how-to/performance-pods).\n\nYou can also request specific compute classes for your Spot Pods.\n\n### Specify resource requests\n\nWhen you choose a compute class, make sure that you specify resource requests\nfor your Pods based on the\n[Minimum and maximum resource requests](/kubernetes-engine/docs/concepts/autopilot-resource-requests#min-max-requests)\nfor your selected class. If your requests are less than the minimum,\nAutopilot automatically scales your requests up. However, if your\nrequests are greater than the maximum, Autopilot does not deploy your\nPods and displays an error message.\n\nChoose a CPU architecture\n-------------------------\n\nSome compute classes support multiple CPU architectures. For example, the\n`Scale-Out` class supports both Arm and x86 architectures. If you\ndon't request a specific architecture, Autopilot provisions nodes that\nhave the default architecture of the specified compute class. If your Pods need\nto use a different architecture, request that architecture in your node selector\nor node affinity rule, alongside your compute class request. The compute class\nthat you request must support the CPU architecture you specify.\n\nFor instructions, refer to\n[Deploy Autopilot Pods on Arm architecture](/kubernetes-engine/docs/how-to/autopilot-arm-workloads).\n\nWhat's next\n-----------\n\n- [Learn more about Autopilot cluster architecture](/kubernetes-engine/docs/concepts/autopilot-architecture).\n- [Learn about the lifecycle of Pods](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/).\n- [Learn about the available Autopilot compute classes](/kubernetes-engine/docs/concepts/autopilot-compute-classes).\n- [Read about the default, minimum, and maximum resource requests for each\n platform](/kubernetes-engine/docs/concepts/autopilot-resource-requests)."]]