Un node pool est un groupe de nœuds partageant la même configuration (machine type, disque, image, labels) au sein d’un même cluster. Un cluster GKE en mode Standard peut avoir plusieurs node pools — par exemple un pool générique et un pool GPU — chacun scalé indépendamment.
Mécanismes d’autoscaling
| Mécanisme | Portée | Rôle |
|---|---|---|
| Cluster Autoscaler | Par node pool | Ajoute des nœuds si des pods restent Pending faute de ressources, en retire après un délai d’inactivité (config min/max par pool) |
| Node Auto-provisioning (NAP) | Cluster entier | Crée et supprime des node pools entiers automatiquement selon les besoins des workloads, dans des limites de ressources définies — rapproche un cluster Standard du comportement Autopilot |
| Horizontal Pod Autoscaler (HPA) | Par Deployment | Générique Kubernetes — scale le nombre de pods, indépendant de GKE |
| Vertical Pod Autoscaler (VPA) | Par Deployment | Générique Kubernetes — ajuste les requests/limits des pods |
HPA et VPA ne sont pas spécifiques à GKE — voir Synthèse des composants Kubernetes pour leur fonctionnement générique. Le Cluster Autoscaler et le NAP, eux, pilotent l’infrastructure GCP sous-jacente (Compute Engine), ce qui est propre à un Kubernetes managé par un cloud provider.
Spot VMs et Preemptible VMs
Réduction de coût significative (jusqu’à ~60-91% par rapport à un nœud à la demande), au prix d’une éviction possible à tout moment par Google :
- Spot VMs : pas de durée de vie maximale garantie, éviction avec ~30s de préavis (
SIGTERM). - Preemptible VMs (legacy) : durée de vie plafonnée à 24h, remplacées par les Spot VMs sur les nouvelles générations de machines.
- Bonnes pratiques : isoler ces nœuds dans un node pool dédié avec un taint, et tolérer ce taint uniquement sur les workloads stateless et tolérants à l’interruption (batch, CI runners, traitement asynchrone).
Images de nœuds
| Image | Caractéristiques |
|---|---|
| Container-Optimized OS (COS) | Image Google minimale, durcie, patchs de sécurité automatiques — défaut recommandé |
| Ubuntu | Pour compatibilité avec des besoins spécifiques (kernel modules, drivers) |
En relation avec
- GKE — Vue d’ensemble — hub GKE
- Autopilot vs Standard — en Autopilot, ce scaling est entièrement invisible pour l’utilisateur
- Nœuds — Vue d’ensemble — composants génériques exécutés sur chaque nœud (kubelet, kube-proxy, container runtime)
- Compute Engine — les VM sous-jacentes à chaque node pool