3.8. マルチアーキテクチャーのコンピュートマシンを備えたクラスターへの移行
マルチアーキテクチャーのマニフェストがリストされたペイロードに更新することで、シングルアーキテクチャーのコンピュートマシンを持つクラスターに、現在のクラスターを移行できます。これにより、混合アーキテクチャーのコンピュートノードをクラスターに追加できます。
マルチアーキテクチャーコンピュートマシンの設定については、「OpenShift Container Platform クラスターでのマルチアーキテクチャーコンピュートマシンの設定」を参照してください。
単一アーキテクチャークラスターをマルチアーキテクチャーコンピュートマシンを備えたクラスターに移行する前に、Multiarch Tuning Operator をインストールし、ClusterPodPlacementConfig
カスタムリソースをデプロイすることを推奨します。詳細は、Multiarch Tuning Operator を使用してマルチアーキテクチャークラスター上のワークロードを管理する を参照してください。
マルチアーキテクチャーペイロードからシングルアーキテクチャーペイロードへの移行はサポートされていません。クラスターが移行されてマルチアーキテクチャーペイロードを使用するようになると、シングルアーキテクチャー更新ペイロードを受け入れなくなります。
3.8.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、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 を使用したクラスターの更新ステータスの収集 (テクノロジープレビュー) を参照してください。
クラスターに異なるアーキテクチャーを持つコンピュートマシンセットを追加するのは、移行が完了し、すべてのクラスター Operator が安定した後でなければなりません。
3.8.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 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 次のコマンドを実行して、コントロールプレーンマシンセットを設定するための
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 次のコマンドを実行して、
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 のコントロールプレーンマシンセットの設定の詳細は、「Amazon Web Services のコントロールプレーン設定オプション」を参照してください。
検証
コントロールプレーンノードが
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