事象
Podを起動するもpodが以下エラーで起動しない。
kubectl get pod NAME READY STATUS ... nginx-xx 0/1 Pending
環境情報
- kubectl v1.18
原因/対応策
Materにてschedulerが起動に失敗している
$ kubectl get componentstatus NAME STATUS MESSAGE ERROR scheduler Unhealthy Get http://127.0.0.1:10251/healthz: dial tcp 127.0.0.1:10251: connect: connection refused controller-manager Healthy ok etcd-0 Healthy {"health":"true"}
暫定的であればnodeNameを指定して手動でNodeに展開する。
kubectl explain pod.spec.nodeName KIND: Pod VERSION: v1 FIELD: nodeName <string>
以下、補足です。
補足
WorkerNode側の不具合の場合は以下の記事にもあるようにEvent部分にメッセージが出ます。
一方でそもそもスケジュールがされない場合はEvent部分も空になっています。
Events: <none>
kubectl get pods -n kube-system
やvar/log/containers
を見ればcontroller-managerの起動に失敗していることに気付けるので、以下の状態になるように対応する必要があります。
controller-manager Healthy ok
以上、同様の事象の方の参考になれば幸いです。