kube-system: Pod Warning FailedScheduling default-scheduler Нет доступных узлов для планирования модулей
Почему я получаю:
kube-system 1m 1h 245 kube-dns-fcd468cb-8fhg2.156899dbda62d287 Pod Warning FailedScheduling default-scheduler no nodes available to schedule pods
ОБНОВЛЕНИЕ - теперь я перенес весь кластер в us-west-2
скорее, чем eu-west-1
так что я могу запустить код из коробки, чтобы предотвратить появление каких-либо ошибок. tfstate
файл показал правильную EKS AMI, на которую ссылаются.
Например
720: "image_id": "ami-00c3b2d35bddd4f5c",
FWIW, я следую за https://www.terraform.io/docs/providers/aws/guides/eks-getting-started.html и использую код, на который он ссылается в Github - то есть https: // github. ком / терраформировать-провайдеры / Terraform-провайдер-AWS / дерево / мастер / примеры / эКС-получение стартером
Примечание: просматривая инстансы EC2, я вижу 2 узла EKS, работающих с правильными идентификаторами AMI.
==== ОБНОВЛЕНИЯ
Проверка узлов:
kubectl get nodes
No resources found.
SSH в один из узлов и работает journalctl
показывает:
Nov 21 12:28:25 ip-10-0-0-247.us-west-2.compute.internal kubelet[4417]: E1121 12:28:25.419465 4417 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:461: Failed to list *v1.Node: Unauthorized
Nov 21 12:28:25 ip-10-0-0-247.us-west-2.compute.internal kubelet[4417]: E1121 12:28:25.735882 4417 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:452: Failed to list *v1.Service: Unauthorized
Nov 21 12:28:26 ip-10-0-0-247.us-west-2.compute.internal kubelet[4417]: E1121 12:28:26.237953 4417 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list *v1.Pod: Unauthorized
Nov 21 12:28:26 ip-10-0-0-247.us-west-2.compute.internal kubelet[4417]: W1121 12:28:26.418327 4417 cni.go:171] Unable to update cni config: No networks found in /etc/cni/net.d
Nov 21 12:28:26 ip-10-0-0-247.us-west-2.compute.internal kubelet[4417]: E1121 12:28:26.418477 4417 kubelet.go:2130] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: n
Учитывая, что Auth может быть проблемой, я проверил код Terraform, который кажется правильным. Например:
В любом случае я могу проверить это более подробно? Или какие-либо дополнительные предложения?
1 ответ
Я предполагаю, что в вашем кластере нет зарегистрированных узлов. То, что узлы EC2 не работают, не означает, что ваш кластер может их использовать. Вы можете проверить с помощью:
$ kubectl get nodes
Другая возможность состоит в том, что ваши узлы доступны, но у них недостаточно ресурсов (что маловероятно).
Другая возможность состоит в том, что ваши узлы заражены чем-то вроде этого:
$ kubectl taint node node1 key=value:NoSchedule
Вы можете проверить и удалить его:
$ kubectl describe node node1
$ kubectl taint node node1 key:NoSchedule-
Другая возможность состоит в том, что у вас есть nodeSelector
в вашей спецификации модуля, и у вас нет узлов, помеченных этим селектором узлов. Проверить с:
$ kubectl get nodes --show-labels