Kubernetes kube-dns pod 待定
Kubernetes kube-dns pod is pending
我试过 doc 在 Ubuntu VM 中安装和设置 Kubernetes。我已经完成了 3/4,现在 kube-dns pod 处于待定状态。
我怎么能弄清楚这个?
这是 kubectl get pods --namespace=kube-system
和 kubectl describe pod <pod name>
的结果
# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
dummy-2088944543-jk2t2 1/1 Running 0 3h
etcd-ubuntu 1/1 Running 0 3h
kube-apiserver-ubuntu 1/1 Running 0 3h
kube-controller-manager-ubuntu 1/1 Running 0 3h
kube-discovery-1769846148-h88v4 1/1 Running 0 3h
kube-dns-2924299975-dfp17 0/4 Pending 0 3h
kube-proxy-zdcxw 1/1 Running 0 3h
kube-scheduler-ubuntu 1/1 Running 0 3h
weave-net-xwfhj 2/2 Running 0 2h
# kubectl describe pod kube-dns-2924299975-dfp17
Error from server (NotFound): pods "kube-dns-2924299975-dfp17" not found
原因
您的集群中很可能缺少可用的计算资源。
如果您正在使用 cluster/addons/dns 中的示例,您肯定会使用 Deployment
资源请求,如果您单击 link,则会突出显示。可能是您的其他 pods 已经在请求集群中的所有可用资源,因此您的 pod 没有得到调度。
您可以通过 kubectl --namespace=kube-system describe pod kube-dns-2924299975-dfp17
确认该理论并寻找以下事件:
Reason Message
------ -------
FailedScheduling pod (kube-dns-2924299975-dfp17) failed to fit in any node
fit failure summary on nodes : Insufficient cpu (3)
你也可以用kubectl describe node <node-name>
描述你的节点,看看最后的信息:
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.
CPU Requests CPU Limits Memory Requests Memory Limits
------------ ---------- --------------- -------------
320m (8%) 300m (7%) 150Mi (1%) 150Mi (1%)
在您的情况下,CPU 或内存分配应该接近 100%。
解决方案
- 向集群添加更多计算资源/节点(首选)
- 从您的 pod 中删除资源请求,冒着过度使用资源的风险
我试过 doc 在 Ubuntu VM 中安装和设置 Kubernetes。我已经完成了 3/4,现在 kube-dns pod 处于待定状态。
我怎么能弄清楚这个?
这是 kubectl get pods --namespace=kube-system
和 kubectl describe pod <pod name>
# kubectl get pods --namespace=kube-system
NAME READY STATUS RESTARTS AGE
dummy-2088944543-jk2t2 1/1 Running 0 3h
etcd-ubuntu 1/1 Running 0 3h
kube-apiserver-ubuntu 1/1 Running 0 3h
kube-controller-manager-ubuntu 1/1 Running 0 3h
kube-discovery-1769846148-h88v4 1/1 Running 0 3h
kube-dns-2924299975-dfp17 0/4 Pending 0 3h
kube-proxy-zdcxw 1/1 Running 0 3h
kube-scheduler-ubuntu 1/1 Running 0 3h
weave-net-xwfhj 2/2 Running 0 2h
# kubectl describe pod kube-dns-2924299975-dfp17
Error from server (NotFound): pods "kube-dns-2924299975-dfp17" not found
原因
您的集群中很可能缺少可用的计算资源。
如果您正在使用 cluster/addons/dns 中的示例,您肯定会使用 Deployment
资源请求,如果您单击 link,则会突出显示。可能是您的其他 pods 已经在请求集群中的所有可用资源,因此您的 pod 没有得到调度。
您可以通过 kubectl --namespace=kube-system describe pod kube-dns-2924299975-dfp17
确认该理论并寻找以下事件:
Reason Message
------ -------
FailedScheduling pod (kube-dns-2924299975-dfp17) failed to fit in any node
fit failure summary on nodes : Insufficient cpu (3)
你也可以用kubectl describe node <node-name>
描述你的节点,看看最后的信息:
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.
CPU Requests CPU Limits Memory Requests Memory Limits
------------ ---------- --------------- -------------
320m (8%) 300m (7%) 150Mi (1%) 150Mi (1%)
在您的情况下,CPU 或内存分配应该接近 100%。
解决方案
- 向集群添加更多计算资源/节点(首选)
- 从您的 pod 中删除资源请求,冒着过度使用资源的风险