コンテナー インスタンスで Azure CycleCloud を実行する
コンテナー インスタンスで Azure CycleCloud を実行することは、CycleCloud を断続的に使用し、ジョブの実行間でシャットダウンして、実行時間の長い仮想マシンに関連するコストを回避したいお客様にとって優れたソリューションです。
前提条件
CycleCloud にアクセスするコンピューターまたはサーバーに Docker をインストールして実行する必要があります。 OS 用の適切な インストール パッケージ をダウンロードし、Docker のインストール手順に従います。
CycleCloud コンテナー イメージ
Docker を設定して動作したら、次のコマンドを実行して、Microsoft の Container Registry から CycleCloud コンテナー イメージをプルダウンできます。
docker run mcr.microsoft.com/hpc/azure-cyclecloud
これで完了です。 コンテナーが起動し、CycleCloud は Web ブラウザーから https://localhostアクセスできます。 そこから、構成メニューに従います。
構成
コンテナーは、http (80) と https (443) の Web アプリケーションを実行します。 CycleCloud が JVM (Java 仮想マシン) を実行している場合、JVM の HeapSize とコンテナーに割り当てられたメモリを調整する必要があります。 HeapSize は、コンテナーのメモリ割り当ての半分に設定することをお勧めします。 環境変数を MB で指定してコマンドを使用します docker run -m
。 次に例を示します。
docker run -m 2G -e "JAVA_HEAP_SIZE=1024" -p 8080:80 -p 8443:443 myrepo/cyclecloud:$ver
警告
CycleCloud サービスが失敗すると、コンテナー プロセスが終了し、すべてのクラスター データが失われます。 このシナリオを回避するには、永続的ストレージでバックアップされるようにコンテナー インスタンスを構成します。
永続的な記憶域
Azure Container Instance が失敗した場合、データが失われ、HPC クラスターのマネージド実行状態を回復できなくなります。 Azure File Share の永続ストレージでバックアップされるように Azure Container Instance を構成することを強くお勧めします。
Azure File Share がマウントされている場合、CycleCloud コンテナーは次の目的で /azurecyclecloud
永続ストレージを使用します。
- ログ
- 復旧ポイントのバックアップ
Azure File Share の理解を深めるには、 Azure Container Instance との統合を示すドキュメントを参照してください。
次の例では、ストレージ共有が /azurecyclecloud にマウントされ、ログとバックアップ ポイントが収集されます。 この構成では、Azure CycleCloud データを障害から回復したり、仮想マシンなどの別のサービスでのホスティングに移行したりするために使用できます。
az container create \
--resource-group ${ResourceGroup} \
--location ${Location} \
--name ${Name} \
--dns-name-label ${DNSName} \
--image mcr.microsoft.com/hpc/azure-cyclecloud \
--ip-address public \
--ports 80 443 \
--cpu 2 \
--memory 4 \
-e JAVA_HEAP_SIZE=2048 \
--azure-file-volume-account-name ${STORAGE_ACCOUNT_NAME} \
--azure-file-volume-account-key ${STORAGE_KEY} \
--azure-file-volume-share-name ${SHARE_NAME} \
--azure-file-volume-mount-path /azurecyclecloud
サポートされているバージョン
CycleCloud コンテナー イメージのサポートされているバージョンは、製品の dockerhub ページにあります。 イメージは Azure Container インスタンスとして起動できます (既存のリソース グループ、場所、および優先コンテナーと DNS 名を使用)。 CycleCloud には SSL 証明書の生成が含まれているため、引数を 2 回指定すると (az cli に対して 1 回、環境変数を設定するためにもう一度)、コンテナーは有効な SSL 証明書を自動的に確立できます。
#!/bin/bash
ResourceGroup="rg-name"
Location="westus2"
CIName="ci-name"
CIDNSName="ci-name"
az container create -g ${ResourceGroup} \
--location ${Location} \
--name ${CIName} \
--dns-name-label ${CIDNSName} \
--image mcr.microsoft.com/hpc/azure-cyclecloud \
--ip-address public \
--ports 80 443 \
--cpu 2 --memory 4 \
-e JAVA_HEAP_SIZE=2048
上記の例では、コンテナーと cyclecloud UI を使用できます https://${CIDNSName}.${Location}.azurecontainer.io
。
その他の構成
コンテナーは、http (80) と https (443) の Web アプリケーションを実行します。 CycleCloud が JVM (Java 仮想マシン) を実行している場合、JVM の HeapSize とコンテナーに割り当てられたメモリを調整する必要があります。 HeapSize は、コンテナーのメモリ割り当ての半分に設定することをお勧めします。 環境変数を MB で指定してコマンドを使用します docker run -m
。 次に例を示します。
docker run -m 2G -e "JAVA_HEAP_SIZE=1024" -p 8080:80 -p 8443:443 mcr.microsoft.com/hpc/azure-cyclecloud