Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 由于资源压力,在清除节点后恢复节点_Kubernetes_Kubespray - Fatal编程技术网

Kubernetes 由于资源压力,在清除节点后恢复节点

Kubernetes 由于资源压力,在清除节点后恢复节点,kubernetes,kubespray,Kubernetes,Kubespray,我有一个使用kubespray的k8s群集设置 上周,我的一个k8s节点的存储空间非常低,因此所有的POD都已被逐出,包括一些重要的POD,如calico节点、kube代理(我认为这些POD非常重要,无论发生什么情况,都从未被逐出) 之后所有的印花布节点吊舱都没有准备好,当我查看日志时,据说: 警告:就绪探测失败:印花布/节点未就绪:BIRD未就绪:未使用192.168.0.xxx建立BGP,其中192.168.0.xxx是上述问题节点的IP 我的问题是如何恢复该节点?再次运行kubespray

我有一个使用kubespray的k8s群集设置

上周,我的一个k8s节点的存储空间非常低,因此所有的POD都已被逐出,包括一些重要的POD,如calico节点、kube代理(我认为这些POD非常重要,无论发生什么情况,都从未被逐出)

之后所有的印花布节点吊舱都没有准备好,当我查看日志时,据说:
警告:就绪探测失败:印花布/节点未就绪:BIRD未就绪:未使用192.168.0.xxx建立BGP
,其中
192.168.0.xxx
是上述问题节点的IP

我的问题是如何恢复该节点?再次运行kubespray's cluster.yml安全吗

我的k8s版本是v1.13.3


谢谢。

当节点有磁盘压力时,其状态更改为
NotReady
,并向节点添加污点:
污点:node.kubernetes.io/磁盘压力:NoSchedule

此节点上运行的所有pod都将被逐出,api服务器、kube控制器和kube调度程序除外-逐出管理器将保存这些pod,使其不会被逐出,并显示错误消息:
无法逐出关键的静态pod[…]

一旦节点从磁盘压力中释放出来,它就会将其状态更改为
Ready
,之前添加的污点将被删除。您可以通过运行
kubectl descripe node
来检查它。在条件字段中,您应该看到
DiskPressure
已将状态更改为
False
,这意味着节点有足够的可用空间。类似的信息也可以在
事件
字段中找到

  Normal   NodeReady                1s                     kubelet, node1     Node node1 status is now: NodeReady
  Normal   NodeHasNoDiskPressure    1s (x2 over 1s)        kubelet, node1     Node node1 status is now: NodeHasNoDiskPressure

确认节点具有足够的磁盘空间后,您可以重新启动
kubelet
并运行kubespray的cluster.yml-将在节点上重新部署POD。您只需确保节点已准备好处理部署

kubelet是否正在运行并将状态发布到Kube api服务器?kubelet正在运行,但无法连接到api服务器,因为该节点上的Kube代理未运行Kube代理是一个静态pod。它不作为部署/守护程序等运行。它由kubelet直接管理。因此,请检查manifests文件夹(默认/etc/kubernetes/manifests),以确保kube-proxy-XXX.yaml存在。无论如何,kubelet是主节点代理,直接与api服务器通信。它不需要kube代理将状态发布到Api服务器。你能发布kubelet日志吗?谢谢,我会检查AgainCube代理不是静态pod。它是kubeadm在初始化阶段安装的守护程序,就像coredns一样。您可以使用以下命令阅读详细信息:
kubeadm init phase addon kube proxy--help
BTW,kubespray还使用kubeadm初始化Kubernetes集群,因此其工作方式完全相同。