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クライアントは verion 4.13.0 以降に更新されている。 OpenShift Container Platform クラスターが、AWS、Azure、Google Cloud、ベアメタル、または 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 を使用したクラスターの更新ステータスの収集 (テクノロジープレビュー) を参照してください。
クラスターに異なるアーキテクチャーを持つコンピュートマシンセットを追加するのは、移行が完了し、すべてのクラスター Operator が安定した後でなければなりません。
3.7.2. Amazon Web Services で x86 コントロールプレーンを arm64 アーキテクチャーに移行する リンクのコピーリンクがクリップボードにコピーされました!
Amazon Web Services (AWS) 上のクラスター内のコントロールプレーンを x86 から arm64 アーキテクチャーに移行できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてocにログインしている。
手順
次のコマンドを実行して、コントロールプレーンノードのアーキテクチャーを確認します。
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 次のコマンドを実行して、コントロールプレーンマシンセットを設定するための
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 次のコマンドを実行して、
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 のコントロールプレーンマシンセットの設定の詳細は、「Amazon Web Services のコントロールプレーン設定オプション」を参照してください。
検証
コントロールプレーンノードが
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
3.7.3. Google Cloud 上のコントロールプレーンまたはインフラマシンセットをアーキテクチャー間で移行する リンクのコピーリンクがクリップボードにコピーされました!
Google Cloud クラスター内のコントロールプレーンまたはインフラマシンセットを、x86 アーキテクチャーと arm64 アーキテクチャー間で移行できます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてocにログインしている。
手順
次のコマンドを実行して、コントロールプレーンまたはインフラノードのアーキテクチャーを確認します。
oc get nodes -o wide
$ oc get nodes -o wideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME worker-001.example.com Ready infra 100d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x master-001.example.com Ready control-plane,master 120d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME worker-001.example.com Ready infra 100d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.x master-001.example.com Ready control-plane,master 120d v1.30.7 10.x.x.x <none> Red Hat Enterprise Linux CoreOS 4xx.xx.xxxxx-0 5.x.x-xxx.x.x.el9_xx.x86_64 cri-o://1.30.xCopy 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 - General-purpose machine family for Compute engine (Google ドキュメント) から、ターゲットアーキテクチャーに一致するインスタンスタイプを選択します。Available regions and zones の表 (Google ドキュメント) をチェックして、インスタンスタイプがゾーンでサポートされていることを確認します。
- General-purpose machine family for Compute engine (Google ドキュメント) の「Supported disk types」セクションから、選択したインスタンスタイプでサポートされているディスクタイプを選択します。
次のコマンドを実行して、移行後にマシンセットが使用する Google Cloud イメージを確認します。
oc get configmap/coreos-bootimages \ -n openshift-machine-config-operator \ -o jsonpath='{.data.stream}' | jq \ -r '.architectures.aarch64.images.gcp'$ oc get configmap/coreos-bootimages \ -n openshift-machine-config-operator \ -o jsonpath='{.data.stream}' | jq \ -r '.architectures.aarch64.images.gcp'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
"gcp": { "release": "415.92.202309142014-0", "project": "rhcos-cloud", "name": "rhcos-415-92-202309142014-0-gcp-aarch64" }"gcp": { "release": "415.92.202309142014-0", "project": "rhcos-cloud", "name": "rhcos-415-92-202309142014-0-gcp-aarch64" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力の
projectおよびnameパラメーターを使用して、projects/<project>/global/images/<name>という形式でimageパラメーターを作成します。コントロールプレーンを別のアーキテクチャーに移行するために、次のコマンドを実行します。
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 -
disks.typeパラメーターは、選択したディスクタイプに置き換えます。 -
disks.imageパラメーターは、以前に作成したimageパラメーターに置き換えます。 -
machineTypeパラメーターは、選択したインスタンスタイプに置き換えます。
-
インフラマシンセットを別のアーキテクチャーに移行するには、インフラマシンセットの ID を使用して次のコマンドを実行します。
oc edit machineset <infra-machine-set_id> -n openshift-machine-api
$ oc edit machineset <infra-machine-set_id> -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
disks.typeパラメーターは、選択したディスクタイプに置き換えます。 -
disks.imageパラメーターは、以前に作成したimageパラメーターに置き換えます。 -
machineTypeパラメーターは、選択したインスタンスタイプに置き換えます。
-