J'essaie actuellement de comprendre comment et pourquoi les pods sont programmés ou pas sur le contrôleur avec kube-aws 0-9-6 (1.6.2) Après avoir installé une pile propre, interroger l'espace de noms système de Kube Je vois ce qui suit:Kube-Aws Kubernetes Contrôleurs et tolérances de pods
kubectl --kubeconfig=kubeconfig --namespace kube-system get pod NAME READY STATUS RESTARTS AGE heapster-v1.3.0-690018220-tvr45 0/2 Pending 0 1h kube-apiserver-ip-10-0-0-17.eu-west-1.compute.internal 1/1 Running 0 3h kube-controller-manager-ip-10-0-0-17.eu-west-1.compute.internal 1/1 Running 0 3h kube-dns-1455470676-tlrlf 0/3 Pending 0 3h kube-dns-autoscaler-1106974149-xvdw5 0/1 Pending 0 1h kube-proxy-ip-10-0-0-17.eu-west-1.compute.internal 1/1 Running 0 3h kube-scheduler-ip-10-0-0-17.eu-west-1.compute.internal 1/1 Running 0 1h kubernetes-dashboard-v1.5.1-50n8s 1/1 Running 0 7s
maintenant, nous voyons que certains des gousses sont en cours d'exécution et d'autres sont en attente. Les gousses en attente sont en suspens en raison:
No nodes are available that match all of the following predicates:: PodToleratesNodeTaints (1).
regardant d'abord au niveau du noeud, je vois ce qui suit:
Taints: node.alpha.kubernetes.io/role=master:NoSchedule
Ce qui est bien, le nœud du contrôleur n'est pas planifiable, maintenant, je voulais voyez pourquoi les cosses sont programmées et pourquoi les autres ne le sont pas. recherche Tout d'abord au déploiement Kube-apiserver nous voyons:
tolerations: - effect: NoExecute operator: Exists
Tout d'abord cela ne figure pas dans les données de l'utilisateur du contrôleur, je me demande d'où il vient, mais même si elle est là, il ne fait aucune sens que cette tolérance satisfait la souillure de la NoSchedule
Ensuite, si nous regardons d'autres gousses qui sont en état d'attente, nous pouvons voir ce qui suit:
tolerations: - key: CriticalAddonsOnly operator: Exists
Ceci est parfaitement clair pourquoi ils ne peuvent pas être planifiés et ils sont en attente. ça ne satisfait pas la souillure.
À partir de ce moment, peu importe ce que je fais (sauf satisfaire le NoSchedule). Rien ne change. L'ajout de l'effet NoExecute à l'un des noeuds en attente ne les fait pas apparaître, ce qui est correct car ils ne satisfont rien.
Je ne trouve aucune justification pour l'api-serveur, contrôleur-gestionnaire, proxy et planificateur en cours d'exécution à l'attente et non (ne peut pas voir quelque chose de spécial dans la données utilisateur ainsi)
Peut quelqu'un s'il vous plaît expliquez-moi ce qui se passe?
Merci