5.3. 节点主机任务
5.3.1. 弃用节点主机 复制链接链接已复制到粘贴板!
无论弃用基础架构节点或应用程序节点,步骤都是一样的。
先决条件
确保有足够的容量,以便将现有 pod 从节点集合中移除。只有在删除基础架构节点时,才建议删除基础架构节点。
流程
列出所有可用的节点,以查找要弃用的节点:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,本节弃用
ocp-infra-node-b7pl
基础架构节点。描述节点及其运行的服务:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上面的输出显示节点正在运行两个 pod:
router-1-vzlzq
和docker-registry-1-5szjs
。有两个基础架构节点可用于迁移这两个 pod。注意上述集群是一个高可用性集群,这意味着
router
和docker-registry
服务在所有基础架构节点上运行。将节点标记为不可调度并撤离其所有 pod:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 pod 已附加了本地存储(例如
EmptyDir
),则必须提供--delete-local-data
选项。通常,在生产环境中运行的 pod 应该只将本地存储用于临时或缓存文件,但不适用于任何重要或持久的。对于常规存储,应用程序应使用对象存储或持久性卷。在这种情况下,docker-registry
pod 的本地存储为空,因为对象存储被用来存储容器镜像。注意以上操作会删除节点上运行的现有 pod。然后,根据复制控制器创建新的 pod。
通常,每个应用都应该使用部署配置进行部署,这将利用复制控制器创建 pod。
oc adm drain
不会删除任何不是镜像 pod 的裸机 pod(镜像 pod,或由ReplicationController
、ReplicaSet
、DaemonSet
、StatefulSet
或作业进行管理的 pod)。要做到这一点,需要--force
选项。请注意,在此操作过程中,不会在其他节点上重新创建裸机 pod,数据可能会丢失。以下示例显示了 registry 的复制控制器的输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出底部的事件显示有关新 pod 创建的信息。因此,当列出所有 pod 时:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
现在,在已弃用节点上运行的
docker-registry-1-5szjs
和router-1-vzlzq
pod 不再可用。相反,创建了两个新 pod:docker-registry-1-dprp5
和router-1-2gshr
。如上所示,新的路由器 Pod 是router-1-2gshr
,但处于Pending
状态。这是因为每个节点只能在一个路由器中运行,并绑定到主机的端口 80 和 443。 观察新创建的 registry pod 时,以下示例显示了
ocp-infra-node-rghb
节点上已创建了 pod,它与弃用节点的不同:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 弃用基础架构和应用程序节点的唯一区别在于,在基础架构节点被撤离后,如果没有计划替换该节点,在基础架构节点上运行的服务可以缩减:
oc scale dc/router --replicas 2 oc scale dc/docker-registry --replicas 2
$ oc scale dc/router --replicas 2 deploymentconfig "router" scaled $ oc scale dc/docker-registry --replicas 2 deploymentconfig "docker-registry" scaled
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,每个基础架构节点只运行一个 pod 中的一类:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意要提供完整的高可用性集群,至少有三个基础架构节点应当始终可用。
验证节点上的调度是否已禁用:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 节点没有包含任何 pod:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从
/etc/haproxy/haproxy.cfg
配置文件中的backend
部分删除基础架构实例:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 然后,重新启动
haproxy
服务。sudo systemctl restart haproxy
$ sudo systemctl restart haproxy
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在所有 pod 都被逐出后,使用以下命令从集群中删除节点:
oc delete node ocp-infra-node-b7pl
$ oc delete node ocp-infra-node-b7pl node "ocp-infra-node-b7pl" deleted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如需有关撤离和排空 pod 或节点的更多信息,请参阅节点维护部分。
5.3.1.1. 替换节点主机 复制链接链接已复制到粘贴板!
如果需要添加节点以替代已弃用节点,请按照 将主机添加到现有集群 部分。