容器存储接口驱动程序系列:当节点宕机时,连接到节点的数据块卷无法连接到另一个节点
摘要: 当节点发生故障(由于节点崩溃、节点关闭、关闭电源的情况),连接到节点的数据块卷无法连接到另一个节点。
本文适用于
本文不适用于
本文并非针对某种特定的产品。
本文并非包含所有产品版本。
症状
当节点发生故障(由于节点崩溃、节点关闭、关闭电源的情况),连接到节点的数据块卷无法连接到另一个节点。
此问题仅特定于数据块卷。
NFS 卷未出现此问题。
问题会影响以下驱动程序:
- 适用于 PowerFlex 的 CSI 驱动程序
- 适用于 PowerMax 的 CSI 驱动程序
- 适用于 PowerScale 的 CSI 驱动程序
- 适用于 Unity 的 CSI 驱动程序
此问题不会影响 PowerStore 的 CSI 驱动程序。
GitHub #282
重现步骤报告问题:
- 创建 PVC1 并创建 POD1。
- 检查在其中创建 POD1 的节点,然后从 vSphere 关闭该节点的电源。
- 当节点未就绪时,尝试删除 POD1(由于节点未就绪,它停滞在终止状态。)
- 尝试使用相同的 PVC1 创建 POD2。POD2 处于容器创建状态,在描述输出中出现此错误。
Warning FailedAttachVolume 43s attachdetach-controller Multi-Attach error for volume "csivol-18eb3daee0" Volume is already used by pod(s) iscsipod1-p
预期结果:即使节点未就绪,POD 也应被删除。
结果:POD 由于未就绪节点而停滞在终止状态。
以下输出显示原始 Pod 终止和新 Pod 卡在容器创建中:
kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES iscsipod1-p 1/1 Terminating 0 9m43s iscsipod2-p 0/1 ContainerCreating 0 55s
以下命令显示节点未就绪:
kubectl get nodes
NAME STATUS ROLES AGE VERSION
Node1 Ready control-plane,master 163d v1.23.0
Node2 Ready 162d v1.23.0
Node3 NotReady 162d v1.23.0
以下命令显示 PVC 仍绑定到 PV:
kubectl get pvc -n NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE iscsipvc1-p Bound csivol-18eb3daee0 5Gi RWO powerstore-iscsi 10m
以下命令显示警告:
kubectl describe pod -n
...
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 108s default-scheduler Successfully assigned default/iscsipod2-p to lglw3178
Warning FailedAttachVolume 108s attachdetach-controller Multi-Attach error for volume "csivol-18eb3daee0" Volume is already used by pod(s) iscsipod1-p
原因
解决方案
解决办法:
该卷现在可以连接到新节点。
解决方案:
此解决方案将在发布修复后更新。
- 强制删除在出现故障的节点上运行的 Pod。
kubectl delete po --force --grace-period=0
- 删除到出现故障的节点的卷附件。
kubectl delete volumeattachment
该卷现在可以连接到新节点。
解决方案:
此解决方案将在发布修复后更新。
文章属性
文章编号: 000200778
文章类型: Solution
上次修改时间: 07 7月 2023
版本: 8
从其他戴尔用户那里查找问题的答案
支持服务
检查您的设备是否在支持服务涵盖的范围内。