4.2. Azure でマルチアーキテクチャーコンピューティングマシンを使用したクラスターを作成する
マルチアーキテクチャーコンピューティングマシンを使用して Azure クラスターをデプロイするには、まず、マルチアーキテクチャーインストーラーバイナリーを使用する単一アーキテクチャーの Azure インストーラープロビジョニングクラスターを作成する必要があります。Azure へのインストールの詳細は、カスタマイズを使用した Azure へのクラスターのインストール を参照してください。その後、ARM64 コンピューティングマシンセットをクラスターに追加して、マルチアーキテクチャーコンピューティングマシンを含むクラスターを作成できます。
次の手順では、ARM64 ブートイメージを生成し、ARM64 ブートイメージを使用する Azure コンピューティングマシンセットを作成する方法について説明します。これにより、ARM64 コンピュートノードがクラスターに追加され、必要な量の ARM64 仮想マシン (VM) がデプロイされます。
4.2.1. クラスターの互換性の確認 リンクのコピーリンクがクリップボードにコピーされました!
異なるアーキテクチャーのコンピュートノードをクラスターに追加する前に、クラスターがマルチアーキテクチャー互換であることを確認する必要があります。
前提条件
- 
							OpenShift CLI (
oc) がインストールされている。 
手順
次のコマンドを実行すると、クラスターがアーキテクチャーペイロードを使用していることを確認できます。
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 その後、クラスターへのマルチアーキテクチャーコンピュートノードの追加を開始できます。
次の出力が表示された場合、クラスターはマルチアーキテクチャーペイロードを使用していません。
{ "url": "https://access.redhat.com/errata/<errata_version>" }{ "url": "https://access.redhat.com/errata/<errata_version>" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要クラスターを、マルチアーキテクチャーコンピュートマシンをサポートするクラスターに移行するには、マルチアーキテクチャーのコンピュートマシンを含むクラスターへの移行 の手順に従ってください。
4.2.2. Azure イメージギャラリーを使用した ARM64 ブートイメージの作成 リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、ARM64 ブートイメージを手動で生成する方法について説明します。
前提条件
- 
							Azure CLI (
az) をインストールしている。 - マルチアーキテクチャーインストーラーバイナリーを使用して、単一アーキテクチャーの Azure インストーラープロビジョニングクラスターを作成している。
 
手順
Azure アカウントにログインします。
az login
$ az loginCopy to Clipboard Copied! Toggle word wrap Toggle overflow ストレージアカウントを作成し、
arm64仮想ハードディスク (VHD) をストレージアカウントにアップロードします。OpenShift Container Platform インストールプログラムはリソースグループを作成しますが、ブートイメージをカスタムの名前付きリソースグループにアップロードすることもできます。az storage account create -n ${STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} -l westus --sku Standard_LRS$ az storage account create -n ${STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} -l westus --sku Standard_LRS1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 westusオブジェクトはリージョンの例です。
生成したストレージアカウントを使用してストレージコンテナーを作成します。
az storage container create -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME}$ az storage container create -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME}Copy to Clipboard Copied! Toggle word wrap Toggle overflow URL と
aarch64VHD 名を抽出するには、OpenShift Container Platform インストールプログラムの JSON ファイルを使用する必要があります。次のコマンドを実行して、
URLフィールドを抽出し、ファイル名としてRHCOS_VHD_ORIGIN_URLに設定します。RHCOS_VHD_ORIGIN_URL=$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".url')$ RHCOS_VHD_ORIGIN_URL=$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".url')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
aarch64VHD 名を抽出し、ファイル名としてBLOB_NAMEに設定します。BLOB_NAME=rhcos-$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".release')-azure.aarch64.vhd$ BLOB_NAME=rhcos-$(oc -n openshift-machine-config-operator get configmap/coreos-bootimages -o jsonpath='{.data.stream}' | jq -r '.architectures.aarch64."rhel-coreos-extensions"."azure-disk".release')-azure.aarch64.vhdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
Shared Access Signature (SAS) トークンを生成します。このトークンを使用して、次のコマンドで RHCOS VHD をストレージコンテナーにアップロードします。
end=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`
$ end=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`Copy to Clipboard Copied! Toggle word wrap Toggle overflow sas=`az storage container generate-sas -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME} --https-only --permissions dlrw --expiry $end -o tsv`$ sas=`az storage container generate-sas -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME} --https-only --permissions dlrw --expiry $end -o tsv`Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHCOS VHD をストレージコンテナーにコピーします。
az storage blob copy start --account-name ${STORAGE_ACCOUNT_NAME} --sas-token "$sas" \ --source-uri "${RHCOS_VHD_ORIGIN_URL}" \ --destination-blob "${BLOB_NAME}" --destination-container ${CONTAINER_NAME}$ az storage blob copy start --account-name ${STORAGE_ACCOUNT_NAME} --sas-token "$sas" \ --source-uri "${RHCOS_VHD_ORIGIN_URL}" \ --destination-blob "${BLOB_NAME}" --destination-container ${CONTAINER_NAME}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用して、コピープロセスのステータスを確認できます。
az storage blob show -c ${CONTAINER_NAME} -n ${BLOB_NAME} --account-name ${STORAGE_ACCOUNT_NAME} | jq .properties.copy$ az storage blob show -c ${CONTAINER_NAME} -n ${BLOB_NAME} --account-name ${STORAGE_ACCOUNT_NAME} | jq .properties.copyCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
 - status パラメーターに
successオブジェクトが表示されたら、コピープロセスは完了です。 
次のコマンドを使用してイメージギャラリーを作成します。
az sig create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME}$ az sig create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME}Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージギャラリーを使用してイメージ定義を作成します。次のコマンド例では、
rhcos-arm64がイメージ定義の名前です。az sig image-definition create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --publisher RedHat --offer arm --sku arm64 --os-type linux --architecture Arm64 --hyper-v-generation V2$ az sig image-definition create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --publisher RedHat --offer arm --sku arm64 --os-type linux --architecture Arm64 --hyper-v-generation V2Copy to Clipboard Copied! Toggle word wrap Toggle overflow VHD の URL を取得してファイル名として
RHCOS_VHD_URLに設定するには、次のコマンドを実行します。RHCOS_VHD_URL=$(az storage blob url --account-name ${STORAGE_ACCOUNT_NAME} -c ${CONTAINER_NAME} -n "${BLOB_NAME}" -o tsv)$ RHCOS_VHD_URL=$(az storage blob url --account-name ${STORAGE_ACCOUNT_NAME} -c ${CONTAINER_NAME} -n "${BLOB_NAME}" -o tsv)Copy to Clipboard Copied! Toggle word wrap Toggle overflow RHCOS_VHD_URLファイル、ストレージアカウント、リソースグループ、およびイメージギャラリーを使用して、イメージバージョンを作成します。次の例では、1.0.0がイメージバージョンです。az sig image-version create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --gallery-image-version 1.0.0 --os-vhd-storage-account ${STORAGE_ACCOUNT_NAME} --os-vhd-uri ${RHCOS_VHD_URL}$ az sig image-version create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME} --gallery-image-definition rhcos-arm64 --gallery-image-version 1.0.0 --os-vhd-storage-account ${STORAGE_ACCOUNT_NAME} --os-vhd-uri ${RHCOS_VHD_URL}Copy to Clipboard Copied! Toggle word wrap Toggle overflow arm64ブートイメージが生成されました。次のコマンドを使用して、イメージの ID にアクセスできます。az sig image-version show -r $GALLERY_NAME -g $RESOURCE_GROUP -i rhcos-arm64 -e 1.0.0
$ az sig image-version show -r $GALLERY_NAME -g $RESOURCE_GROUP -i rhcos-arm64 -e 1.0.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例のイメージ ID は、コンピュートマシンセットの
recourseIDパラメーターで使用されます。resourceIDの例/resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.Compute/galleries/${GALLERY_NAME}/images/rhcos-arm64/versions/1.0.0/resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.Compute/galleries/${GALLERY_NAME}/images/rhcos-arm64/versions/1.0.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
4.2.3. マルチアーキテクチャーコンピューティングマシンセットをクラスターに追加する リンクのコピーリンクがクリップボードにコピーされました!
ARM64 コンピュートノードをクラスターに追加するには、ARM64 ブートイメージを使用する Azure コンピューティングマシンセットを作成する必要があります。Azure で独自のカスタムコンピュートマシンセットを作成するには、"Azure でのコンピュートマシンセットの作成" を参照してください。
前提条件
- 
							OpenShift CLI (
oc) がインストールされている。 
手順
以下のコマンドで、コンピュートマシンセットを作成し、
resourceIDおよびvmSizeパラメーターを変更します。このコンピュートマシンセットは、クラスター内のarm64ワーカーノードを制御します。oc create -f arm64-machine-set-0.yaml
$ oc create -f arm64-machine-set-0.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow arm64ブートイメージを使用したサンプル YAML コンピュートマシンセットCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
検証
次のコマンドを入力して、新しい ARM64 マシンが実行されていることを確認します。
oc get machineset -n openshift-machine-api
$ oc get machineset -n openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DESIRED CURRENT READY AVAILABLE AGE <infrastructure_id>-arm64-machine-set-0 2 2 2 2 10m
NAME DESIRED CURRENT READY AVAILABLE AGE <infrastructure_id>-arm64-machine-set-0 2 2 2 2 10mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用すると、ノードの準備ができており、スケジュール可能であることを確認できます。
oc get nodes
$ oc get nodesCopy to Clipboard Copied! Toggle word wrap Toggle overflow