9.2. 手动为自动卷分离添加 out-of-service 污点
先决条件
- 使用 cluster-admin 权限访问集群。
流程
允许卷在非正常节点关闭后自动从节点分离:
- 节点检测到不健康后,关闭 worker 节点。
运行以下命令检查状态,确保节点已关闭:
oc get node <node name> 1
- 1
- <node name> = 非正常关闭节点的名称
重要如果节点没有完全关闭,请不要继续污点该节点。如果节点仍处于 up 状态并且应用了污点,则可能会出现文件系统崩溃。
运行以下命令来污点对应的节点对象:
重要以这种方式污点节点会删除该节点上的所有 pod。这也会导致任何由 statefulsets 支持的 pod 被驱除,并在不同的节点上创建替换 pod。
oc adm taint node <node name> node.kubernetes.io/out-of-service=nodeshutdown:NoExecute 1
- 1
- <node name> = 非正常关闭节点的名称
应用污点后,卷将从关闭节点分离,允许将其磁盘附加到其他节点。
示例
生成的 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