oc get node <node name> (1)
此功能允许容器存储接口 (CSI) 驱动程序在节点非正常宕机时自动分离卷。
当 kubelet 的节点关闭管理器检测到即将发生的节点关闭操作时,就会发生正常的节点关闭。非正常关闭发生在 kubelet 未检测到节点关闭操作时,这可能是由于系统或硬件故障引起的。此外,如果关闭命令未触发 kubelet 在 Linux 上使用的抑制器锁机制,或者由于用户错误(例如,如果未为该节点正确配置 shutdownGracePeriod 和 shutdownGracePeriodCriticalPods 详细信息),kubelet 也可能未检测到节点关闭操作。
使用此功能,当发生非正常节点关闭时,您可以手动在节点上添加out-of-service
污点,以允许卷自动从节点分离。
具有集群管理员权限的集群访问权限。
要允许卷在非正常节点关闭后自动从节点分离
检测到节点不健康后,关闭工作节点。
运行以下命令并检查状态以确保节点已关闭
oc get node <node name> (1)
1 | <节点名称> = 非正常关闭节点的名称 |
如果节点未完全关闭,请不要继续对节点进行污点标记。如果节点仍在运行并且应用了污点,则可能会发生文件系统损坏。 |
通过运行以下命令来标记相应的节点对象
oc adm taint node <node name> node.kubernetes.io/out-of-service=nodeshutdown:NoExecute (1)
1 | <节点名称> = 非正常关闭节点的名称 |
应用污点后,卷将从关闭的节点分离,允许其磁盘连接到不同的节点。
生成的 YAML 文件类似于以下内容
spec:
taints:
- effect: NoExecute
key: node.kubernetes.io/out-of-service
value: nodeshutdown
重启节点。
通过运行以下命令从相应的节点对象中删除污点
oc adm taint node <node name> node.kubernetes.io/out-of-service=nodeshutdown:NoExecute- (1)