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

Container Service for Kubernetes:ACK クラスターで Windows ノードプールを作成および管理する

最終更新日:Dec 17, 2025

ノードプールを使用すると、クラスター内のノードリソースのグループを管理できます。たとえば、ノードプールを使用して、ノードラベルと Taint を一元的に管理できます。Windows オペレーティングシステムを使用するノードを作成するには、Container Service for Kubernetes (ACK) クラスターに Windows ノードプールを作成します。また、ノードプールレベルで kubelet、ランタイム、および OS イメージのバージョンをアップグレードすることもできます。

制限事項

次の表に、Windows ノードプールを作成するための要件を示します。

制限事項

説明

クラスター

  • ACK マネージドクラスターが作成されていること

    Windows ノードプールは ACK マネージドクラスターでのみサポートされています。既存のクラスターに Windows ノードプールを作成する必要があります。クラスター作成時に Windows ノードプールを作成することはできません。
  • クラスターのバージョンが 1.20.4 以降であること。

    クラスターをアップグレードするには、「クラスターの手動アップグレード」をご参照ください。
  • クラスターのネットワークタイプが Flannel であること。

  • kube-flannel-ds-windows のバージョンが v0.15.2-aliyun 以降であること。

コンテナーランタイム

containerd 1.6 以降のバージョンのみが Windows ノードプールをサポートします。

ランタイムバージョンをアップグレードするには、「ノードプールのアップグレード」をご参照ください。

ノードプールタイプ

非マネージドノードプールのみが Windows ノードプールとして作成できます。

インスタンスタイプ

  • Windows ノードプールのサポートはインスタンスタイプによって異なります。一部のインスタンスタイプは Windows ノードプールをサポートしていません。複数回試行してください。たとえば、ecs.g6.xlarge を選択できます。このインスタンスタイプは Windows ノードプールをサポートしています。

  • インスタンスタイプには、少なくとも 4 vCPU と 8 GB のメモリが必要です。

    • Windows コンテナは、メモリ使用量が制限を超えても Out Of Memory (OOM) Kill の対象にはなりません。2021 年 5 月以降、バージョン 1.16 以降の ACK クラスターでは、新しく追加された Windows ノードは起動時に特定量のリソース (1.5 vCPU、2.5 GB の RAM、3 GB のディスク領域) を予約します。これにより、Windows オペレーティングシステム、kubelet、およびコンテナーランタイムの安定した動作が保証されます。リソース予約の詳細については、「ノードリソースの予約ポリシー」をご参照ください。

      リソース予約メカニズムにより、Windows ワークロードの過剰な割り当てによる Windows ノードの完全な利用不能を軽減または防止できます。ただし、Windows コンテナアプリケーションでメモリリークが発生した場合、Windows ノードがクラッシュする可能性はあります。
    • Windows コンテナはフットプリントが小さいです。詳細については、「Windows コンテナのメモリ要件」をご参照ください。

次の表に、Windows ノードプールの使用に関する制限事項を示します。

制限事項

説明

オペレーティングシステム

Windows ノードプールは、Windows Server 2019、Windows Server 2022、および Windows Server Core, Version 2022 をサポートしています。

ACK コンソールは、Windows Server 2019、Windows Server 2022、および Windows Server Core, Version 2022 をサポートしています。Windows Server Core, Version 2004 を使用する場合は、Elastic Compute Service (ECS) の 2023 パブリックイメージリリースレコードから最新のイメージ ID を選択してノードプールを作成してください。

ノード数

デフォルトでは、クラスターに最大 100 ノードを追加できます。さらにノードを追加するには、Quota Center でチケットを送信してください。

Elastic Compute Service

既存の ECS インスタンスを追加する場合、ご利用の Virtual Private Cloud (VPC) 内の ECS インスタンスが Elastic IP アドレス (EIP) に関連付けられているか、VPC に NAT Gateway が設定されていることを確認してください。ノードがインターネットにアクセスできることを確認してください。そうでない場合、ECS インスタンスの追加に失敗します。既存の ECS インスタンスを追加する際の注意事項と手順の詳細については、「既存ノードの追加」をご参照ください。

Windows ノードプールの作成

コンソール

デフォルトノードプール (default-nodepool) を Windows ノードプールとして作成することはできません。詳細については、「制限事項」をご参照ください。クラスターを作成した後に Windows ノードプールを作成する必要があります。

  1. ACK コンソールにログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. ノードプール ページで、ノードプールの作成 をクリックし、画面の指示に従います。

    パラメーターの詳細については、「ノードプールの作成と管理」をご参照ください。次の表に、一部のパラメーターを示します。

    パラメーター

    説明

    マネージド設定

    [無効化] を選択します。

    コンテナーランタイム

    [containerd] を選択します。

    インスタンスタイプ

    • Windows ノードプールのサポートはインスタンスタイプによって異なります。一部のインスタンスタイプは Windows ノードプールをサポートしていません。複数回試行する必要があります。たとえば、ecs.g6.xlarge を選択できます。このインスタンスタイプは Windows ノードプールをサポートしています。

    • 少なくとも 4 vCPU と 8 GB のメモリを持つインスタンスタイプを選択します。

    • Elastic GPU Service アーキテクチャを使用しないインスタンスタイプを選択します。

      インスタンスタイプの詳細については、「インスタンスファミリー」をご参照ください。

    予期されるノード数

    ノードプールが維持するノードの数。この値を指定すると、ノードプールは指定されたノード数を維持するために自動的にスケールアウトまたはスケールインします。

    オペレーティングシステム

    Windows オペレーティングシステムを選択します。

    ECS タグ

    ECS インスタンスにタグを追加します。

    ノードラベル

    クラスターノードにラベルを追加します。

    ノードプール ページで、ステータス有効 に変わると、Windows ノードプールが作成されます。

API

CreateClusterNodePool 操作を呼び出して Windows ノードプールを作成し、ノード数やノード仕様などのパラメーターを設定できます。次のコードは、パラメーターの例です。

{
  "ClusterId": "ca8ed83XXXXXXXXXXXX5ec197",          // クラスター ID。
  "body": { 
    "nodepool_info": {
      "name": "nodepool-fXXXXXx",                    // ノードプールの名前。
      "resource_group_id": "rg-acfmXXXXXXXXsjpq"     // クラスターが属するリソースグループの ID。このパラメーターはリソースを分離するために使用されます。  
    },
    "scaling_group": {
      "vswitch_ids": [                               // クラスターノードの vSwitch。このパラメーターは、ノードがないマネージドクラスターを作成する際に必須です。 
        "vsw-bp1XXXXXXXXXXXXX1xm84",
        "vsw-bp1XXXXXXXXXXXX2v6x0a",
        "vsw-bp1XXXXXXXXXXXXXjkxbo"
      ],
      "data_disks": [                                // ワーカーノード上のデータディスクの構成 (ディスクタイプ、ディスクサイズ、その他の設定など)。
        {
          "category": "cloud_essd",
          "size": 120,
          "encrypted": "false",
          "performance_level": "PL0"
        }
      ],
      "vpc_id": "vpc-bpXXXXXXXXXXXXXXXmgb6",         // クラスター VPC の ID。
      "instance_charge_type": "PostPaid",            // ノードの課金方法。有効な値:PrePaid (サブスクリプション) および PostPaid (従量課金)。デフォルト値:PostPaid。
      "internet_max_bandwidth_out": 1,               // ノードのパブリック IP アドレスの最大アウトバウンド帯域幅。単位:Mbit/s。有効な値:1~100。
      "soc_enabled": false,                          // MLPS 2.0 セキュリティ強化を有効にするかどうかを指定します。有効な値:true および false。
      "security_hardening_os": false,                // Alibaba Cloud OS セキュリティ強化を有効にするかどうかを指定します。有効な値:true および false。デフォルト値:false。
      "instance_types": [                            // インスタンスタイプ。
        "ecs.g6.xlarge"
      ],
      "instance_patterns": [                         // インスタンスプロパティ設定。
        {
          "Cores": 4,
          "Memory": 16,
          "burst_performance_option": "Exclude",     // インスタンスタイプがバースト可能インスタンスであるかどうかを指定します。  
          "excluded_instance_types": [               // 除外したいインスタンスタイプ。
            "ecs.c6t.*"
            // ...
          ],
          "instance_type_families": [                // 指定したいインスタンスファミリー。  
            "ecs.g6"
            // ...
          ]
        }
      ],
      "login_password": "XXXXXX",
      "login_as_non_root": false,
      "system_disk_category": "cloud_essd",
      "system_disk_size": 40,
      "system_disk_performance_level": "PL0",
      "system_disk_encrypted": false,
      "multi_az_policy": "BALANCE",                // マルチゾーンスケーリンググループ内の ECS インスタンスのスケーリングポリシー。
      "platform": "WindowsServer2022",
      "image_id": "win2022_21H2_x64_dtc_en-us_40G_container_alibase_20240220.vhd",
      "image_type": "WindowsServer2022",
      "desired_size": 1
    },
    "kubernetes_config": {                         // クラスター構成。
      "cms_enabled": true,                         // ECS ノードに CloudMonitor エージェントをインストールするかどうかを指定します。CloudMonitor エージェントをインストールすると、作成された ECS インスタンスの監視情報を CloudMonitor コンソールで表示できます。この機能を有効にすることを推奨します。
      "unschedulable": false,                      // スケールアウトされたノードをスケジュール不可に設定するかどうかを指定します。有効な値:true および false。
      "runtime": "containerd",                   
      "runtime_version": "2.1.1"                   // containerd 1.6 以降のバージョンのみが Windows ノードプールをサポートします。
    },
    "auto_scaling": {                              // ノードプールの自動スケーリング機能の構成。有効な値:true (自動スケーリングを有効にする) および false (自動スケーリングを無効にする)。
      "enable": false
    },
    "tee_config": {                                // 高信頼コンピューティングノードプールの構成。有効な値:true (高信頼コンピューティングを有効にする) および false (高信頼コンピューティングを無効にする)。
      "tee_enable": false
    },
    "node_config": {                               // ノード構成。    
      "image_acceleration_config": {
        "enable_image_acceleration": false
      }
    }
  }
}

Terraform

詳細については、「Terraform の概要」をご参照ください。Windows ノードプールを作成し、ノード数やノード仕様などのパラメーターを設定できます。次のコードは、パラメーターの例です。

provider "alicloud" {
  region = "cn-beijing"
}

resource "alicloud_cs_kubernetes_node_pool" "pool" {
  cluster_id = "c1f801474ea46417d8e83cc482******"
  data_disks {
    category          = "cloud_essd"
    encrypted         = "false"
    performance_level = "PL0"
    size              = 120
  }
  
  desired_size          = 1
  image_id              = "win2019_1809_x64_dtc_en-us_40G_container_alibase_20240220.vhd"
  image_type            = "Windows"
  install_cloud_monitor = true
  instance_charge_type  = "PostPaid"     // ノードの課金方法。有効な値:PrePaid (サブスクリプション) および PostPaid (従量課金)。デフォルト値:PostPaid。
  instance_types = [
    "ecs.g8i.xlarge"
  ]
  internet_max_bandwidth_out = 0        // 最大パブリックアウトバウンド帯域幅。単位:Mbit/s。有効な値:1~100。
  login_as_non_root          = false
  multi_az_policy            = "BALANCE"
  node_pool_name             = "nodepool-8liYZX"
  password                   = "**********"
  platform                   = "WindowsServer2019"
  resource_group_id          = "rg-acfmvnjn2*****"
  runtime_name               = "containerd"
  runtime_version            = "2.1.5"      // コンテナーランタイムのバージョン。containerd 1.6 以降のバージョンのみが Windows ノードプールをサポートします。
  scaling_config {
    enable      = false
    is_bond_eip = false
  }
  security_hardening_os         = false
  soc_enabled                   = false     // MLPS 2.0 セキュリティ強化を有効にするかどうかを指定します。有効な値:true および false。
  system_disk_category          = "cloud_essd"
  system_disk_encrypted         = false     // システムディスクを暗号化するかどうかを指定します。有効な値:true および false。
  system_disk_performance_level = "PL0"
  system_disk_size              = 40
  tee_config {
    tee_enable = false
  }
  unschedulable = false
  vswitch_ids = [
    "vsw-2ze9k65q3wn23wy*****",
    "vsw-2zekovpspoxgn44*****",
    "vsw-2ze54z91jw267e1*****"
  ]
}

Windows ノードプールのアップグレード

ノードプールのアップグレードには、kubelet とコンテナーランタイムのアップグレードが含まれます。ノードプールをアップグレードする前に、コントロールプレーンをターゲットバージョンにアップグレードしていることを確認してください。

  • Kubelet のアップグレード:ノードプール内のノードの kubelet をコントロールプレーンと同じバージョンにアップグレードします。

  • コンテナーランタイムのアップグレード:コンテナーランタイムの新しいバージョンがリリースされたときに、ノードのコンテナーランタイムを最新バージョンにアップグレードできます。

手順と関連する注意事項の詳細については、「ノードプールのアップグレード」をご参照ください。アップグレード方法を設定する際には、ノードのシステムディスクを交換して Windows ノードプールをアップグレードするオプションを選択する必要があります。

Windows ノードプールの OS イメージのアップグレード

詳細については、「オペレーティングシステムの置換」をご参照ください。ノードプールの OS イメージを最新バージョンにアップグレードして、新機能、最適化、バグ修正の恩恵を受けることができます。

最新のイメージバージョンについては、「オペレーティングシステム」をご参照ください。

関連ドキュメント