首页 文章

如何重新生成具有持久卷的pod,该卷停留在Kubernetes中的失败节点上

提问于
浏览
1

我有一个简单的k8s安装,几个节点和ceph(kubernetes.io/rbd)作为存储类 . 我有一个使用单个pod的部署,它使用来自此存储类的持久卷声明(ReadWriteOnce)中的持久卷 .

具有此pod的节点已失败(很长一段时间 get nodes 输出中的NotReady,它实际上已经死了) .

K8s无法为我的部署创建新的pod,因为“卷的多重附加错误”pvc -...“卷已经专门附加到一个节点,无法连接到另一个节点” .

我看到pv与失败的节点有关:“状态:绑定” .

如何强制kubernetes忘记旧pod以允许新pod绑定到持久卷?

1 回答

  • 1

    这是一个复杂的问题 .

    管理卷的安装的Kubelet守护程序应设置有关卷的新状态的信息,以使调度程序能够在另一个节点上生成Pod .

    但是,您具有“NotReady”状态,这意味着Kubernetes无法与Kubelet通信以检查Volumes的当前状态 . 在Kubernetes中,卷的状态是最后收到的 - “绑定” . 在不改变节点状态的情况下,无法以某种方式重置该状态 .

    我在这里只看到2个解决方法:

    • ReadWriteMany 模式下使用PVC而不是 ReadWriteOnce . CephFS可以在该模式下工作,但RBD不能 . 该模式允许Kubernetes同时在多个节点上声明相同的音量 .

    • 从群集中删除失败的节点 . 它将删除链接到该节点的所有对象,并且Scheduler将能够再次声明您的卷 .

相关问题