Ce document explique comment sélectionner des classes de calcul spécifiques afin d'exécuter des charges de travail ayant des exigences matérielles spécifiques dans vos clusters Google Kubernetes Engine (GKE) Autopilot. Avant de lire ce document, assurez-vous de connaître le concept de classe de calcul dans GKE Autopilot.
Présentation des classes de calcul Autopilot
Autopilot propose des classes de calcul conçues pour exécuter des charges de travail ayant des exigences matérielles spécifiques. Elles sont utiles pour des charges de travail telles que le machine learning et les tâches d'IA, ou pour l'exécution de bases de données à trafic élevé en temps réel.
Ces classes de calcul sont un sous-ensemble de la série de machines Compute Engine et offrent une flexibilité supérieure à la classe de calcul à usage général Autopilot par défaut.
Par exemple, la classe Scale-Out désactive plusieurs threads simultanés de sorte que chaque processeur virtuel représente un cœur physique.
En fonction des besoins individuels de vos pods, vous pouvez configurer vos pods Autopilot standards ou vos pods Spot pour demander des nœuds sauvegardés par ces classes de calcul. Vous pouvez également demander une architecture de processeur spécifique, telle que Arm, dans les classes de calcul compatibles avec cette architecture.
Avant de commencer
Avant de commencer, effectuez les tâches suivantes :
Si vous souhaitez utiliser Google Cloud CLI pour cette tâche, installez puis initialisez gcloud CLI. Si vous avez déjà installé gcloud CLI, assurez-vous de disposer de la dernière version en exécutant la commande gcloud components update.
Demander une classe de calcul dans votre pod Autopilot
Pour indiquer à Autopilot de placer vos pods sur une classe de calcul spécifique, spécifiez le libellé cloud.google.com/compute-class dans un nodeSelector ou une règle d'affinité de nœuds comme dans les exemples suivants :
Vous pouvez également demander des classes de calcul spécifiques pour vos pods Spot.
Spécifier les demandes de ressources
Lorsque vous choisissez une classe de calcul, veillez à spécifier les demandes de ressources pour vos pods en fonction des demandes de ressources minimales et maximales pour la classe que vous avez sélectionnée. Si le nombre de requêtes est inférieur au minimum, Autopilot effectue un scaling à la hausse automatiquement de vos requêtes. Toutefois, si vos requêtes dépassent le nombre maximum, Autopilot ne déploie pas vos pods et affiche un message d'erreur.
Choisir une architecture de processeur
Certaines classes de calcul sont compatibles avec plusieurs architectures de processeur. Par exemple, la classe Scale-Out est compatible avec les architectures Arm et x86. Si vous ne demandez pas d'architecture spécifique, Autopilot provisionne les nœuds disposant de l'architecture par défaut de la classe de calcul spécifiée. Si vos pods doivent utiliser une architecture différente, demandez cette architecture dans votre sélecteur de nœud ou votre règle d'affinité de nœuds en même temps que votre requête de classe de calcul. La classe de calcul que vous demandez doit être compatible avec l'architecture de processeur que vous spécifiez.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/04 (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)."]]