描述错误
我们无法分离附加到 Trident 21.10.1 中已删除节点的卷。 在 Trident v21.07.2 中,这些卷将在一段时间后自动分离。 如果我理解正确,这种强制分离是由 AttachDetachController 在ReconcilerMaxWaitForUnmountDuration之后完成的。
似乎在此提交中引入了此更改。 此提交使 Trident 的ControllerUnpublishVolume检查节点的存在。 如果节点不存在,ControllerUnpublishVolume 现在会返回 NotFound 错误,因此当节点已被删除时,卷分离总是会失败。
在服务器故障时,卷分离可能会失败,我们别无选择,只能删除节点,因此希望自动分离附加到已删除节点的卷。
环境
silenceAutosupport: true
(Trident Operator)重现
kubectl delete node
调度 Pod 的节点对象在 VolumeAttachment 中,可以发现如下错误。
rpc error: code = NotFound desc = node <NODE_NAME> was not found'
预期行为
Trident 自动分离附加到已删除节点的卷。
我们在 AWS 上运行一个 100 多个节点的 Kubernetes 集群,该集群严重依赖 Spot 节点。 Spot 节点将在 AWS 上发出几分钟的警告,预计会经常发生。 即使我们在 SQS 模式下运行节点终止处理程序并通过自动节点耗尽来对发现终止通知作出反应,我们通常最终会在节点被删除之前分离过程没有完成。
在这种情况下,我们经常遇到与@tksm 描述的完全相同的问题。 这是一个严重的问题,因为在 Pod 移动到新节点后 PVC 无法附加,工作负载将陷入崩溃循环状态。 我希望这个问题可以修复。
任何 ETA 修复?
@paalkr ,团队目前正在修复。 一旦合并,我们将使用提交链接更新此问题。
太好了,非常感谢。
最有用的评论
@paalkr ,团队目前正在修复。 一旦合并,我们将使用提交链接更新此问题。