Les administrateurs de clusters et les opérateurs d'applications peuvent bénéficier des avantages de Google Kubernetes Engine (GKE) Autopilot, comme les tarifs et les paramètres préconfigurés, dans les clusters en mode Standard. Ce document explique comment utiliser ComputeClasses pour déployer une charge de travail Autopilot dans un cluster Standard. Vous devez déjà connaître les concepts suivants :
À propos des classes de calcul Autopilot
GKE fournit des ressources personnalisées Kubernetes nommées ComputeClasses qui peuvent être déployées dans votre cluster comme n'importe quelle autre ressource Kubernetes. Une ComputeClass définit une liste de configurations de nœuds, comme les types de machines ou les VM Spot. Vous pouvez sélectionner des ComputeClasses dans vos charges de travail, ce qui indique à GKE que tous les nouveaux nœuds doivent utiliser l'une des configurations de cette liste.
Si une charge de travail sélectionne une ComputeClass dont le champ autopilot est activé, GKE exécute les pods en mode Autopilot. Les nœuds créés par GKE sont gérés par Google et incluent de nombreux paramètres de sécurité et fonctionnalités Autopilot par défaut. Pour en savoir plus sur les implications de l'exécution d'une charge de travail Autopilot dans vos clusters Standard, y compris les différences que vous pouvez remarquer lorsque vous déployez ces charges de travail, consultez À propos des charges de travail en mode Autopilot dans GKE Standard.
Types de classes de calcul Autopilot
GKE fournit des ComputeClasses Autopilot intégrées que vous pouvez utiliser pour la plupart des charges de travail à usage général. Vous pouvez également configurer une classe ComputeClass personnalisée nouvelle ou existante pour qu'elle utilise le mode Autopilot. Le type de ComputeClass Autopilot que vous utilisez dépend de la nécessité ou non pour vos charges de travail d'utiliser du matériel spécifique, comme suit :
- Charges de travail à usage général : utilisez l'une des classes de calcul Autopilot intégrées, qui placent les pods sur la plate-forme de calcul optimisée pour les conteneurs.
- Charges de travail nécessitant du matériel spécifique : activez le mode Autopilot pour n'importe quelle ComputeClass personnalisée, déployez cette ComputeClass sur le cluster et sélectionnez-la dans vos charges de travail.
Pour en savoir plus sur ces options, quand les utiliser et les tarifs de chacune d'elles, consultez Sélection du matériel dans les ComputeClasses Autopilot.
Tarifs
Les tarifs de GKE Autopilot s'appliquent aux charges de travail et aux nœuds qui utilisent une classe de calcul Autopilot. Le modèle de tarification qui s'applique dépend de l'utilisation d'une ComputeClass Autopilot intégrée ou d'une ComputeClass Autopilot personnalisée. Pour en savoir plus, consultez la section Tarification de l'article "À propos des charges de travail du mode Autopilot dans GKE Standard".
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 la gcloud CLI. Si vous avez déjà installé la gcloud CLI, obtenez la dernière version en exécutant la commande
gcloud components update. Il est possible que les versions antérieures de la gcloud CLI ne permettent pas d'exécuter les commandes de ce document.
- Utilisez un cluster GKE Standard qui exécute la version 1.33.1-gke.1107000 ou ultérieure et qui est enregistré dans le canal de publication Rapide. Pour créer un cluster, consultez Créer un cluster régional.
- Pour éviter que vos charges de travail soient refusées, découvrez les exigences et les contraintes de sécurité d'Autopilot. Pour en savoir plus, consultez Paramètres prédéfinis pour les nœuds Autopilot.
Conditions requises
Au moins un pool de nœuds du cluster ne doit pas comporter de taints de nœuds.
Ce pool de nœuds est nécessaire pour exécuter les pods système GKE Standard qui ne peuvent pas s'exécuter sur les nœuds Autopilot dans les clusters Standard en raison des rejets que GKE ajoute à ces nœuds.
Les nœuds GKE protégés sont obligatoires et activés par défaut.
Vous devez utiliser un cluster de VPC natif.
Si vous utilisez des règles de réseau Kubernetes, votre cluster doit utiliser GKE Dataplane V2. Par défaut, tous les nouveaux clusters utilisent GKE Dataplane V2.
Si votre cluster n'utilise pas GKE Dataplane V2, vous devez désactiver l'application des règles de réseau.
Limites
- Seul le version disponible rapide est accepté.
- Pour mettre à jour les ComputeClasses existantes dans le cluster afin d'utiliser le mode Autopilot, vous devez recréer ces ComputeClasses avec une spécification mise à jour. Pour en savoir plus, consultez Activer Autopilot pour une ComputeClass personnalisée existante.
- Vous ne pouvez pas utiliser la règle de priorité
podFamilydans vos propres ComputeClasses. Cette règle n'est disponible que dans les classes de calcul Autopilot intégrées. - Les ComputeClasses Autopilot intégrées ne permettent pas d'activer les nœuds GKE confidentiels pour l'ensemble de votre cluster. Si vous activez les nœuds Confidential GKE Node pour le cluster, tous les nouveaux pods qui sélectionnent les ComputeClasses Autopilot intégrées restent indéfiniment à l'état
Pending. - L'application des règles de réseau Calico n'est pas compatible. Vous devez utiliser GKE Dataplane V2 ou désactiver l'application des règles de réseau.
- Le nom de votre ComputeClass ne peut pas commencer par
gkeniautopilot, qui sont des préfixes réservés.
Rôles et autorisations nécessaires
Pour obtenir les autorisations nécessaires pour déployer des ComputeClasses, demandez à votre administrateur de vous accorder le rôle IAM Développeur Kubernetes Engine (roles/container.developer) sur votre cluster ou votre projet .
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
Modifier des clusters pour répondre aux exigences d'Autopilot
Vous pouvez utiliser la console Google Cloud pour vérifier si votre cluster Standard répond à toutes les exigences pour exécuter des charges de travail en mode Autopilot. Vous pouvez également utiliser la console Google Cloud pour modifier le cluster afin de répondre à ces exigences.
Modifier un cluster existant
Dans la console Google Cloud , accédez à la page Clusters Kubernetes.
Sur la ligne du cluster que vous souhaitez modifier, cliquez sur Autres actions > Modifier. La page Détails du cluster s'ouvre.
Dans la section Paramètres de base du cluster, recherchez la section Compatibilité avec la classe de calcul Autopilot.
Si la section affiche Activé, le cluster est déjà compatible avec Autopilot. Passez à la section Sélectionner une ComputeClass Autopilot dans une charge de travail.
Si la section Compatibilité avec la classe de calcul Autopilot affiche Désactivée, cliquez sur Modifier la compatibilité avec la classe de calcul Autopilot.
Si vous ne pouvez pas modifier cette section, cela signifie que votre cluster utilise un paramètre permanent incompatible avec le mode Autopilot. Par exemple, vous ne pouvez pas modifier les clusters pour qu'ils soient natifs du VPC après leur création. Si vous ne pouvez pas interagir avec la section Compatibilité avec la classe de calcul Autopilot, vous devez créer un cluster.
Dans le volet Compatibilité avec la classe de calcul Autopilot qui s'ouvre, examinez les paramètres du cluster qui doivent être modifiés pour répondre aux exigences du mode Autopilot.
Cliquez sur Activer la classe de calcul Autopilot. GKE modifie le cluster selon les besoins.
Modifier un nouveau cluster
Dans la console Google Cloud , accédez à la page Créer un cluster Kubernetes.
Sur la page Paramètres de base du cluster, recherchez la section Optimiser les options de déploiement avec la classe de calcul Autopilot. Cette section vous indique les paramètres de cluster à modifier pour répondre aux exigences du mode Autopilot.
Cliquez sur Activer la classe de calcul Autopilot. GKE modifie le cluster selon les besoins.
Configurez les autres paramètres du cluster en fonction de vos besoins. Si vous modifiez un paramètre qui rend le cluster incompatible avec Autopilot, un message d'avertissement s'affiche.
Sélectionner une ComputeClass Autopilot dans une charge de travail
Vous pouvez exécuter une charge de travail en mode Autopilot dans votre cluster Standard en sélectionnant une ComputeClass qui utilise le mode Autopilot. Pour exécuter une charge de travail en mode Autopilot, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Charges de travail GKE.
Cliquez sur Déployer ou Créer un job. La page de création de la charge de travail pour un déploiement ou un job s'affiche.
Dans la section Nœuds, sélectionnez Classe de calcul Autopilot.
Dans la section Sélectionner une classe de calcul, dans la liste déroulante Classe de calcul, sélectionnez une ComputeClass qui utilise le mode Autopilot. Cette ComputeClass peut être l'une des suivantes :
L'une des ComputeClasses Autopilot intégrées suivantes, qui placent les charges de travail à usage général sur la plate-forme de calcul optimisée pour les conteneurs Autopilot :
autopilotautopilot-spot
Une ComputeClass que vous créez, comme la ComputeClass
n4-classdécrite dans la section Configurer une ComputeClass Autopilot personnalisée.
Configurez et créez la charge de travail.
CLI kubectl
Pour sélectionner une ComputeClass Autopilot dans une charge de travail, utilisez un sélecteur de nœuds pour le libellé cloud.google.com/compute-class. Il s'agit du même libellé que celui que vous utilisez pour sélectionner une autre ComputeClass dans GKE. Les étapes suivantes vous montrent comment créer un exemple de déploiement qui sélectionne une ComputeClass et comment vérifier que les pods s'exécutent en mode Autopilot :
Enregistrez l'exemple de Déploiement suivant en tant que
autopilot-cc-deployment.yaml:Remplacez
COMPUTE_CLASSpar le nom de la classe de calcul à utiliser. Cette valeur peut être l'une des suivantes :L'une des ComputeClasses Autopilot intégrées suivantes, qui placent les charges de travail à usage général sur la plate-forme de calcul optimisée pour les conteneurs Autopilot :
autopilotautopilot-spot
Une ComputeClass que vous créez, comme la ComputeClass
n4-classdécrite dans la section Configurer une ComputeClass Autopilot personnalisée.
Déployer la charge de travail :
kubectl apply -f autopilot-cc-deployment.yaml
Configurer une ComputeClass Autopilot personnalisée
Vous pouvez configurer des ComputeClasses personnalisées pour utiliser Autopilot. Utilisez une ComputeClass Autopilot personnalisée si vos charges de travail nécessitent du matériel spécifique pour s'exécuter de manière optimale, comme des GPU ou une série de machines Compute Engine spécifique.
Si vos charges de travail ne nécessitent pas de matériel spécifique, nous vous recommandons d'utiliser l'une des ComputeClasses Autopilot intégrées. Pour sélectionner une ComputeClass Autopilot intégrée, consultez la section précédente Sélectionner une ComputeClass Autopilot dans une charge de travail.
Créer une classe de calcul Autopilot personnalisée
Enregistrez l'exemple de fichier manifeste ComputeClass suivant sous le nom
n4-class.yaml:apiVersion: cloud.google.com/v1 kind: ComputeClass metadata: name: n4-class spec: autopilot: enabled: true priorities: - machineFamily: n4 spot: true minCores: 16 - machineFamily: n4 spot: true - machineFamily: n4 spot: false activeMigration: optimizeRulePriority: trueCe fichier manifeste comprend les champs suivants :
autopilot: active le mode Autopilot pour ComputeClass. Si vous spécifiez ce champ dans une ComputeClass que vous déployez sur un cluster Autopilot, GKE l'ignore.priorities: définit un tableau de trois configurations différentes de la famille de machines N4.activeMigration: permet à GKE de migrer les pods vers des configurations plus haut dans la liste des priorités lorsque des ressources deviennent disponibles.
Déployez la ComputeClass :
kubectl apply -f n4-class.yamlVérifiez que la ComputeClass existe :
kubectl get computeclassesLe résultat ressemble à ce qui suit :
NAME AGE n4-class 3s
Activer Autopilot pour une ComputeClass personnalisée existante
Vous pouvez activer Autopilot dans les ComputeClasses personnalisées existantes qui se trouvent dans un cluster Standard. L'activation d'Autopilot dans une ComputeClass d'un cluster Autopilot n'a aucun effet, car l'ensemble du cluster utilise le mode Autopilot.
Une fois que vous avez activé Autopilot pour une ComputeClass existante, GKE utilise Autopilot pour exécuter les nouveaux pods qui sélectionnent la ComputeClass. Si vous avez des pods existants sur des nœuds standards qui sélectionnent la ComputeClass Autopilot, ces pods n'utilisent Autopilot que lorsqu'ils sont recréés.
Pour mettre à jour une ComputeClass personnalisée existante afin d'utiliser le mode Autopilot, procédez comme suit :
Dans un éditeur de texte, mettez à jour le fichier manifeste de votre ComputeClass existante pour ajouter le champ
spec.autopilot:spec: autopilot: enabled: trueRemplacez la ressource
ComputeClassexistante dans l'API Kubernetes par la spécification mise à jour :kubectl replace --force -f PATH_TO_UPDATED_MANIFESTRemplacez
PATH_TO_UPDATED_MANIFESTpar le chemin d'accès à votre fichier manifeste mis à jour.Pour déclencher la création de nœuds, recréez les charges de travail qui utilisent la classe de calcul.
Une fois le fichier manifeste mis à jour appliqué, tous les nouveaux nœuds que GKE crée pour cette ComputeClass utilisent Autopilot. GKE ne modifie aucun nœud existant créé avant la mise à jour.
Vérifier que votre charge de travail utilise Autopilot
Sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Charges de travail GKE.
Pour votre charge de travail, vérifiez la valeur de la colonne Type de nœud. Si la charge de travail utilise le mode Autopilot, cette valeur est gérée par Autopilot.
CLI kubectl
Vérifiez les noms des nœuds qui exécutent vos pods :
kubectl get pods -l=app=hello -o wide
Le résultat ressemble à ce qui suit :
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
helloweb-79b9f6f75-5wwc9 1/1 Running 0 152m 10.102.1.135 gk3-cluster-1-nap-10abc8ya1-f66c6cef-wg5g <none> <none>
helloweb-79b9f6f75-9skb9 1/1 Running 0 4d3h 10.102.0.140 gk3-cluster-1-nap-10abc8ya1-632bac02-hjl6 <none> <none>
helloweb-79b9f6f75-h7bdv 1/1 Running 0 152m 10.102.1.137 gk3-cluster-1-nap-10abc8ya1-f66c6cef-wg5g <none> <none>
Dans ce résultat, le préfixe gk3- dans la colonne Nœud indique que le nœud est géré par Autopilot.
Appliquer une ComputeClass Autopilot par défaut
GKE vous permet de définir une ComputeClass comme classe par défaut pour un espace de noms. La classe par défaut de l'espace de noms s'applique à tous les pods de cet espace de noms qui ne sélectionnent pas explicitement une autre ComputeClass. Définir une ComputeClass Autopilot comme classe par défaut signifie que vous pouvez exécuter tous les pods d'un espace de noms en mode Autopilot par défaut, sauf si la charge de travail sélectionne une autre option.
Pour en savoir plus, consultez Configurer une ComputeClass par défaut pour un espace de noms.
Étapes suivantes
- Pour connaître les paramètres que vous pouvez spécifier dans ComputeClasses, consultez la définition de ressource personnalisée ComputeClass.