すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:(招待プレビュー時) Windows仮想ノードで実行するポッドをスケジュールする

最終更新日:Dec 10, 2024

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仮想ノードを追加できます。 手順:

  1. eci-profileを変更します。

    kubectl edit -n kube-system cm/eci-profile

    eci-profileのdataセクションでenableWindowsAmd64Nodeをtrueに設定します。 例:

    データ:
      ......
      enableWindowsAmd64Node: "true"# Windows仮想ノードを有効にします。
      ......
  2. Windows仮想ノードがクラスターに存在するかどうかを確認します。

    kubectl get nodes -l kubernetes.io/os=windows

    次の結果が戻ってくると予想されます。 Windows仮想ノードはクラスターで自動的に生成されます。

    windows.png

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仮想ノードで実行するようにスケジュールします。