3.3. Azure 上でマルチアーキテクチャーのコンピュートマシンを含むクラスターを作成する
マルチアーキテクチャーのコンピュートマシンを使用して Microsoft Azure 上にクラスターをデプロイするには、まずマルチアーキテクチャーインストーラーバイナリーを使用する、シングルアーキテクチャーのインストーラープロビジョニング済みクラスターを作成する必要があります。
シングルアーキテクチャーのコンピュートマシンを含む現在のクラスターを、マルチアーキテクチャーのコンピュートマシンを含むクラスターに移行することもできます。マルチアーキテクチャークラスターを作成した後、異なるアーキテクチャーのノードをクラスターに追加できます。
3.3.1. Azure イメージギャラリーを使用して 64 ビット ARM ブートイメージを作成する リンクのコピーリンクがクリップボードにコピーされました!
Azure イメージギャラリーを使用すると、64 ビット x86 ブートイメージまたは 64 ビット ARM ブートイメージを生成できます。
この手順例では、64 ビット ARM ブートイメージを手動で生成する方法について説明します。64 ビット x86 ブートイメージを生成する場合は、aarch64 をx86_64 に置き換えてください。さらに、rhcos-arm64 のすべてのインスタンスを rhcos-x86_64 に置き換えてください。
前提条件
-
Azure CLI (
az) をインストールしている。 - マルチアーキテクチャーインストーラーバイナリーを使用して、単一アーキテクチャーの Azure インストーラープロビジョニングクラスターを作成している。
手順
次のコマンドを実行して、Azure アカウントにログインします。
$ az loginストレージアカウントを作成し、
aarch64仮想ハードドライブ (VHD) をそのストレージアカウントにアップロードしてください。OpenShift Container Platform インストールプログラムはリソースグループを作成しますが、ブートイメージをカスタムの名前付きリソースグループにアップロードすることもできます。$ az storage account create -n ${STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} -l westus --sku Standard_LRS-
westusオブジェクトはリージョンの例です。
-
作成したストレージアカウントを使用してストレージコンテナーを作成するには、次のコマンドを入力します。
$ az storage container create -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME}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')-
64 ビット x86 ブートイメージの場合は、
architectures.aarch64 をarchitectures.x86_64に置き換えてください。
-
64 ビット x86 ブートイメージの場合は、
次のコマンドを実行して、
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-
64 ビット x86 ブートイメージの場合は、
architectures.aarch64をarchitectures.x86_64に、aarch64.vhd をx86_64.vhdに置き換えてください。
-
64 ビット x86 ブートイメージの場合は、
Shared Access Signature (SAS) トークンを生成します。このトークンを使用して、次のコマンドで RHCOS VHD をストレージコンテナーにアップロードします。
$ end=`date -u -d "30 minutes" '+%Y-%m-%dT%H:%MZ'`$ sas=`az storage container generate-sas -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME} --https-only --permissions dlrw --expiry $end -o tsv`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 show -c ${CONTAINER_NAME} -n ${BLOB_NAME} --account-name ${STORAGE_ACCOUNT_NAME} | jq .properties.copy出力例
{ "completionTime": null, "destinationSnapshot": null, "id": "1fd97630-03ca-489a-8c4e-cfe839c9627d", "incrementalCopy": null, "progress": "17179869696/17179869696", "source": "https://rhcos.blob.core.windows.net/imagebucket/rhcos-411.86.202207130959-0-azure.aarch64.vhd", "status": "success", "statusDescription": null }status パラメーターに
successオブジェクトが表示されたら、コピープロセスは完了です。次のコマンドを使用してイメージギャラリーを作成します。
$ az sig create --resource-group ${RESOURCE_GROUP} --gallery-name ${GALLERY_NAME}イメージギャラリーを使用してイメージ定義を作成します。次のコマンド例では、
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-
64 ビット x86 ブートイメージの場合は、
`--offer arm --sku arm64` を`--offer x86_64 --sku x86_64` に置き換えてください。
-
64 ビット x86 ブートイメージの場合は、
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ファイル、ストレージアカウント、リソースグループ、およびイメージギャラリーを使用して、イメージバージョンを作成します。次の例では、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}オプション:
arm64ブートイメージが生成されたら、次のコマンドを使用してイメージの ID にアクセスできます。$ az sig image-version show -r $GALLERY_NAME -g $RESOURCE_GROUP -i rhcos-arm64 -e 1.0.0次の例のイメージ ID は、コンピュートマシンセットの
recourseIDパラメーターで使用されます。resourceIDの例/resourceGroups/${RESOURCE_GROUP}/providers/Microsoft.Compute/galleries/${GALLERY_NAME}/images/rhcos-arm64/versions/1.0.0