Contraintes de Scheduling: introduction
Les contraintes de scheduling des Pods permettent de spécifier comment un Pod sera scheduler sur un Node. Voir la documentation officielle
Node selector: affecter des Pods via les labels Node
Les Nodes Kubernetes ont des labels comme les autres objets Kubernetes. On peut obtenir les labels d'un Node avec get ou describe.
kubectl get node some-node-name -o yaml
apiVersion: v1
kind: Node
metadata:
name: some-node-name
# Ces labels peuvent être utilisés par les Pods pour sélectionner les Nodes
# Comme les Services utilisent labelSelector pour sélectionner les Pods
labels:
beta.kubernetes.io/arch: amd64
beta.kubernetes.io/os: linux
kubernetes.io/hostname: some-node-name
topology.kubernetes.io/region: us-central1
topology.kubernetes.io/zone: us-central1-a
# ...
Utiliser nodeSelector pour affecter les Pods du Deployment Vote à un Node donné via le label topology.kubernetes.io/zone.
- Utiliser
kubectl describe nodeoukubectl get node -o yamlpour identifier les labels des Nodes - Mettre à jour le Deployment Vote pour définir
nodeSelectoret appliquer
Affecter un Pod à un Node spécifique
Utiliser le champ nodeName d'un Pod pour l'affecter à un Node précis.