Elastic Container InstanceはWindowsベースのインスタンスをサポートしています。 Windows環境でコンテナーを実行する場合は、クラスターにWindows仮想ノードを追加し、ポッドをWindows仮想ノードで実行するようにスケジュールできます。 これにより、コンテナーを実行するためのWindowsベースのポッド (弾性コンテナーインスタンス) を作成できます。
Windowsベースのインスタンスは招待プレビュー中です。 Windowsベースのインスタンスを使用するには、チケットを起票してください。
前提条件
クラスタ内のVirtual Kubeletコンポーネントのバージョンは、v2.11.0-rc.0以降です。 Virtual Kubeletコンポーネントは、Container Service for Kubernetes (ACK) 仮想ノードコンポーネントです。 詳細については、「コンポーネントの管理」および「ACK仮想ノード」をご参照ください。
制限事項
Windowsベースのエラスティックコンテナインスタンスを作成する場合、インスタンスのvCPUおよびメモリの仕様は、2 vCPUおよび4 GiBメモリ以上である必要があります。 インスタンスは、GPU高速化インスタンス、ローカルディスクを持つインスタンス、またはARMベースのインスタンスではありません。
Windowsコンテナイメージのバージョンは10.0.20348.* でなければなりません。 つまり、コンテナーイメージはWindows Server 2022イメージでなければなりません。
Windows仮想ノードの追加
eci-profileを変更して、クラスターにWindows仮想ノードを追加できます。 手順:
eci-profileを変更します。
kubectl edit -n kube-system cm/eci-profile
eci-profileのdataセクションでenableWindowsAmd64Nodeをtrueに設定します。 例:
データ: ...... enableWindowsAmd64Node: "true"# Windows仮想ノードを有効にします。 ......
Windows仮想ノードがクラスターに存在するかどうかを確認します。
kubectl get nodes -l kubernetes.io/os=windows
次の結果が戻ってくると予想されます。 Windows仮想ノードはクラスターで自動的に生成されます。
Windowsベースのポッドの作成
Windows仮想ノードには "kubernetes.io/os": windows
ラベルがあります。 Elastic Container Instanceベースのポッドを作成するときに、nodeSelectorを使用してWindows仮想ノードを指定し、Windows仮想ノードで実行するようにポッドをスケジュールできます。 これにより、コンテナーを実行するWindowsベースのポッドを作成できます。
nodeSelector:
kubernetes.io/os: windows
サンプルYAMLファイル:
apiVersion: apps/v1
kind: 配置
メタデータ:
名前: test-windows
ラベル:
アプリ: テスト
spec:
replicas: 1
セレクタ:
matchLabels:
アプリ:nginx
template:
metadata:
名前: nginx-test
ラベル:
アプリ:nginx
alibabacloud.com/eci: "true"
アノテーション:
k8s.aliyun.com/eci-with-eip: "true"# elastic IPアドレス (EIP) をポッドに関連付けて、インターネット経由で画像をプルします。
k8s.aliyun.com/eci-use-specs: "ecs.c6.4xlarge"# ポッドを作成するECSインスタンスタイプを指定します。
仕様:
containers:
-name: テスト
image: mcr.microsoft.com/windows/nanoserver:ltsc2022# Windowsコンテナイメージを使用します。
コマンド: ["ping","-t","localhost"]
nodeSelector:
kubernetes.io/os: windows# ポッドをWindows仮想ノードで実行するようにスケジュールします。