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 upgradeCopy 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-archCopy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
您可以运行以下命令来监控迁移:
oc adm upgrade
$ oc adm upgradeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
working towards ${VERSION}: 106 of 841 done (12% complete), waiting on machine-configworking towards ${VERSION}: 106 of 841 done (12% complete), waiting on machine-configCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要机器启动可能会失败,因为集群进入新状态。要在机器启动时注意到和恢复,我们建议部署机器健康检查。有关机器健康检查以及如何部署它们的更多信息,请参阅关于机器健康检查。
可选: 要检索有关更新状态的更多详细信息,请运行以下命令来监控迁移:
oc adm upgrade status
$ oc adm upgrade statusCopy 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 wideCopy 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-xxxxxxxCopy 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-apiCopy 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 wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow