1.2. 在 VMware 上部署的 OpenShift Data Foundation
要替换正常运行的节点,请参阅:
要替换失败的节点,请参阅:
1.2.1. 在用户置备的基础架构中替换可运行的 VMware 节点
先决条件
- 确保替换节点配置类似的基础架构和资源,以用于被替换的节点。
- 您必须登录到 OpenShift Container Platform 集群。
流程
- 识别需要替换的节点及其虚拟机(VM)。
将节点标记为不可调度:
$ oc adm cordon <node_name>
<node_name>
- 指定替换的节点的名称。
排空节点:
$ oc adm drain <node_name> --force --delete-emptydir-data=true --ignore-daemonsets
重要此活动可能至少需要 5 到 10 分钟或更多。Ceph 周期内生成的 Ceph 错误是临时的,当您标记新节点并且可以正常工作时,会自动解决。
删除节点:
$ oc delete nodes <node_name>
登录到 VMware vSphere,终止您识别的虚拟机:
重要仅从清单中删除虚拟机,而不从磁盘中删除。
- 在带有所需基础架构的 VMware vSphere 上创建新虚拟机。请参阅 平台要求。
- 使用新虚拟机创建新的 OpenShift Container Platform worker 节点。
检查与处于
Pending
状态的 OpenShift Container Platform 相关的证书签名请求(CSR):$ oc get csr
批准新节点所需的所有 OpenShift Container Platform CSR:
$ oc adm certificate approve <certificate_name>
<certificate_name>
- 指定 CSR 的名称。
-
点 Compute
Nodes。确认新节点处于 Ready 状态。 使用以下任一方法之一将 OpenShift Data Foundation 标签应用到新节点:
- 从用户界面
-
对于新节点,点击 Action Menu(⋮)
Edit Labels。 -
添加
cluster.ocs.openshift.io/openshift-storage
,然后点 Save。
-
对于新节点,点击 Action Menu(⋮)
- 使用命令行界面
- 将 OpenShift Data Foundation 标签应用到新节点:
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
<new_node_name>
- 指定新节点的名称。
验证步骤
验证输出中是否存在新节点:
$ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
点击 Workloads
Pods。确认新节点上至少以下 pod 处于 Running 状态: -
csi-cephfsplugin-*
-
csi-rbdplugin-*
-
- 验证所有其他所需的 OpenShift Data Foundation pod 是否处于 Running 状态。
验证新的对象存储设备(OSD)pod 是否在替换节点上运行:
$ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
可选:如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。
对于上一步中标识的每个新节点,请执行以下操作:
创建 debug pod 并为一个或多个所选主机打开 chroot 环境:
$ oc debug node/<node_name>
$ chroot /host
显示可用块设备列表:
$ lsblk
检查一个或多个
ocs-deviceset
名称旁的crypt
关键字。
- 如果验证步骤失败,请联系红帽支持团队。
1.2.2. 在安装程序置备的基础架构中替换可运行的 VMware 节点
流程
-
登录 OpenShift Web 控制台,再点击 Compute
Nodes。 - 确定需要替换的节点。记录其 Machine Name。
将节点标记为不可调度:
$ oc adm cordon <node_name>
<node_name>
- 指定替换的节点的名称。
排空节点:
$ oc adm drain <node_name> --force --delete-emptydir-data=true --ignore-daemonsets
重要此活动可能至少需要 5 到 10 分钟或更多。Ceph 周期内生成的 Ceph 错误是临时的,当您标记新节点并且可以正常工作时,会自动解决。
-
点 Compute
Machines。搜索所需的机器。 -
除了所需机器外,点击 Action 菜单(⋮)
Delete Machine。 - 点 Delete 以确认机器已被删除。会自动创建新机器。
等待新计算机启动并过渡到 Running 状态。
重要此活动可能至少需要 5 到 10 分钟或更多。
-
点 Compute
Nodes。确认新节点处于 Ready 状态。 使用以下任一方法之一将 OpenShift Data Foundation 标签应用到新节点:
- 从用户界面
-
对于新节点,点击 Action Menu(⋮)
Edit Labels。 -
添加
cluster.ocs.openshift.io/openshift-storage
,然后点 Save。
-
对于新节点,点击 Action Menu(⋮)
- 使用命令行界面
- 将 OpenShift Data Foundation 标签应用到新节点:
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
<new_node_name>
- 指定新节点的名称。
验证步骤
验证输出中是否存在新节点:
$ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
点击 Workloads
Pods。确认新节点上至少以下 pod 处于 Running 状态: -
csi-cephfsplugin-*
-
csi-rbdplugin-*
-
- 验证所有其他所需的 OpenShift Data Foundation pod 是否处于 Running 状态。
验证新的对象存储设备(OSD)pod 是否在替换节点上运行:
$ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
可选:如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。
对于上一步中标识的每个新节点,请执行以下操作:
创建 debug pod 并为一个或多个所选主机打开 chroot 环境:
$ oc debug node/<node_name>
$ chroot /host
显示可用块设备列表:
$ lsblk
检查一个或多个
ocs-deviceset
名称旁的crypt
关键字。
- 如果验证步骤失败,请联系红帽支持团队。
1.2.3. 在用户置备的基础架构中替换失败的 VMware 节点
先决条件
- 确保替换节点配置类似的基础架构和资源,以用于被替换的节点。
- 您必须登录到 OpenShift Container Platform 集群。
流程
- 找出您要替换的节点及其虚拟机(VM)。
删除节点:
$ oc delete nodes <node_name>
<node_name>
- 指定替换的节点的名称。
登录 VMware vSphere 并终止您确定的虚拟机。
重要仅从清单中删除虚拟机,而不从磁盘中删除。
- 在带有所需基础架构的 VMware vSphere 上创建新虚拟机。请参阅 平台要求。
- 使用新虚拟机创建新的 OpenShift Container Platform worker 节点。
检查与处于
Pending
状态的 OpenShift Container Platform 相关的证书签名请求(CSR):$ oc get csr
批准新节点所需的所有 OpenShift Container Platform CSR:
$ oc adm certificate approve <certificate_name>
<certificate_name>
- 指定 CSR 的名称。
-
点 Compute
Nodes。确认新节点处于 Ready 状态。 使用以下任一方法之一将 OpenShift Data Foundation 标签应用到新节点:
- 从用户界面
-
对于新节点,点击 Action Menu(⋮)
Edit Labels。 -
添加
cluster.ocs.openshift.io/openshift-storage
,然后点 Save。
-
对于新节点,点击 Action Menu(⋮)
- 使用命令行界面
- 将 OpenShift Data Foundation 标签应用到新节点:
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
<new_node_name>
- 指定新节点的名称。
验证步骤
验证输出中是否存在新节点:
$ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
点击 Workloads
Pods。确认新节点上至少以下 pod 处于 Running 状态: -
csi-cephfsplugin-*
-
csi-rbdplugin-*
-
- 验证所有其他所需的 OpenShift Data Foundation pod 是否处于 Running 状态。
验证新的对象存储设备(OSD)pod 是否在替换节点上运行:
$ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
可选:如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。
对于上一步中标识的每个新节点,请执行以下操作:
创建 debug pod 并为一个或多个所选主机打开 chroot 环境:
$ oc debug node/<node_name>
$ chroot /host
显示可用块设备列表:
$ lsblk
检查一个或多个
ocs-deviceset
名称旁的crypt
关键字。
- 如果验证步骤失败,请联系红帽支持团队。
1.2.4. 在安装程序置备的基础架构中替换失败的 VMware 节点
流程
-
登录 OpenShift Web 控制台,再点击 Compute
Nodes。 - 确定有故障的节点,再单击其 Machine Name。
- 点击 Actions → Edit Annotations,然后点 Add More。
-
添加
machine.openshift.io/exclude-node-draining
并点 Save。 -
点 Actions
Delete Machine,然后点 Delete。 会自动创建新机器。等待启动新机器。
重要此活动可能至少需要 5 到 10 分钟或更多。Ceph 周期内生成的 Ceph 错误是临时的,当您标记新节点并且可以正常工作时,会自动解决。
-
点 Compute
Nodes。确认新节点处于 Ready 状态。 使用以下任一方法之一将 OpenShift Data Foundation 标签应用到新节点:
- 从用户界面
-
对于新节点,点击 Action Menu(⋮)
Edit Labels。 -
添加
cluster.ocs.openshift.io/openshift-storage
,然后点 Save。
-
对于新节点,点击 Action Menu(⋮)
- 使用命令行界面
- 将 OpenShift Data Foundation 标签应用到新节点:
$ oc label node <new_node_name> cluster.ocs.openshift.io/openshift-storage=""
<new_node_name>
- 指定新节点的名称。
- 可选: 如果没有自动删除失败的虚拟机(VM),请从 VMware vSphere 中终止虚拟机。
验证步骤
验证输出中是否存在新节点:
$ oc get nodes --show-labels | grep cluster.ocs.openshift.io/openshift-storage= |cut -d' ' -f1
点击 Workloads
Pods。确认新节点上至少以下 pod 处于 Running 状态: -
csi-cephfsplugin-*
-
csi-rbdplugin-*
-
- 验证所有其他所需的 OpenShift Data Foundation pod 是否处于 Running 状态。
验证新的对象存储设备(OSD)pod 是否在替换节点上运行:
$ oc get pods -o wide -n openshift-storage| egrep -i <new_node_name> | egrep osd
可选:如果在集群中启用了集群范围的加密,请验证新 OSD 设备是否已加密。
对于上一步中标识的每个新节点,请执行以下操作:
创建 debug pod 并为一个或多个所选主机打开 chroot 环境:
$ oc debug node/<node_name>
$ chroot /host
显示可用块设备列表:
$ lsblk
检查一个或多个
ocs-deviceset
名称旁的crypt
关键字。
- 如果验证步骤失败,请联系红帽支持团队。