将 VPC 工作节点迁移到 RHCOS

虚拟私有云

请按照以下步骤将您的 VPC 工作节点迁移到 RHCOS

本页信息仅适用于 VPC 群集。 它不适用于 Satellite 或经典集群。

从群集版本开始 4.18:

  • Red Hat Enterprise Linux CoreOS (RHCOS) 是 VPC 群集的默认操作系统。
  • VPC 集群已不再使用 RHEL 工作节点。
  • 4.22 版本是最后一个支持在 VPC 上运行 RHEL 工作节点的版本。 未来版本将需要 RHCOS 工作节点。

尽快将 VPC 群集迁移到使用 RHCOS 工作节点。

RHEL 淘汰时间表
里程碑 描述
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 选项。
  1. 运行 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]
    
  2. 确认工人池已创建,并记下工人池 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
    
  3. 在工人池中添加一个或多个区。 添加区域时,会将使用 --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 池了。

  1. 列出工人池,并记下要删除的工人池名称。
    ibmcloud oc worker-pool ls --cluster CLUSTER
    
  2. 运行命令删除工人池。
    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 的错误。