节点的状态报告为 unknown
"conditions": [
{
"type": "Ready",
"status": "Unknown",
"lastHeartbeatTime": "2015-11-12T06:03:19Z",
"lastTransitionTime": "2015-11-12T06:04:03Z",
"reason": "Kubelet stopped posting node status."
}
whle kubectl get nodes
返回NOTReady状态。这意味着什么以及如何解决这个问题?
获取节点
kubectl get nodes
结果:
NAME STATUS AGE
192.168.1.157 NotReady 42d
192.168.1.158 Ready 42d
192.168.1.159 Ready 42d
描述节点
这里有一个 没有准备好 在节点上 192.168.1.157
。然后调试这个notready节点,你可以阅读官方文档 - 应用程序内省与调试。
kubectl describe node 192.168.1.157
部分结果:
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
OutOfDisk Unknown Sat, 28 Dec 2016 12:56:01 +0000 Sat, 28 Dec 2016 12:56:41 +0000 NodeStatusUnknown Kubelet stopped posting node status.
Ready Unknown Sat, 28 Dec 2016 12:56:01 +0000 Sat, 28 Dec 2016 12:56:41 +0000 NodeStatusUnknown Kubelet stopped posting node status.
有一个 OutOfDisk 然后在我的节点上 Kubelet停止发布节点状态。
所以,我必须使用命令释放一些磁盘空间 df
在我的 Ubuntu14.04 我可以查看内存的详细信息,并使用命令 docker rmi image_id/image_name
在...的作用下 su
我可以删除无用的图像。
登录节点
登录 192.168.1.157
通过使用 SSH, 喜欢 ssh administrator@192.168.1.157
,并切换到'su' sudo su
;
重新启动kubelet
/etc/init.d/kubelet restart
结果:
stop: Unknown instance:
kubelet start/running, process 59261
再次获取节点
在主人:
kubectl get nodes
结果:
NAME STATUS AGE
192.168.1.157 Ready 42d
192.168.1.158 Ready 42d
192.168.1.159 Ready 42d
好的,该节点工作正常。
这是一个参考: Kubernetes
您可以通过发出以下命令从主服务器中删除节点:
kubectl delete node hostname.company.net
NOTReady状态可能意味着主服务器无法访问kubelet服务。检查客户端上的一切是否正常。
我也遇到过这个问题,但看起来它取决于Kubernetes产品以及所有产品的安装方式。在Azure中,如果您使用的是acs-engine安装,则可以找到实际运行的shell脚本,以便在以下位置进行配置:
/opt/azure/containers/provision.sh
要获得更细粒度的理解,只需阅读它并运行它指定的命令。对我来说,我必须以root身份运行:
systemctl enable kubectl
systemctl restart kubectl
我不知道是否需要启用,我不能说这些是否适用于您的特定安装,但它绝对适用于我。