デプロイするWindowsアプリケーションのDockerイメージを作成し、ワークロードのデプロイ中にクラスターがリポジトリからそれをプルできるようにすることができます。 イメージを作成した後、Container Service for Kubernetes (ACK) クラスターにWindowsノードプールを作成して、イメージをWindowsノードにデプロイできます。
ステップ1: イメージをビルドしてイメージリポジトリにプッシュ
アプリケーションを展開するには、まずカスタムWindowsイメージに変換します。 Windows Server Coreベースイメージを使用してカスタムイメージを作成できます。 システムライブラリへの依存関係が最小限のアプリケーションでは、Nano Serverまたは公式PowerShellイメージの使用を検討してください。
次の例では、Windows Server Coreを基本イメージとして使用して、カスタムDockerイメージを作成します。 ベースイメージには、実行可能ファイルtest.exeとPowerShellスクリプトhello.ps1が含まれています。 PowerShellスクリプト (.ps1ファイル) は、Windowsアプリケーションの展開時に、環境変数の構成やファイルのコピーなどの前処理および初期化タスクによく使用されます。
次のDockerfileの例では、FRO M mcr.microsoft.com/windows/servercore:ltsc2019はバージョンltsc2019を指定します。これはWindows Server 2019でのみ実行できます。 ノードにWindows Server 2022が必要な場合は、2019を2022: mcr.microsoft.com/windows/servercore:ltsc2022に置き換えます。
# Use Windows Server Core as the base image
FROM mcr.microsoft.com/windows/servercore:ltsc2019
# Set the working directory
WORKDIR /app
# Copy local files into the container
COPY test.exe .
COPY hello.ps1 .
# Run the PowerShell script
CMD ["powershell.exe", "./hello.ps1"]
カスタムDockerfileを作成した後、docker buildコマンドを実行してイメージをビルドします。 イメージがビルドされたら、このトピックの手順に従って、Alibaba Cloud Container Registryのイメージリポジトリにプッシュします。Container Registry Enterprise Editionインスタンスを使用してイメージをビルドする。 将来の展開では、Container Registryから直接イメージを取得することで時間を節約できます。
手順2: ノードプールの作成
Windowsノードプールを設定し、ノードのアップグレードやスケーリングなど、プールレベルでWindowsノードを管理するには、「Windowsノードプールの作成」の手順に従います。
ステップ3: アプリケーションのデプロイ
Windowsノードプールを作成したら、前の手順で作成したDockerイメージを使用してワークロードをデプロイします。 詳細については、「Windowsアプリケーションの作成」をご参照ください。