この記事では、AKS クラスターで 1 つ以上のノード プールを作成する方法について説明します。
注
この機能により、複数のノード プールの作成と管理をより詳細に制御できるようになり、作成/更新/削除 (CRUD) 操作に個別のコマンドが必要になります。 以前は、az aks create または az aks update を介したクラスター操作は、managedCluster API を使用するものであり、コントロール プレーンと単一ノード プールを変更する唯一の方法でした。 この機能は、agentPool API を介した、エージェント プールに対する個別の操作セットを公開するものであり、個々のノード プールに対して操作を実行するには az aks nodepool コマンド セットを使用する必要があります。
重要
2025 年 11 月 30 日から、AKS は Azure Linux 2.0 のセキュリティ更新プログラムをサポートしたり提供したりしなくなります。
2026 年 3 月 31 日以降、ノード イメージは削除され、ノード プールをスケーリングできなくなります。
ノード プールをサポートされている Kubernetes バージョンにアップグレードするか、osSku AzureLinux3に移行して、サポートされている Azure Linux バージョンに移行します。 詳細については、「 廃止: AKS での Azure Linux 2.0 ノード プール」を参照してください。
[前提条件]
- Azure CLI バージョン 2.2.0 以降がインストールおよび構成されている必要があります。 バージョンを確認するには、
az --versionを実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
ARM テンプレートをデプロイするには、デプロイするリソースに対する書き込みアクセス権と、
Microsoft.Resources/deploymentsリソースの種類に対するすべての操作へのアクセス権が必要です。 たとえば、仮想マシン (VM) をデプロイするには、Microsoft.Compute/virtualMachines/writeとMicrosoft.Resources/deployments/*のアクセス許可が必要です。 ロールとアクセス許可の一覧については、Azure の組み込みロールに関するページを参照してください。各パラメーターの次の要件を確認します。
-
osTYPE: オペレーティング システムの種類。 既定値は Linux です。 -
osSKU: エージェント プールで使用される OS SKU を指定します。 -
count: Docker コンテナーをホストするエージェント (VM) の数。 使用できる値は、ユーザー プールの場合は 0 から 1000 (両端を含む) の範囲、システム プールの場合は 1 から 1000 (両端を含む) の範囲である必要があります。 既定値は 1 です。
-
ARM テンプレートを使用してクラスターをデプロイした後、Azure CLI または Azure PowerShell を使用してクラスターに接続し、サンプル アプリケーションをデプロイできます。
制限事項
複数のノード プールをサポートする AKS クラスターを作成する場合には、次の制限があります。
AKS クラスター内に代わりになる別のシステム ノード プールがある場合、システム ノード プールを削除できます。 それ以外の場合は、システム ノード プールを削除できません。
システム プールには、少なくとも 1 つのノードが含まれている必要があります。 ユーザー ノード プールには、0 個以上のノードを含めることができます。
単一ノード プールを使用してクラスターを作成する場合、OS の種類は
Linuxする必要があります。 OS SKU には、UbuntuやAzureLinuxなどの任意の Linux バリエーションを使用できます。 単一の Windows ノード プールを持つクラスターを作成することはできません。 Windows コンテナーを実行する場合は、Linux システム ノード プールを 使用して作成した後、クラスターに Windows ノード プールを追加する必要があります。複数ノード プールする場合、AKS クラスターは Standard SKU ロード バランサーを使用する必要があります。 この機能は、Basic SKU ロード バランサーではサポートされていません。
AKS クラスターでは、ノードに仮想マシン スケール セットを使用する必要があります。
ノード プールの名前には小文字の英数字のみを使用でき、小文字で始まる必要があります。
- Linux のノード プールの長さは、1 から 12 文字の範囲内である必要があります。
- Windows のノード プールの長さは、1 から 6 文字の範囲内である必要があります。
すべてのノード プールは、同じ仮想ネットワーク内に存在する必要があります
ノード プールの作成後に、仮想マシン (VM) のサイズを変更することはできません。
クラスターの作成時に複数のノード プールを作成する場合は、ノード プールのすべての Kubernetes のバージョンが、コントロール プレーンに設定されたバージョンと一致している必要があります。 各ノード プール操作を使用して、クラスターをプロビジョニングした後に更新を行うことができます。
特殊なノード プールを作成する
特殊化されたノード プールを作成する方法については、次の記事を参照してください。
- Azure スポット ノード プールを AKS クラスターに追加する
- 仮想マシン ノード プールを AKS クラスターに追加する
- AKS クラスターに専用システム ノード プールを追加する
- AKS ノード プールで Federal Information Processing Standards (FIPS) を有効にしました
- AKS クラスターに機密仮想マシン (CVM) を含むノード プールを追加する
- AKS で一意のサブネットを持つノード プールを作成する
- 第 2 世代 VM ノード プールを AKS クラスターに追加する
- アーティファクト ストリーミングを含むノード プールを AKS クラスターに追加する
-
containerdを含む Windows Server ノード プールを AKS クラスターに追加する
環境変数の設定
シェルで次の環境変数を設定して、この記事のコマンドを簡略化します。 値は、任意の名前に変更できます。
export RESOURCE_GROUP_NAME="my-aks-rg" export LOCATION="eastus" export CLUSTER_NAME="my-aks-cluster" export NODE_POOL_NAME="mynodepool"
リソース グループを作成する
az group createコマンドを使用して、Azure リソース グループを作成します。az group create --name $RESOURCE_GROUP_NAME --location $LOCATION
Azure CLI を使用して単一ノード プールを持つ AKS クラスターを作成する
AKS クラスターにノード プールが 1 つだけ必要な場合は、システム ノード プールでアプリケーション ポッドをスケジュールできます。 運用環境内のお使いの AKS クラスターで 1 つのシステム ノード プールを実行する場合、そのノード プールには少なくとも 3 つのノードを使用することをお勧めします。 1 つのノードがダウンすると、冗長性が損なわれます。 このリスクを軽減するには、システム ノード プール ノードを増やします。
- 単一の Ubuntu ノード プールを使用して AKS クラスターを作成する
- 単一の Azure Linux ノード プールを使用して AKS クラスターを作成する
- 単一の Azure Linux と OS Guard for AKS (プレビュー) ノード プールを使用して AKS クラスターを作成する
- 単一の Flatcar Container Linux for AKS (プレビュー) ノード プールを使用して AKS クラスターを作成する
az aks createコマンドを使用して、単一の Ubuntu ノード プールを持つクラスターを作成します。 この手順では、単一ノード プール内の 2 つのノードを指定します。az aks create \ --resource-group $RESOURCE_GROUP_NAME \ --name $CLUSTER_NAME \ --vm-set-type VirtualMachineScaleSets \ --node-count 2 \ --os-sku Ubuntu \ --location $LOCATION \ --load-balancer-sku standard \ --generate-ssh-keysクラスターの作成には数分かかります。
クラスターの準備ができたら、
az aks get-credentialsコマンドを使用してクラスターの資格情報を取得します。az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
Azure CLI を使用して 2 番目のノード プールを追加する
前のセクションで作成したクラスターには、1 つのノード プールがあります。 このセクションでは、クラスターに 2 番目のノード プールを追加します。 この 2 つ目のノードプールには、Linux または Ubuntu の OS SKU を持つ AzureLinux を OS の種類として指定することも、Windows を OS の種類として指定することもできます。
注
エフェメラル OS ディスクを使用するノード プールを AKS クラスターに追加する場合は、--node-osdisk-type コマンドの実行時にEphemeral フラグをaz aks nodepool addに設定できます。
エフェメラル OS を使用すると、VM およびインスタンス イメージを、最大で VM キャッシュのサイズまでデプロイできます。 AKS の既定のノード OS ディスク構成では 128 GB が使われます。つまり、キャッシュが 128 GB より大きい VM サイズが必要になります。 既定の Standard_DS2_v2 のキャッシュ サイズは 86 GB で、十分な大きさではありません。
Standard_DS3_v2 VM SKU のキャッシュ サイズは 172 GB で、十分な大きさです。
--node-osdisk-sizeを使用して OS ディスクの既定のサイズを小さくすることもできますが、AKS イメージの最小サイズは 30 GB であることに注意してください。
ネットワーク接続 OS ディスクを使用してノード プールを作成する場合は、--node-osdisk-type コマンドの実行時にManaged フラグをaz aks nodepool addに設定できます。
Linux ノード プールを追加する
- Ubuntu ノード プールを追加する
- Azure Linux ノード プールを追加する
- OS Guard for AKS (プレビュー) ノード プールを使用して Azure Linux を追加する
- AKS (プレビュー) ノード プール用の Flatcar Container Linux を追加する
az aks nodepool addコマンドを使用して、新しいノード プールを作成します。 次の例では、Linuxノードを実行するUbuntuOS SKU を使用して、 ノード プールを作成します。 OS SKU を指定しない場合、AKS は既定でUbuntuに設定されます。az aks nodepool add \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --node-vm-size Standard_DS2_v2 \ --os-type Linux \ --os-sku Ubuntu \ --node-count 3ノード プールの作成には数分かかります。
Windows Server ノード プールを追加する
aks-preview拡張機能をインストールする
aks-previewコマンドを使って Azure CLI 拡張機能az extension addをインストールします。重要
AKS のプレビュー機能は、セルフサービスのオプトイン単位で利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 AKS プレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は運用環境での使用を目的としていません。 詳細については、次のサポート記事を参照してください。
az extension add --name aks-previewaz extension updateコマンドを使って拡張機能の最新バージョンに更新します。 Windows Server 2025 には、少なくとも 18.0.0b5 が必要です。az extension update --name aks-preview
AksWindows2025Preview フィーチャーフラグを登録する
AksWindows2025Previewコマンドを使用して、az feature register機能フラグを登録します。az feature register --namespace "Microsoft.ContainerService" --name "AksWindows2025Preview"az feature showコマンドを使用して、登録の状態を確認します。 状態が [登録済み] と表示されるまでに数分かかります。az feature show --namespace Microsoft.ContainerService --name AksWindows2025Preview状態が Registered と表示されたら、 コマンドを使用して
az provider registerリソース プロバイダーの登録を最新の情報に更新します。az provider register --namespace Microsoft.ContainerService
Windows Server 2025 ノード プールを作成する
az aks nodepool addコマンドを使用して、新しいノード プールを作成します。 次の例では、Windowsノードを実行するWindows2025OS SKU を使用して、 ノード プールを作成します。Windows OS の詳細については、「 Windows のベスト プラクティス」を参照してください。
az aks nodepool add \ --resource-group $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --node-vm-size Standard_DS2_v2 \ --os-type Windows \ --os-sku Windows2025 \ --node-count 3
ノード プールの状態を確認する
az aks nodepool listコマンドを使用し、お使いのリソース グループとクラスター名を指定して、ノード プールの状態を確認します。az aks nodepool list --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
ARM テンプレートを使用して単一ノード プールを持つ AKS クラスターを作成する
AKS クラスターにノード プールが 1 つだけ必要な場合は、システム ノード プールでアプリケーション ポッドをスケジュールできます。 運用環境内のお使いの AKS クラスターで 1 つのシステム ノード プールを実行する場合、そのノード プールには少なくとも 3 つのノードを使用することをお勧めします。 1 つのノードがダウンすると、冗長性が損なわれます。 このリスクを軽減するには、システム ノード プール ノードを増やします。
Microsoft.ContainerService/managedClusters リソースを作成する
- 単一の Ubuntu ノード プールを作成するように JSON を変更する
- JSON を変更して単一の Azure Linux ノード プールを作成する
- OS Guard for AKS (プレビュー) ノード プールを使用して単一の Azure Linux を作成するように JSON を変更する
- AKS (プレビュー) ノード プール用の単一の Flatcar Container Linux を作成するように JSON を変更する
ARM テンプレートに次の変更を加えて、AKS クラスターに単一の Ubuntu ノード プールを作成します。
"properties": { "agentPoolProfiles": [ { "count": "1", "osSKU": "ubuntu", "osType": "linux" } ], }
ARM テンプレートを使用して 2 番目のノード プールを追加する
前のセクションで作成したクラスターには、1 つのノード プールがあります。 このセクションでは、クラスターに 2 番目のノード プールを追加します。 この 2 つ目のノードプールには、Linux または Ubuntu の OS SKU を持つ AzureLinux を OS の種類として指定することも、Windows を OS の種類として指定することもできます。
Linux ノード プールを追加する
- JSON を変更して複数の Ubuntu ノード プールを作成する
- JSON を変更して複数の Azure Linux ノード プールを作成する
- OS Guard for AKS (プレビュー) ノード プールを使用して複数の Azure Linux を作成するように JSON を変更する
- AKS (プレビュー) ノード プール用に複数の Flatcar Container Linux を作成するように JSON を変更する
ARM テンプレートに次の変更を加えて、AKS クラスターに複数の Ubuntu ノード プールを作成します。
"properties": { "agentPoolProfiles": [ { "count": "3", "osSKU": "ubuntu", "osType": "linux" } ], }
Windows Server ノード プールの追加
- JSON を変更して複数の Windows Server 2025 (プレビュー) ノード プールを作成する
- JSON を変更して複数の Windows Server 2022 ノード プールを作成する
aks-preview拡張機能をインストールする
aks-previewコマンドを使って Azure CLI 拡張機能az extension addをインストールします。重要
AKS のプレビュー機能は、セルフサービスのオプトイン単位で利用できます。 プレビューは、"現状有姿のまま" および "利用可能な限度" で提供され、サービス レベル アグリーメントおよび限定保証から除外されるものとします。 AKS プレビューは、ベストエフォート ベースでカスタマー サポートによって部分的にカバーされます。 そのため、これらの機能は運用環境での使用を目的としていません。 詳細については、次のサポート記事を参照してください。
az extension add --name aks-previewaz extension updateコマンドを使って拡張機能の最新バージョンに更新します。 Windows Server 2025 には、少なくとも 18.0.0b5 が必要です。az extension update --name aks-preview
AksWindows2025Preview フィーチャーフラグを登録する
AksWindows2025Previewコマンドを使用して、az feature register機能フラグを登録します。az feature register --namespace "Microsoft.ContainerService" --name "AksWindows2025Preview"az feature showコマンドを使用して、登録の状態を確認します。 状態が [登録済み] と表示されるまでに数分かかります。az feature show --namespace Microsoft.ContainerService --name AksWindows2025Preview状態が Registered と表示されたら、 コマンドを使用して
az provider registerリソース プロバイダーの登録を最新の情報に更新します。az provider register --namespace Microsoft.ContainerService
Windows Server 2025 ノード プールを作成する
ARM テンプレートに次の変更を加えて、AKS クラスターに複数の Windows ノード プールを作成します。
"properties": { "agentPoolProfiles": [ { "count": "3", "osSKU": "windows2025", "osType": "windows" } ], }
ARM テンプレートをデプロイする
- ARM テンプレートを 使用した Azure Kubernetes Service (AKS) クラスターのデプロイに関するページのガイダンスに従って、ARM テンプレートをデプロイします。
ノード プールのテイント、ラベル、またはタグを設定する
ノード プールを作成するときに、テイント、ラベル、タグをそのノード プールに追加できます。 テイント、ラベル、タグを追加すると、そのノード プール内のすべてのノードもそのテイント、ラベル、タグを取得します。 これらのプロパティは、個々のノードではなく、ノード プール全体に適用することをお勧めします。 これにより、各ノードを個別に更新するのではなく、ノード プールのプロパティを更新することで、ノード プール内のすべてのノードのプロパティを簡単に管理できます。
ノード プールのテイント、ラベル、またはタグを設定する方法の具体的な手順については、次のリソースを使用します。
- Azure Kubernetes Service (AKS) クラスターでノード テイントを使用する
- Azure Kubernetes Service (AKS) クラスターでラベルを使用する
- Azure Kubernetes Service (AKS) で Azure タグを使用する
- Azure Kubernetes Service (AKS) でタイントとトレレーションを使用して専用ノードを提供する
次のステップ
この記事では、1 つのノード プールを持つ AKS クラスターを作成し、クラスターにノード プールを追加する方法について説明しました。 ノード プールを管理する方法の詳細については、次の記事を参照してください。
Azure Kubernetes Service