Choisir une configuration minimum de plate-forme de processeur


Cette page explique comment spécifier une configuration minimum de plate-forme de processeur pour les nœuds des clusters Google Kubernetes Engine (GKE).

Pourquoi choisir une configuration minimum de plate-forme de processeur ?

Spécifier une configuration minimum de plate-forme de processeur est utile si vous avez besoin de capacités et de spécifications de processeur spécifiques, telles qu'une fréquence de base élevée ou une fonctionnalité de gestion de l'alimentation optimisée.

Certaines charges de travail avancées et gourmandes en ressources de calcul, dans les domaines de l'animation, du jeu et de l'analyse, peuvent tirer parti des ensembles de fonctionnalités spécifiques de différentes plates-formes de processeur (par exemple, AVX-2 ou AVX-512). Le choix d'une plate-forme de processeur spécifique peut ainsi se traduire par une amélioration substantielle des temps d'exécution et des performances. En spécifiant une configuration minimum pour la plate-forme de processeur, vous permettez à vos charges de travail de bénéficier de ces améliorations de manière plus prévisible, et vous avez la certitude que vos nœuds n'utiliseront jamais une plate-forme de processeur inadaptée à leurs charges de travail.

Comment choisir une plate-forme

Le tableau suivant vous indique comment choisir une configuration minimum de plate-forme de processeur en fonction de la manière dont vous utilisez GKE :

Niveau d'accès Description Configuration de cluster compatible
Au niveau de la charge de travail (recommandé)

Choisissez une plate-forme minimale dans la spécification de votre pod. GKE planifie ces pods comme suit :

  • Autopilot : GKE planifie les pods sur les nœuds avec la plate-forme spécifiée ou une version ultérieure.
  • Standard : GKE ne planifie les pods que sur les nœuds avec la plate-forme spécifiée. Par exemple, si un pool de nœuds Intel Ice Lake existe et que les nouveaux pods demandent un minimum d'Intel Cascade Lake, GKE crée un pool de nœuds avec Intel Cascade Lake, même si Intel Ice Lake est une plate-forme plus aboutie.

Au niveau du nœud et du cluster Choisissez une configuration minimum de plate-forme de processeur lorsque vous créez un cluster ou un pool de nœuds en mode Standard. Ce paramètre n'est pas compatible avec le provisionnement automatique des nœuds. Pour obtenir des instructions, passez à la section Choisir une configuration minimale de plate-forme de processeur au niveau du pool de nœuds. Nouveau cluster ou pool de nœuds Standard

Tarifs

Vous pouvez choisir une configuration minimum de plate-forme de processeur sans frais supplémentaires.

Avant de commencer

Avant de commencer, effectuez les tâches suivantes :

  • Activez l'API Google Kubernetes Engine.
  • Activer l'API Google Kubernetes Engine
  • 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.

Vérifier la disponibilité de la plate-forme de processeur

Les plates-formes de processeur disponibles varient en fonction de la zone de calcul dans laquelle vos nœuds s'exécutent. Vous devez vérifier quelles plates-formes de processeur sont disponibles dans une zone même si vous utilisez des clusters Autopilot ou des clusters Standard régionaux.

Pour vérifier les plates-formes disponibles dans une zone spécifique, exécutez la commande suivante :

gcloud compute zones describe COMPUTE_ZONE

Remplacez COMPUTE_ZONE par le nom d'une zone, par exemple us-central1-a. Si vous utilisez un type de cluster régional, spécifiez le nom d'une zone dans cette région.

Le résultat ressemble à ce qui suit :

availableCpuPlatforms:
- Intel Ice Lake
- Intel Cascade Lake
- Intel Skylake
- Intel Broadwell
- Intel Haswell
- Intel Ivy Bridge
- Intel Sandy Bridge
- AMD Milan
- AMD Rome
- Ampere Altra
- Intel Sapphire Rapids

Lorsque vous utilisez ces valeurs pour demander une configuration minimum de plate-forme de processeur, remplacez les espaces par des traits de soulignement dans le nom de la plate-forme. Par exemple, AMD_Milan.

Sélectionner une configuration minimale de plate-forme de processeur au niveau de la charge de travail

Si vous utilisez des clusters GKE Autopilot ou des clusters GKE Standard avec provisionnement automatique des nœuds, vous pouvez choisir une configuration minimum de plate-forme de processeur dans la spécification de votre pod. Lorsque vous déployez la charge de travail, GKE ne planifie ces pods que sur les nœuds ayant la plate-forme spécifiée ou une version plus récente. Cette méthode est celle que nous recommandons.

Autopilot

Dans Autopilot, demandez une configuration minimum de plate-forme de processeur et une classe de calcul. La classe de calcul doit être compatible avec la plate-forme de processeur. Autopilot accepte la sélection d'une configuration minimale de plate-forme de processeur pour la classe de calcul Balanced. Pour obtenir la liste des plates-formes de processeur disponibles dans chaque classe de calcul, consultez la section Quand utiliser des classes de calcul spécifiques.

Enregistrez le manifeste suivant sous le nom min-cpu.yaml :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/compute-class: "COMPUTE_CLASS"
        supported-cpu-platform.cloud.google.com/PLATFORM: "true"
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Remplacez les éléments suivants :

  • PLATFORM : nom de la plate-forme de processeur, par exemple AMD_Milan. Le nom de la plate-forme est sensible à la casse et doit être délimité par des traits de soulignement.
  • COMPUTE_CLASS : nom de la classe de calcul, qui doit être Balanced.

Standard

Dans les clusters Standard avec le provisionnement automatique des nœuds activé, demandez une plate-forme de processeur avec une famille de machines Compute Engine. La famille de machines doit être compatible avec la plate-forme de processeur. Pour obtenir la liste des plates-formes compatibles avec chaque famille de machines, consultez la section Plates-formes de processeur Compute Engine.

Enregistrez le manifeste suivant sous le nom min-cpu.yaml :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: min-cpu-platform
  labels:
    app: min-cpu
spec:
  replicas: 3
  selector:
    matchLabels:
      app: min-cpu
  template:
    metadata:
      labels:
        app: min-cpu
    spec:
      nodeSelector:
        cloud.google.com/machine-family: MACHINE_FAMILY
        cloud.google.com/requested-min-cpu-platform: PLATFORM
      containers:
      - name: hello-app
        image: us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
        ports:
        - containerPort: 8080
        resources:
          requests:
            cpu: 250m

Remplacez les éléments suivants :

  • PLATFORM : nom de la plate-forme de processeur, par exemple AMD_Milan. Le nom de la plate-forme est sensible à la casse et doit être délimité par des traits de soulignement.
  • MACHINE_FAMILY : nom de la famille de machines, par exemple n2d.

Déployer la charge de travail :

kubectl apply -f min-cpu.yaml

Les nœuds conservent la même plate-forme tout au long de leur cycle de vie, sauf si la plate-forme de processeur spécifiée est retirée, auquel cas vos nœuds seront exécutés sur une plate-forme plus récente.

Choisir une configuration minimum de plate-forme de processeur au niveau du pool de nœuds

Pour les clusters GKE Standard sans provisionnement automatique des nœuds, vous pouvez spécifier une configuration minimum de plate-forme de processeur lorsque vous créez un nouveau cluster ou un nouveau pool de nœuds. Vous ne devez utiliser cette approche que si vous ne pouvez pas utiliser le paramètre au niveau de la charge de travail. Ce paramètre n'affecte pas le provisionnement automatique des nœuds.

gcloud

Pour créer un pool de nœuds avec une configuration minimum de plate-forme de processeur en utilisant gcloud CLI, définissez l'option --min-cpu-platform et spécifiez le nom de la plate-forme de processeur :

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --region COMPUTE_REGION \
    --min-cpu-platform PLATFORM

Remplacez les éléments suivants :

  • POOL_NAME : nom de votre nouveau pool de nœuds.
  • CLUSTER_NAME : nom du cluster
  • COMPUTE_REGION : région du cluster.
  • PLATFORM : plate-forme de processeur que vous souhaitez exécuter dans le pool de nœuds, par exemple "Intel Broadwell".

Console

  1. Accédez à la page Google Kubernetes Engine dans Google Cloud Console.

    Accéder à Google Kubernetes Engine

  2. Dans la liste des clusters, cliquez sur le nom du cluster que vous souhaitez modifier.

  3. Cliquez sur Ajouter un pool de nœuds.

  4. Configurez le pool de nœuds selon vos préférences.

  5. Dans le volet de navigation, cliquez sur Nœuds.

  6. Sous Configuration de la machine, procédez comme suit :

  7. Dans la liste déroulante Série, sélectionnez un type de machines.

  8. Dans la liste déroulante Type de machine, sélectionnez Personnalisé.

  9. Sélectionnez Cœurs et Mémoire selon vos besoins.

  10. Cliquez sur Plate-forme du processeur et GPU.

  11. Dans la liste déroulante Plate-forme du processeur, sélectionnez la plate-forme souhaitée.

  12. Cliquez sur Créer.

API

Incluez la propriété minCpuPlatform dans le champ nodeConfig du corps de la requête. La valeur de minCpuPlatform doit correspondre au nom de la plate-forme, tel que Intel Haswell, Intel Broadwell et Intel Sandy Bridge.

Par exemple, la requête suivante crée un nouveau pool de nœuds exécutant la plate-forme Intel Broadwell :

POST https://container.googleapis.com/v1/projects/PROJECT_ID/regions/COMPUTE_REGION/clusters/CLUSTER_NAME/nodePools

{
  'nodePool': {
    'name': 'POOL_NAME',
    'nodeConfig': {
      'minCpuPlatform': 'Intel Broadwell'
      ...
    }
    ...
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet.
  • COMPUTE_REGION : région du cluster.
  • CLUSTER_NAME : nom du cluster
  • POOL_NAME : nom de votre nouveau pool de nœuds.

Si vous spécifiez la plate-forme lorsque vous créez un cluster, le paramètre de configuration minimale de plate-forme de processeur s'applique au pool de nœuds par défaut du nouveau cluster.

Alternatives

GKE vous permet également de sélectionner la configuration minimum des plates-formes de processeur à l'aide des méthodes suivantes :

Alternatives

Option au niveau du cluster

Option --autoprovisioning-min-cpu-platform

Limites

Les limites suivantes s'appliquent à toutes les méthodes de sélection d'une configuration minimum de plate-forme de processeur :

  • Toutes les limites de configurations minimum de plate-forme de processeur de Compute Engine s'appliquent.
  • La disponibilité de plates-formes de processeur spécifiques varie selon les zones.
  • Le type de machine E2 n'est pas compatible avec les configurations minimum de plate-forme de processeur. Vous devez sélectionner un autre type de machine.
  • Les clusters Autopilot ne sont compatibles avec la sélection de plate-forme que pour la classe de calcul Balanced, et non pour les classes de calcul par défaut ou Scale-Out.
  • Si votre charge de travail Autopilot demande plus de 80 processeurs virtuels, la configuration minimum de plate-forme de processeur doit être Intel Ice Lake ou une version ultérieure. Si vous spécifiez une plate-forme moins avancée, votre pod peut rester indéfiniment à l'état Pending.

La limite suivante s'applique au paramètre de configuration minimum de plate-forme de processeur du cluster ou du pool de nœuds :

Si vous sélectionnez une configuration minimum de plate-forme de processeur moins avancée que la plate-forme de processeur par défaut dans la zone, ou si la plate-forme sélectionnée n'est plus disponible, GKE vérifie s'il existe une plate-forme plus récente au même coût. Si une plate-forme plus récente existe au même coût, GKE crée les nœuds à l'aide de cette nouvelle plate-forme. S'il n'existe pas de plate-forme plus récente au même coût, la création du cluster ou du pool de nœuds échoue.

Étapes suivantes