将 VPC 工作节点迁移到 RHCOS
虚拟私有云
请按照以下步骤将您的 VPC 工作节点迁移到 RHCOS
本页信息仅适用于 VPC 群集。 它不适用于 Satellite 或经典集群。
从群集版本开始 4.18:
- Red Hat Enterprise Linux CoreOS (RHCOS) 是 VPC 群集的默认操作系统。
- VPC 集群已不再使用 RHEL 工作节点。
- 4.22 版本是最后一个支持在 VPC 上运行 RHEL 工作节点的版本。 未来版本将需要 RHCOS 工作节点。
尽快将 VPC 群集迁移到使用 RHCOS 工作节点。
| 里程碑 | 描述 |
|---|---|
| 4.18 释放:2025 年 5 月 23 日 | 从集群版本开始,Red Hat Cluster Red Hat Enterprise LinuxCoreOS OS (RHCOS) 4.18 成为默认操作系统,而 RHEL 工作节点在此版本中已弃用。 4.18 版本中仍提供 RHEL Worker,仅用于完成向 RHCOS Worker 的迁移。 |
| 4.22 释放 | 4.22 版本是最后一个支持在 VPC 上运行 RHEL 工作节点的版本。 在升级到未来版本之前,请将您的 RHEL 9 工作节点迁移到 RHCOS。 |
完成以下步骤,将工作节点迁移到 RHCOS。
要迁移到 RHCOS,必须配置一个新的工作池,然后删除以前的 RHEL 工作池。 新工人池必须与前一个工人池位于同一区域。
第 1 步:升级群集主服务器
运行以下命令以更新主节点。
ibmcloud ks cluster master update --cluster CLUSTERNAMEORID --version 4.18_openshift
步骤 2:创建新的 RHCOS 工人池
在创建新的 RHCOS 工作池之前,请先查看实例组的配额限制。 每个 RHCOS 集群最多包含 12 个实例组。 每个工作池中的每个区域都会创建一个实例组。 例如,如果您有 3 个工作池,每个工作池包含 3 个区域,那么您将使用 12 个可用实例组中的 9 个。 如果您需要超过 12 个实例组,请联系 IBM 支持团队,申请提高账户级配额,该配额将适用于您账户中的所有集群。
- 确保指定
RHCOS作为新池的--operating-system。 - 确保使用
--size-per-zone选项指定的节点数与 RHEL 工人池每个区域的工人数一致。 要列出工人池的区域和每个区域的工人数量,请运行ibmcloud oc worker-pool get --worker-pool WORKER_POOL --cluster CLUSTER。 - 如果您享有 Cloud Pak 权利,请确保包含
--entitlement ocp_entitled选项。
-
运行
ibmcloud oc worker-pool create命令创建新的 Worker 池。创建 RHCOS 工人池的示例命令。 有关
worker pool create vpc-gen2命令的更多信息,请参阅 CLI 参考以 了解命令详情。 在 VPC 集群中添加工作节点。ibmcloud oc worker-pool create vpc-gen2 --name WORKER_POOL_NAME --cluster CLUSTER_NAME_OR_ID --flavor FLAVOR --size-per-zone NUMBER_OF_WORKERS_PER_ZONE --operating-system RHCOS [--entitlement ocp_entitled] -
确认工人池已创建,并记下工人池 ID。
ibmcloud oc worker-pool ls --cluster CLUSTER_NAME_OR_ID示例输出
Name ID Flavor OS Workers my_workerpool aaaaa1a11a1aa1aaaaa111aa11 b3c.4x16.encrypted REDHAT_8_64 0 -
在工人池中添加一个或多个区。 添加区域时,会将使用
--size-per-zone选项指定的工作节点数量添加到区域中。 这些工作节点运行 RHCOS 操作系统。 建议添加到 RHCOS 工人池中的区段与添加到要替换的 RHEL 工人池中的区段相匹配。 要查看附加到工人池的区段,请运行ibmcloud oc worker-pool zones --worker-pool WORKER_POOL --cluster CLUSTER。 如果您添加的区域与 RHEL Worker Pool 的区域不匹配,请确保工作负载不会因为移动到新区域而受到影响。 请注意,跨区不支持文件或块存储。
第 3 步:向 RHCOS 工人池添加工人节点
请参阅 将区域添加到 VPC 集群中的工作池。
步骤 4:迁移工作负载
若您使用的是 OpenShift Data Foundation或类似的软件定义存储( Portworx SDS)解决方案,请在移除RHEL工作节点前,更新存储配置以包含新工作节点,并验证工作负载状态。
有关重新调度工作负载的更多信息,请参阅 《安全地排空》 Node 中的 Kubernetes 文档或 《 了解如何在节点上撤离 Pod 》中的 Red Hat OpenShift 文档。
-
通过封锁节点和删除单个 pod 来迁移每个 pod。
oc adm cordon no/<nodeName> oc delete po -n <namespace> <podName> -
通过排空节点,按 Node 进行迁移。 有关更多信息,请参阅 安全排空节点。
-
删除整个 RHEL 工人池,按工人池进行迁移。
ibmcloud ks worker-pool rm --cluster CLUSTER_NAME_OR_ID --worker-pool WORKER_POOL_NAME_OR_ID
步骤 5:删除 RHEL 工作节点
删除包含 RHEL 工人的工人池。
考虑缩小 RHEL 工人池的规模,并在移除前将其保留几天。 这样,如果您的工作负载在迁移过程中出现中断,您就可以轻松地重新扩展工人池。 在确定工作负载稳定并正常运行后,就可以安全地移除 RHEL Worker 池了。
- 列出工人池,并记下要删除的工人池名称。
ibmcloud oc worker-pool ls --cluster CLUSTER - 运行命令删除工人池。
ibmcloud oc worker-pool rm --worker-pool WORKER_POOL --cluster CLUSTER
可选步骤 5:卸载并重新安装 Object Storage 插件
如果在群集中使用 COS 插件,从 RHEL 迁移到 RHCOS 后,必须卸载并重新安装,因为两个操作系统的 kube-driver 路径不同。 如果不这样做,可能会出现类似 Error: failed to mkdir /usr/libexec/kubernetes: mkdir /usr/libexec/kubernetes: read-only file system 的错误。