5.3. 将节点设置为维护模式
您可以通过 web 控制台或 CLI 使用 NodeMaintenance CR 将节点置于维护模式。
5.3.1. 使用 Web 控制台将节点设置为维护模式 复制链接链接已复制到粘贴板!
要将节点设置为维护模式,您可以使用 Web 控制台创建 NodeMaintenance 自定义资源(CR)。
先决条件
-
以具有
cluster-admin权限的用户身份登录。 - 从 OperatorHub 安装 Node Maintenance Operator。
流程
-
从 Web 控制台中的 Administrator 视角,导航到 Operators
Installed Operators。 - 从 Operator 列表中选择 Node Maintenance Operator。
- 在 Node Maintenance 选项卡中,点 Create NodeMaintenance。
-
在 Create NodeMaintenance 页面中,选择 Form view 或 YAML 视图来 配置
NodeMaintenanceCR。 -
要应用您配置的
NodeMaintenanceCR,请点击 Create。
验证
在 Node Maintenance 选项卡中,检查 Status 列并验证其状态是否为 Succeeded。
5.3.2. 使用 CLI 将节点设置为维护模式 复制链接链接已复制到粘贴板!
您可以使用 NodeMaintenance 自定义资源(CR)将节点置于维护模式。应用 NodeMaintenance CR 时,所有允许的 pod 都会被驱除,且节点不可调度。被驱除的 pod 会被放入到集群中的另一节点中。
先决条件
-
安装 Red Hat OpenShift CLI
oc。 -
以具有
cluster-admin权限的用户身份登录集群。
流程
创建以下
NodeMaintenanceCR,并将文件保存为nodemaintenance-cr.yaml:apiVersion: nodemaintenance.medik8s.io/v1beta1 kind: NodeMaintenance metadata: name: nodemaintenance-cr1 spec: nodeName: node-1.example.com2 reason: "NIC replacement"3 运行以下命令来应用节点维护 CR:
$ oc apply -f nodemaintenance-cr.yaml
验证
运行以下命令,检查维护任务的进度:
$ oc describe node <node-name>其中
<node-name>是节点的名称,如node-1.example.com检查输出示例:
Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal NodeNotSchedulable 61m kubelet Node node-1.example.com status is now: NodeNotSchedulable
5.3.3. 检查当前 NodeMaintenance CR 任务的状态 复制链接链接已复制到粘贴板!
您可以检查当前 NodeMaintenance CR 任务的状态。
先决条件
-
安装 Red Hat OpenShift CLI
oc。 -
以具有
cluster-admin权限的用户身份登录。
流程
运行以下命令,检查当前节点维护任务的状态,如
NodeMaintenanceCR 或nm对象:$ oc get nm -o yaml输出示例
apiVersion: v1 items: - apiVersion: nodemaintenance.medik8s.io/v1beta1 kind: NodeMaintenance metadata: ... spec: nodeName: node-1.example.com reason: Node maintenance status: drainProgress: 1001 evictionPods: 32 lastError: "Last failure message"3 lastUpdate: "2022-06-23T11:43:18Z"4 phase: Succeeded totalpods: 55 ...