À propos des ComputeClass intégrées dans GKE

Cette page décrit les ComputeClasses que Google Kubernetes Engine (GKE) installe dans vos clusters. Vous découvrirez le nom, la disponibilité et la configuration des nœuds de chaque ComputeClass intégrée. Cette page s'adresse aux ingénieurs de plate-forme et aux opérateurs d'applications qui souhaitent faire un choix éclairé sur les ComputeClasses disponibles et sur la classe optimale pour des charges de travail spécifiques.

Vous devez déjà connaître les ComputeClasses.

Présentation des ComputeClasses intégrées

De nombreuses charges de travail GKE sont des charges de travail à usage général qui ne nécessitent pas de matériel spécialisé, comme des serveurs Web ou des jobs par lots à petite échelle. Pour ces charges de travail, la priorité est souvent de réduire la surcharge associée à la gestion manuelle de l'infrastructure de nœuds et de la configuration de l'autoscaling.

GKE propose différentes ComputeClasses intégrées pour des cas d'utilisation tels que l'exécution de charges de travail Autopilot dans des clusters standards ou le placement de charges de travail à usage général tolérantes aux pannes sur des VM Spot. Utilisez une ComputeClass intégrée pour les charges de travail qui ne nécessitent pas de matériel spécifique (tel que des GPU) ni de paramètres de nœud spécifiques (tels que des indicateurs sysctl Linux). Si vos charges de travail ont besoin de matériel plus spécialisé, utilisez une ComputeClass personnalisée.

ComputeClasses intégrées disponibles dans GKE

Le tableau suivant décrit les ComputeClasses intégrées disponibles dans GKE :

ComputeClasses intégrées
autopilot

Créez des nœuds x86 à la demande qui utilisent la plate-forme de calcul optimisée pour les conteneurs Autopilot . Cette ComputeClass est la valeur par défaut pour les clusters Autopilot dans n'importe quelle version de GKE, mais elle est disponible pour une sélection explicite dans des versions spécifiques de GKE.

Il s'agit d'une ComputeClass Autopilot, ce qui signifie que GKE gère les nœuds pour vous, même dans les clusters standards. Vous pouvez utiliser cette ComputeClass pour exécuter des charges de travail en mode Autopilot dans des clusters standards.

Disponible dans les clusters Autopilot et les clusters standards exécutant GKE version 1.34.1-gke.1829001 ou ultérieure.

autopilot-spot

Créez des VM Spot qui utilisent la plate-forme de calcul optimisée pour les conteneurs Autopilot. Cette ComputeClass est appliquée par défaut à tous les pods des clusters Autopilot qui sélectionnent explicitement des VM Spot dans la spécification du pod.

Il s'agit d'une ComputeClass Autopilot, ce qui signifie que GKE gère les nœuds pour vous, même dans les clusters standards. Vous pouvez utiliser cette ComputeClass pour exécuter des charges de travail en mode Autopilot dans des clusters standards.

Disponible dans les clusters Autopilot et les clusters standards exécutant GKE version 1.34.1-gke.1829001 ou ultérieure.

autopilot-arm

Créez des nœuds Arm à la demande qui utilisent la plate-forme de calcul optimisée pour les conteneurs Autopilot . Cette plate-forme est sans génération, ce qui signifie qu'elle n'est pas liée à une famille de machines spécifique. Cela la distingue de la spécification d'une série de machines comme C4A, N4A ou T2A. L'utilisation de la autopilot-arm ComputeClass est recommandée pour les charges de travail Arm à usage général.

Disponible dans les clusters Autopilot exécutant GKE version 1.35.3-gke.1389000 ou ultérieure. Cette fonctionnalité n'est disponible que dans les régions suivantes : us-east1, us-west1, europe-west1, europe-west4 et us-central1.

La classe de calcul autopilot-arm n'est disponible que via Autopilot.

Pour afficher les spécifications de ces ComputeClasses intégrées, utilisez la commande kubectl get :

kubectl get computeclass COMPUTECLASS_NAME -o yaml

Tarifs

Autopilot vous facture différemment selon la ComputeClass demandée par vos pods. Pour en savoir plus, consultez la page Tarifs de Google Kubernetes Engine.

Sélection de ComputeClass intégrée dans les charges de travail

Pour sélectionner une ComputeClass intégrée ou personnalisée lorsque vous déployez une charge de travail GKE, sélectionnez le libellé cloud.google.com/compute-class dans le fichier manifeste de votre charge de travail, comme dans l'exemple suivant :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloweb
  labels:
    app: hello
spec:
  selector:
    matchLabels:
      app: hello
  template:
    metadata:
      labels:
        app: hello
    spec:
      nodeSelector:
        # Replace with the name of a compute class
        cloud.google.com/compute-class: COMPUTE_CLASS 
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: "250m"
            memory: "1Gi"

Dans cet exemple, COMPUTE_CLASS correspond au nom d'une classe de calcul. Vous ne pouvez pas sélectionner plus d'une ComputeClass dans une charge de travail spécifique.

Lorsque vous déployez une charge de travail qui sélectionne une ComputeClass, GKE utilise les propriétés de cette ComputeClass pour créer des nœuds afin d'exécuter les pods. Par exemple, si vous sélectionnez la ComputeClass intégrée autopilot dans une charge de travail, GKE exécute ces pods en mode Autopilot.

Application par défaut des ComputeClasses intégrées

Vous pouvez définir n'importe quelle ComputeClass d'un cluster comme ComputeClass par défaut pour un espace de noms spécifique ou pour un cluster entier. GKE applique cette ComputeClass à tous les pods qui ne sélectionnent pas explicitement une autre ComputeClass. Pour définir une ComputeClass intégrée comme valeur par défaut, procédez de l'une des manières suivantes :

  • Pour définir la ComputeClass comme valeur par défaut de l'espace de noms, ajoutez un libellé pour la ComputeClass à l'espace de noms.
  • Pour définir la ComputeClass comme valeur par défaut au niveau du cluster, créez une ComputeClass nommée default et qui présente les mêmes règles de priorité que la ComputeClass intégrée.

Pour en savoir plus sur la définition d'une ComputeClass comme valeur par défaut pour un espace de noms ou un cluster, consultez Appliquer des ComputeClasses aux pods par défaut.

Prenons l'exemple d'un cluster standard qui exécute de nombreux pods à usage général, tels que des serveurs Web ou des jobs par lots de petite taille. Si vous définissez une ComputeClass qui imite la ComputeClass intégrée autopilot comme valeur par défaut pour le cluster, ces charges de travail à usage général s'exécutent sur la plate-forme de calcul optimisée pour les conteneurs Autopilot sans qu'il soit nécessaire de modifier les spécifications de la charge de travail. Les charges de travail qui nécessitent un matériel différent peuvent ajouter un sélecteur pour une ComputeClass spécifique.

Étape suivante