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 login
Copy 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_LRS
1 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 と
ARM64
VHD 名を抽出するには、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 次のコマンドを実行して、
aarch64
VHD 名を抽出し、ファイル名として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.vhd
Copy 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.copy
Copy 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 V2
Copy 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.0
Copy 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.0
Copy 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.yaml
Copy 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-api
Copy 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 10m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを使用すると、ノードの準備ができており、スケジュール可能であることを確認できます。
oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow