第4章 OpenShift Container Platform クラスターでのマルチアーキテクチャーコンピュートマシンの設定
マルチアーキテクチャー計算マシンを使用する OpenShift Container Platform クラスターは、異なるアーキテクチャーのコンピュートマシンをサポートするクラスターです。マルチアーキテクチャーインストーラーバイナリーを使用して、Azure インストーラーでプロビジョニングされたクラスターを作成することにより、マルチアーキテクチャーコンピューティングマシンを含むクラスターをデプロイできます。Azure のインストールについては、カスタマイズを使用した Azure へのクラスターのインストール を参照してください。
マルチアーキテクチャーコンピュートマシンのテクノロジープレビュー機能は、ペイロードのインストール、アップグレード、および実行の面で使いやすさに限りがあります。
次の手順では、ARM64 ブートイメージを生成し、ARM64 ブートイメージを使用して Azure コンピュートマシンセットを作成する方法について説明します。これにより、ARM64 コンピュートノードがクラスターに追加され、必要な数の ARM64 仮想マシン (VM) がデプロイされます。このセクションでは、既存のクラスターをマルチアーキテクチャーコンピューティングマシンをサポートするクラスターにアップグレードする方法も示します。マルチアーキテクチャーコンピューティングマシンを含むクラスターは、x86_64 コントロールプレーンマシンを使用する Azure インストーラーによってプロビジョニングされたインフラストラクチャーでのみ使用できます。
Azure インストーラーでプロビジョニングされたインフラストラクチャーインストール上のマルチアーキテクチャーコンピューティングマシンを使用する OpenShift Container Platform クラスターは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
4.1. Azure イメージギャラリーを使用した ARM64 ブートイメージの作成
マルチアーキテクチャーコンピューティングマシンを使用してクラスターを設定するには、ARM64 ブートイメージを作成し、それを Azure コンピューティングマシンセットに追加する必要があります。次の手順では、ARM64 ブートイメージを手動で生成する方法について説明します。
前提条件
-
Azure CLI (
az
) をインストールしている。 - マルチアーキテクチャーインストーラーバイナリーを使用して、単一アーキテクチャーの Azure インストーラープロビジョニングクラスターを作成している。
手順
Azure アカウントにログインします。
$ az login
ストレージアカウントを作成し、ARM64 仮想ハードディスク (VHD) をストレージアカウントにアップロードします。OpenShift Container Platform インストールプログラムはリソースグループを作成しますが、ブートイメージをカスタムの名前付きリソースグループにアップロードすることもできます。
$ az storage account create -n ${STORAGE_ACCOUNT_NAME} -g ${RESOURCE_GROUP} -l westus --sku Standard_LRS 1
- 1
westus
オブジェクトはリージョンの例です。
生成したストレージアカウントを使用してストレージコンテナーを作成します。
$ az storage container create -n ${CONTAINER_NAME} --account-name ${STORAGE_ACCOUNT_NAME}
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')
次のコマンドを実行して、
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
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", 1 "statusDescription": null }
- 1
- 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
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