3.7. 使用多架构计算机器迁移到集群。
您可以通过升级到多架构的有效负载,使用单架构计算机器将当前集群迁移到具有多架构计算机器的集群。这可让您在集群中添加混合架构计算节点。
有关配置多架构计算机器的详情,请参考"在 OpenShift Container Platform 集群上配置多架构计算机器"。
在将单架构集群迁移到使用多架构计算机器的集群前,建议安装 Multiarch Tuning Operator,并部署 ClusterPodPlacementConfig
自定义资源。如需更多信息,请参阅使用 Multiarch Tuning Operator 在多架构集群中管理工作负载。
不支持从多架构有效负载迁移到单架构有效负载。集群转换为使用多架构有效负载后,它无法再接受单架构升级有效负载。
3.7.1. 使用 CLI 迁移到带有多架构计算机器的集群 复制链接链接已复制到粘贴板!
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 您的 OpenShift Container Platform 版本为至少版本 4.13.0。
有关如何更新集群版本的更多信息,请参阅使用 Web 控制台更新集群或使用 CLI 更新集群。
-
已安装与当前集群版本匹配的 OpenShift CLI (
oc
)。 -
oc
客户端至少更新至版本 4.13.0。 您的 OpenShift Container Platform 集群安装在 AWS、Azure、GCP、裸机或 IBM P/Z 平台上。
有关为集群安装选择受支持的平台的更多信息,请参阅选择集群安装类型。
流程
运行以下命令,验证 Cluster Version Operator (CVO) 中的
RetrievedUpdates
条件是否为True
:oc get clusterversion/version -o=jsonpath="{.status.conditions[?(.type=='RetrievedUpdates')].status}"
$ oc get clusterversion/version -o=jsonpath="{.status.conditions[?(.type=='RetrievedUpdates')].status}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果
RetrievedUpates
条件为False
,您可以使用以下命令查找有关故障的补充信息:oc adm upgrade
$ oc adm upgrade
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如需有关集群版本状况类型的更多信息,请参阅了解集群版本状况类型。
如果条件
RetrievedUpdates
是False
,使用以下命令将频道改为stable-<4.y>
或fast-<4.y>
:oc adm upgrade channel <channel>
$ oc adm upgrade channel <channel>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置频道后,验证
RetrievedUpdates
是否为True
。有关频道的更多信息,请参阅了解更新频道和发行版本。
使用以下命令迁移到多架构有效负载:
oc adm upgrade --to-multi-arch
$ oc adm upgrade --to-multi-arch
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
您可以运行以下命令来监控迁移:
oc adm upgrade
$ oc adm upgrade
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
working towards ${VERSION}: 106 of 841 done (12% complete), waiting on machine-config
working towards ${VERSION}: 106 of 841 done (12% complete), waiting on machine-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要机器启动可能会失败,因为集群进入新状态。要在机器启动时注意到和恢复,我们建议部署机器健康检查。有关机器健康检查以及如何部署它们的更多信息,请参阅关于机器健康检查。
可选: 要检索有关更新状态的更多详细信息,请运行以下命令来监控迁移:
oc adm upgrade status
$ oc adm upgrade status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关如何使用
oc adm upgrade status
命令的更多信息,请参阅使用 oc adm upgrade status 获取集群更新状态(技术预览)。
迁移必须完成,所有集群操作器都必须稳定,然后才能将具有不同架构的计算机器集添加到集群中。
您可以将集群中的 control plane 从 x86
迁移到 Amazon Web Services (AWS)上的 arm64
架构。
先决条件
-
已安装 OpenShift CLI(
oc
)。 -
以具有
cluster-admin
权限的用户身份登录oc
。
流程
运行以下命令,检查 control plane 节点的构架:
oc get nodes -o wide
$ oc get nodes -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出中的
KERNEL-VERSION
字段指示节点的构架。运行以下命令,检查集群是否使用多个有效负载:
oc adm release info -o jsonpath="{ .metadata.metadata}"
$ oc adm release info -o jsonpath="{ .metadata.metadata}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您看到以下输出,集群与多架构兼容。
{ "release.openshift.io/architecture": "multi", "url": "https://access.redhat.com/errata/<errata_version>" }
{ "release.openshift.io/architecture": "multi", "url": "https://access.redhat.com/errata/<errata_version>" }
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果集群没有使用多个有效负载,将集群迁移到多架构集群。如需更多信息,请参阅"使用多架构计算机器迁移到集群"。
运行以下命令,将镜像流从单架构更新至多架构:
oc import-image <multiarch_image_stream_tag> --from=<registry>/<project_name>/<image_name> \ --import-mode='PreserveOriginal'
$ oc import-image <multiarch_image_stream_tag> --from=<registry>/<project_name>/<image_name> \ --import-mode='PreserveOriginal'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,获取用于配置 control plane 机器集的
arm64
兼容 Amazon Machine Image (AMI):oc get configmap/coreos-bootimages -n openshift-machine-config-operator -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64.images.aws.regions."<aws_region>".image'
$ oc get configmap/coreos-bootimages -n openshift-machine-config-operator -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64.images.aws.regions."<aws_region>".image'
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将
<aws_region>
替换为安装当前集群的 AWS 区域。您可以运行以下命令来获取已安装集群的 AWS 区域:
oc get infrastructure cluster -o jsonpath='{.status.platformStatus.aws.region}'
$ oc get infrastructure cluster -o jsonpath='{.status.platformStatus.aws.region}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
ami-xxxxxxx
ami-xxxxxxx
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令更新 control plane 机器集来支持
arm64
架构:oc edit controlplanemachineset.machine.openshift.io cluster -n openshift-machine-api
$ oc edit controlplanemachineset.machine.openshift.io cluster -n openshift-machine-api
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
instanceType
字段更新为支持arm64
架构的类型,并将ami.id
字段设置为与arm64
架构兼容的 AMI。有关支持的实例类型的详情,请参考 64 位 ARM 基础架构上"为 AWS 测试的实例类型"。有关为 AWS 配置 control plane 机器集的更多信息,请参阅 "Control plane configuration options for Amazon Web Services"。
验证
验证 control plane 节点现在是否在
arm64
架构中运行:oc get nodes -o wide
$ oc get nodes -o wide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow