Azure Kubernetes Service (AKS) のクラスターで複数のノード プールを作成および管理するCreate and manage multiple node pools for a cluster in Azure Kubernetes Service (AKS)

Azure Kubernetes Service (AKS) で同じ構成のノードは、ノード プール にグループ化できます。In Azure Kubernetes Service (AKS), nodes of the same configuration are grouped together into node pools. これらのノード プールには、お使いのアプリケーションを実行する基になる VM が含まれています。These node pools contain the underlying VMs that run your applications. 最初のノード数とそのサイズ (SKU) は、"システム ノード プール" が作成される AKS クラスターの作成時に定義します。The initial number of nodes and their size (SKU) is defined when you create an AKS cluster, which creates a system node pool. コンピューティングまたは記憶域の要件が異なるアプリケーションをサポートするには、追加の "ユーザー ノード プール" を作成します。To support applications that have different compute or storage demands, you can create additional user node pools. システム ノード プールは、CoreDNS や tunnelfront などの重要なシステム ポッドをホストするという主要な目的を果たします。System node pools serve the primary purpose of hosting critical system pods such as CoreDNS and tunnelfront. ユーザー ノード プールは、アプリケーション ポッドをホストするという主要な目的を果たします。User node pools serve the primary purpose of hosting your application pods. ただし、AKS クラスター内のプールを 1 つだけにする場合は、システム ノード プールでアプリケーション ポッドをスケジュールすることができます。However, application pods can be scheduled on system node pools if you wish to only have one pool in your AKS cluster. ユーザー ノード プールは、お使いのアプリケーションに固有のポッドを配置する場所です。User node pools are where you place your application-specific pods. たとえば、これらの追加のユーザー ノード プールを使用すると、コンピューティング集約型のアプリケーションに GPU を提供したり、高パフォーマンスな SSD ストレージにアクセスを提供したりできます。For example, use these additional user node pools to provide GPUs for compute-intensive applications, or access to high-performance SSD storage.

注意

この機能を使用すると、複数のノード プールを作成および管理する方法をより細かく制御できます。This feature enables higher control over how to create and manage multiple node pools. そのため、作成/更新/削除には個別のコマンドが必要です。As a result, separate commands are required for create/update/delete. 以前は、az aks create または az aks update を介したクラスター操作は、managedCluster API を使用するものであり、コントロール プレーンと単一ノード プールを変更する唯一の方法でした。Previously cluster operations through az aks create or az aks update used the managedCluster API and were the only option to change your control plane and a single node pool. この機能は、agentPool API を介した、エージェント プールに対する個別の操作セットを公開するものであり、個々のノード プールに対して操作を実行するには az aks nodepool コマンド セットを使用する必要があります。This feature exposes a separate operation set for agent pools through the agentPool API and require use of the az aks nodepool command set to execute operations on an individual node pool.

この記事では、AKS クラスターで複数のノード プールを作成および管理する方法について説明します。This article shows you how to create and manage multiple node pools in an AKS cluster.

開始する前にBefore you begin

Azure CLI バージョン 2.2.0 以降がインストールされて構成されている必要があります。You need the Azure CLI version 2.2.0 or later installed and configured. バージョンを確認するには、az --version を実行します。Run az --version to find the version. インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure CLI.

制限事項Limitations

複数のノード プールをサポートする AKS クラスターを作成および管理する場合には、次の制限があります。The following limitations apply when you create and manage AKS clusters that support multiple node pools:

  • Azure Kubernetes Service (AKS) のクォータ、仮想マシンのサイズの制限、およびリージョンの可用性」を参照してください。See Quotas, virtual machine size restrictions, and region availability in Azure Kubernetes Service (AKS).
  • 別のシステム ノード プールが AKS クラスター内にあり、それが代わりをする場合に、システム ノード プールを削除できる。You can delete system node pools, provided you have another system node pool to take its place in the AKS cluster.
  • システム プールには少なくとも 1 つのノードを含める必要があり、ユーザー ノード プールには 0 以上のノードを含めることができます。System pools must contain at least one node, and user node pools may contain zero or more nodes.
  • AKS クラスターが複数のノード プールを使用するためには、Standard SKU のロード バランサーを使用する必要があります。Basic SKU のロード バランサーでは、この機能がサポートされません。The AKS cluster must use the Standard SKU load balancer to use multiple node pools, the feature is not supported with Basic SKU load balancers.
  • AKS クラスターでは、ノードに仮想マシン スケール セットを使用する必要があります。The AKS cluster must use virtual machine scale sets for the nodes.
  • ノード プールの名前は、小文字の英数字のみを含めることができ、小文字で始める必要があります。The name of a node pool may only contain lowercase alphanumeric characters and must begin with a lowercase letter. Linux ノード プールの場合、長さは 1 から 12 文字である必要があります。Windows ノード プールの場合、長さは 1 から 6 文字である必要があります。For Linux node pools the length must be between 1 and 12 characters, for Windows node pools the length must be between 1 and 6 characters.
  • すべてのノード プールは、同じ仮想ネットワーク内に存在する必要がありますAll node pools must reside in the same virtual network.
  • クラスターの作成時に複数のノード プールを作成する場合は、ノード プールで使用されるすべての Kubernetes のバージョンが、コントロール プレーンに設定されたバージョンと一致している必要があります。When creating multiple node pools at cluster create time, all Kubernetes versions used by node pools must match the version set for the control plane. これは、ノード プールごとの操作を使用してクラスターがプロビジョニングされた後で更新できます。This can be updated after the cluster has been provisioned by using per node pool operations.

AKS クラスターを作成するCreate an AKS cluster

重要

運用環境内のお使いの AKS クラスターで 1 つのシステム ノード プールを実行する場合、そのノード プールには少なくとも 3 つのノードを使用することをお勧めします。If you run a single system node pool for your AKS cluster in a production environment, we recommend you use at least three nodes for the node pool.

まず、1 つのノード プールで AKS クラスターを作成開始します。To get started, create an AKS cluster with a single node pool. 次の例では、az group create コマンドを使用して、myResourceGroup という名前のリソース グループを eastus リージョンに作成しています。The following example uses the az group create command to create a resource group named myResourceGroup in the eastus region. 次いで、myAKSCluster という名前の AKS クラスターを az aks create コマンドを使用して作成しています。An AKS cluster named myAKSCluster is then created using the az aks create command.

注意

複数のノード プールを使用する場合、Basic ロード バランサー SKU は サポートされませんThe Basic load balancer SKU is not supported when using multiple node pools. 既定では、AKS クラスターが、Azure CLI および Azure portal から Standard ロード バランサー SKU で作成されます。By default, AKS clusters are created with the Standard load balancer SKU from the Azure CLI and Azure portal.

# Create a resource group in East US
az group create --name myResourceGroup --location eastus

# Create a basic single-node AKS cluster
az aks create \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --vm-set-type VirtualMachineScaleSets \
    --node-count 2 \
    --generate-ssh-keys \
    --load-balancer-sku standard

クラスターの作成には数分かかります。It takes a few minutes to create the cluster.

注意

重要なシステム サービスが既定のノード プールで実行されるため、クラスターを確実に動作させるには、このノード プールで少なくとも 2 つのノードを実行する必要があります。To ensure your cluster operates reliably, you should run at least 2 (two) nodes in the default node pool, as essential system services are running across this node pool.

クラスターの準備ができたら、az aks get-credentials コマンドを使用して、kubectl で使用するクラスターの資格情報を取得します。When the cluster is ready, use the az aks get-credentials command to get the cluster credentials for use with kubectl:

az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

ノード プールの追加Add a node pool

前の手順で作成したクラスターには、ノード プールが 1 つあります。The cluster created in the previous step has a single node pool. az aks nodepool add コマンドを使用して、2 番目のノード プールを追加しましょう。Let's add a second node pool using the az aks nodepool add command. 次の例では、3 つのノードを実行する mynodepool という名前のノード プールを作成します。The following example creates a node pool named mynodepool that runs 3 nodes:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-count 3

注意

ノード プールの名前は、小文字で始める必要があり、英数字のみを含めることができます。The name of a node pool must start with a lowercase letter and can only contain alphanumeric characters. Linux ノード プールの場合、長さは 1 から 12 文字である必要があります。Windows ノード プールの場合、長さは 1 から 6 文字である必要があります。For Linux node pools the length must be between 1 and 12 characters, for Windows node pools the length must be between 1 and 6 characters.

お使いのノード プールの状態を確認するには、az aks node pool list コマンドを使用し、次のようにお使いのリソース グループとクラスター名を指定します。To see the status of your node pools, use the az aks node pool list command and specify your resource group and cluster name:

az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster

次の出力例では、mynodepool がノード プール内に 3 つのノードと共に正常に作成されたことを示しています。The following example output shows that mynodepool has been successfully created with three nodes in the node pool. 前の手順で AKS クラスターを作成したとき、既定の nodepool1 がノード数 2 で作成されました。When the AKS cluster was created in the previous step, a default nodepool1 was created with a node count of 2.

[
  {
    ...
    "count": 3,
    ...
    "name": "mynodepool",
    "orchestratorVersion": "1.15.7",
    ...
    "vmSize": "Standard_DS2_v2",
    ...
  },
  {
    ...
    "count": 2,
    ...
    "name": "nodepool1",
    "orchestratorVersion": "1.15.7",
    ...
    "vmSize": "Standard_DS2_v2",
    ...
  }
]

ヒント

ノード プールを追加するときに VmSize を指定しなかった場合、既定のサイズは、Windows ノード プールの場合は Standard_D2s_v3、Linux ノード プールの場合は Standard_DS2_v2 になります。If no VmSize is specified when you add a node pool, the default size is Standard_D2s_v3 for Windows node pools and Standard_DS2_v2 for Linux node pools. OrchestratorVersion が指定されていない場合、コントロール プレーンと同じバージョンが既定値になります。If no OrchestratorVersion is specified, it defaults to the same version as the control plane.

一意なサブネットを持つノード プールを追加する (プレビュー)Add a node pool with a unique subnet (preview)

ワークロードでは、クラスターのノードを論理的に分離するために個別のプールに分割することが必要になる場合があります。A workload may require splitting a cluster's nodes into separate pools for logical isolation. この分離は、クラスター内の各ノード プール専用の個別のサブネットによってサポートできます。This isolation can be supported with separate subnets dedicated to each node pool in the cluster. これにより、ノード プール間で分割するための連続しない仮想ネットワーク アドレス空間などの要件に対応できます。This can address requirements such as having non-contiguous virtual network address space to split across node pools.

制限事項Limitations

  • ノード プールに割り当てられるサブネットはすべて、同じ仮想ネットワークに属している必要があります。All subnets assigned to nodepools must belong to the same virtual network.
  • システム ポッドは、coreDNS による DNS 解決などの重要な機能を提供するために、クラスター内のすべてのノードにアクセスできる必要があります。System pods must have access to all nodes in the cluster to provide critical functionality such as DNS resolution via coreDNS.
  • プレビュー期間中、ノード プールごとの一意なサブネットの割り当ては、Azure CNI に制限されます。Assignment of a unique subnet per node pool is limited to Azure CNI during preview.
  • プレビュー期間中、ノード プールごとの一意なサブネットでのネットワーク ポリシーの使用はサポートされません。Using network policies with a unique subnet per node pool is not supported during preview.

専用サブネットを持つノード プールを作成するには、ノード プールを作成する際に、サブネットのリソース ID を追加パラメーターとして渡します。To create a node pool with a dedicated subnet, pass the subnet resource ID as an additional parameter when creating a node pool.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-count 3 \
    --vnet-subnet-id <YOUR_SUBNET_RESOURCE_ID>

ノード プールのアップグレードUpgrade a node pool

注意

クラスターまたはノード プールでは、アップグレードやスケーリングの操作を同時に実行することはできず、実行を試みた場合には、エラーが返されます。Upgrade and scale operations on a cluster or node pool cannot occur simultaneously, if attempted an error is returned. 代わりに、ターゲット リソースに対する次の要求を行う前に、各操作の種類をその同じリソースで完了する必要があります。Instead, each operation type must complete on the target resource prior to the next request on that same resource. 詳細については、トラブルシューティング ガイドを参照してください。Read more about this on our troubleshooting guide.

このセクションのコマンドからは、1 つの特定のノード プールをアップグレードする方法が説明されます。The commands in this section explain how to upgrade a single specific node pool. コントロール プレーンとノード プールの Kubernetes バージョンをアップグレードするとき、両者の関係については、下のセクションで説明します。The relationship between upgrading the Kubernetes version of the control plane and the node pool are explained in the section below.

注意

ノード プールの OS イメージのバージョンは、クラスターの Kubernetes バージョンに関連付けられています。The node pool OS image version is tied to the Kubernetes version of the cluster. OS イメージは、クラスターのアップグレードの後でのみアップグレードされます。You will only get OS image upgrades, following a cluster upgrade.

この例には 2 つのノード プールがあるため、az aks nodepool upgrade を使用してノード プールをアップグレードする必要があります。Since there are two node pools in this example, we must use az aks nodepool upgrade to upgrade a node pool. 使用可能なアップグレードを確認するには、az aks get-upgrades を使用します。To see the available upgrades use az aks get-upgrades

az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster

mynodepool をアップグレードしましょう。Let's upgrade the mynodepool. 次の例のように、az aks node pool upgrade コマンドを使用してノード プールをアップグレードします。Use the az aks nodepool upgrade command to upgrade the node pool, as shown in the following example:

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --kubernetes-version KUBERNETES_VERSION \
    --no-wait

az aks node pool list コマンドを使用し、再度お使いのノード プールの状態を一覧表示します。List the status of your node pools again using the az aks node pool list command. 次の例では、mynodepoolKUBERNETES_VERSION への Upgrading 状態であることを示しています。The following example shows that mynodepool is in the Upgrading state to KUBERNETES_VERSION:

az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster
[
  {
    ...
    "count": 3,
    ...
    "name": "mynodepool",
    "orchestratorVersion": "KUBERNETES_VERSION",
    ...
    "provisioningState": "Upgrading",
    ...
    "vmSize": "Standard_DS2_v2",
    ...
  },
  {
    ...
    "count": 2,
    ...
    "name": "nodepool1",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Succeeded",
    ...
    "vmSize": "Standard_DS2_v2",
    ...
  }
]

ノードを指定したバージョンにアップグレードするには数分かかります。It takes a few minutes to upgrade the nodes to the specified version.

AKS クラスター内のノード プールは、すべて同じ Kubernetes のバージョンにアップグレードするのがベスト プラクティスです。As a best practice, you should upgrade all node pools in an AKS cluster to the same Kubernetes version. az aks upgrade の既定の動作では、この配置を実現するために、すべてのノード プールがコントロール プレーンと共にアップグレードされます。The default behavior of az aks upgrade is to upgrade all node pools together with the control plane to achieve this alignment. 個々のノード プールをアップグレードできる機能によりローリング アップグレードの実行が可能になり、アプリケーションのアップタイムを維持するノード プール間のポッドを前述の制約内でスケジュールできます。The ability to upgrade individual node pools lets you perform a rolling upgrade and schedule pods between node pools to maintain application uptime within the above constraints mentioned.

複数のノード プールを使用するでクラスターのコントロール プレーンをアップグレードするUpgrade a cluster control plane with multiple node pools

注意

Kubernetes は、標準のセマンティック バージョニングのバージョン管理スキームを使用します。Kubernetes uses the standard Semantic Versioning versioning scheme. バージョン番号は x.y.z として表されます。ここで、x はメジャー バージョン、y はマイナー バージョン、z は修正プログラムのバージョンです。The version number is expressed as x.y.z, where x is the major version, y is the minor version, and z is the patch version. たとえば、バージョン 1.12.6 の場合は、1 がメジャー バージョン、12 がマイナー バージョン、6 が修正プログラムのバージョンです。For example, in version 1.12.6, 1 is the major version, 12 is the minor version, and 6 is the patch version. コントロール プレーンの Kubernetes バージョンと初期ノード プールは、クラスター作成時に設定されます。The Kubernetes version of the control plane and the initial node pool are set during cluster creation. その他のすべてのノード プールには、クラスターに追加されるときに Kubernetes バージョンが設定されます。All additional node pools have their Kubernetes version set when they are added to the cluster. Kubernetes バージョンは、ノード プール間、およびノード プールとコントロール プレーン間では異なる場合があります。The Kubernetes versions may differ between node pools as well as between a node pool and the control plane.

AKS クラスターには、Kubernetes バージョンが関連付けられている 2 つのクラスター リソース オブジェクトがあります。An AKS cluster has two cluster resource objects with Kubernetes versions associated.

  1. クラスターのコントロール プレーンの Kubernetes バージョン。A cluster control plane Kubernetes version.
  2. Kubernetes バージョンのノード プール。A node pool with a Kubernetes version.

コントロール プレーンは、1 つまたは複数のノード プールにマップされます。A control plane maps to one or many node pools. アップグレード操作の動作は、どの Azure CLI コマンドを使用するかによって異なります。The behavior of an upgrade operation depends on which Azure CLI command is used.

AKS コントロール プレーンをアップグレードするには、az aks upgrade を使用する必要があります。Upgrading an AKS control plane requires using az aks upgrade. このコマンドにより、コントロール プレーンのバージョンとクラスター内のすべてのノード プールがアップグレードされます。This command upgrades the control plane version and all node pools in the cluster.

--control-plane-only フラグを使用して az aks upgrade コマンドを実行すると、クラスターのコントロール プレーンのみがアップグレードされます。Issuing the az aks upgrade command with the --control-plane-only flag upgrades only the cluster control plane. クラスター内の関連付けられているノード プールは一切変更されません。None of the associated node pools in the cluster are changed.

個々のノード プールをアップグレードするには、az aks nodepool upgrade を使用する必要があります。Upgrading individual node pools requires using az aks nodepool upgrade. このコマンドでは、指定した Kubernetes バージョンのターゲット ノード プールのみがアップグレードされますThis command upgrades only the target node pool with the specified Kubernetes version

アップグレードの検証規則Validation rules for upgrades

クラスターのコントロール プレーンおよびノード プールに対して有効な Kubernetes のアップグレードは、次の規則のセットによって検証されます。The valid Kubernetes upgrades for a cluster's control plane and node pools are validated by the following sets of rules.

  • ノード プールをアップグレードするための有効なバージョンの規則:Rules for valid versions to upgrade node pools:

    • ノード プールのバージョンは、コントロール プレーンと同じ "メジャー" バージョンである必要があります。The node pool version must have the same major version as the control plane.
    • ノード プールの "マイナー" バージョンは、コントロール プレーンのバージョンの 2 つ以内の "マイナー" バージョンでなければなりません。The node pool minor version must be within two minor versions of the control plane version.
    • ノード プールのバージョンを、コントロールの major.minor.patch バージョンよりも大きくすることはできません。The node pool version cannot be greater than the control major.minor.patch version.
  • アップグレード操作を送信するための規則:Rules for submitting an upgrade operation:

    • コントロール プレーンでも、ノード プールでも、Kubernetes バージョンをダウングレードすることはできません。You cannot downgrade the control plane or a node pool Kubernetes version.
    • ノード プールの Kubernetes バージョンが指定されていない場合、動作は使用中のクライアントによって異なります。If a node pool Kubernetes version is not specified, behavior depends on the client being used. Resource Manager テンプレートの宣言は、ノード プールに対して定義されている既存のバージョンが使用される場合、そのバージョンにフォールバックします。何も設定されていない場合、フォールバックのためにコントロール プレーン バージョンが使用されます。Declaration in Resource Manager templates falls back to the existing version defined for the node pool if used, if none is set the control plane version is used to fall back on.
    • 特定の時点でコントロール プレーンまたはノード プールのアップグレードまたはスケーリングのどちらかを行うことはできますが、単一のコントロール プレーンまたはノード プール リソースに対して複数の操作を同時に送信することはできません。You can either upgrade or scale a control plane or a node pool at a given time, you cannot submit multiple operations on a single control plane or node pool resource simultaneously.

ノード プールの手動でのスケーリングScale a node pool manually

お使いのアプリケーションのワークロードに対する需要の変化に伴い、ノード プール内のノード数をスケーリングしなければならなくなる場合があります。As your application workload demands change, you may need to scale the number of nodes in a node pool. ノード数は増やすことも減らすことも可能です。The number of nodes can be scaled up or down.

ノード プール内のノード数をスケーリングするには、az aks node pool scale コマンドを使用します。To scale the number of nodes in a node pool, use the az aks node pool scale command. 次の例では、mynodepool 内のノード数を 5 にスケーリングしています。The following example scales the number of nodes in mynodepool to 5:

az aks nodepool scale \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-count 5 \
    --no-wait

az aks node pool list コマンドを使用し、再度お使いのノード プールの状態を一覧表示します。List the status of your node pools again using the az aks node pool list command. 次の例では、mynodepool が新しいノード数の 5Scaling の状態であることを示しています。The following example shows that mynodepool is in the Scaling state with a new count of 5 nodes:

az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster
[
  {
    ...
    "count": 5,
    ...
    "name": "mynodepool",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Scaling",
    ...
    "vmSize": "Standard_DS2_v2",
    ...
  },
  {
    ...
    "count": 2,
    ...
    "name": "nodepool1",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Succeeded",
    ...
    "vmSize": "Standard_DS2_v2",
    ...
  }
]

スケーリングの操作の完了には、数分かかります。It takes a few minutes for the scale operation to complete.

クラスター オートスケーラーを有効にすることで特定のノード プールを自動的にスケーリングするScale a specific node pool automatically by enabling the cluster autoscaler

AKS には、クラスター オートスケーラーと呼ばれる機能を使用してノード プールを自動的にスケーリングするための独立した機能が用意されています。AKS offers a separate feature to automatically scale node pools with a feature called the cluster autoscaler. この機能は、ノード プールごとに一意の最小および最大スケール カウントを使用して、ノード プールごとに有効にすることができます。This feature can be enabled per node pool with unique minimum and maximum scale counts per node pool. ノード プールごとのクラスター オートスケーラーを使用する方法を参照してください。Learn how to use the cluster autoscaler per node pool.

ノード プールの削除Delete a node pool

プールが不要になったら、それを削除して、基になっている VM を削除します。If you no longer need a pool, you can delete it and remove the underlying VM nodes. ノード プールを削除するには、az aks node pool delete コマンドを使用し、ノード プール名を指定します。To delete a node pool, use the az aks node pool delete command and specify the node pool name. 次の例では、前の手順で作成した mynoodepool を削除します。The following example deletes the mynoodepool created in the previous steps:

注意事項

ノード プールの削除で失われたデータを復元するオプションはありません。There are no recovery options for data loss that may occur when you delete a node pool. その他のノード プールでポッドをスケジューリングできない場合、それらのアプリケーションは利用できません。If pods can't be scheduled on other node pools, those applications are unavailable. 使用中のアプリケーションにデータ バックアップがない場合や、お使いのクラスター内の他のノード プールで実行する機能がない場合は、ノード プールは削除しないでください。Make sure you don't delete a node pool when in-use applications don't have data backups or the ability to run on other node pools in your cluster.

az aks nodepool delete -g myResourceGroup --cluster-name myAKSCluster --name mynodepool --no-wait

次の az aks node pool list コマンドでの出力例では、mynodepoolDeleting の状態であることを示しています。The following example output from the az aks node pool list command shows that mynodepool is in the Deleting state:

az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster
[
  {
    ...
    "count": 5,
    ...
    "name": "mynodepool",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Deleting",
    ...
    "vmSize": "Standard_DS2_v2",
    ...
  },
  {
    ...
    "count": 2,
    ...
    "name": "nodepool1",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Succeeded",
    ...
    "vmSize": "Standard_DS2_v2",
    ...
  }
]

ノードおよびノード プールの削除には数分かかります。It takes a few minutes to delete the nodes and the node pool.

ノード プールの VM サイズの指定Specify a VM size for a node pool

前のノード プールの作成例では、クラスターに作成したノードに、既定の VM サイズを使用しました。In the previous examples to create a node pool, a default VM size was used for the nodes created in the cluster. より一般的なシナリオでは、さまざまなサイズおよび性能の VM のノード プールが作成されます。A more common scenario is for you to create node pools with different VM sizes and capabilities. たとえば、大きな CPU またはメモリのノードが含まれるノード プール、または GPU をサポートするノード プールが作成されます。For example, you may create a node pool that contains nodes with large amounts of CPU or memory, or a node pool that provides GPU support. 次の手順では、taints と tolerations を使用して、Kubernetes スケジューラにこれらのノードで実行されるポッドに対するアクセスを制限する方法を通知します。In the next step, you use taints and tolerations to tell the Kubernetes scheduler how to limit access to pods that can run on these nodes.

次の例では、Standard_NC6 の VM サイズを使用する GPU ベースのノード プールを作成します。In the following example, create a GPU-based node pool that uses the Standard_NC6 VM size. これらの VM は NVIDIA Tesla K80 カードを搭載しています。These VMs are powered by the NVIDIA Tesla K80 card. 使用可能な VM サイズの詳細については、「Azure での Linux VM のサイズ」を参照してください。For information on available VM sizes, see Sizes for Linux virtual machines in Azure.

再度 az aks node pool add コマンドを使用して、ノード プールを作成します。Create a node pool using the az aks node pool add command again. 今回は、次のように gpunodepool を名前として指定し、Standard_NC6 サイズを --node-vm-size パラメーターを使用して指定します。This time, specify the name gpunodepool, and use the --node-vm-size parameter to specify the Standard_NC6 size:

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name gpunodepool \
    --node-count 1 \
    --node-vm-size Standard_NC6 \
    --no-wait

az aks node pool list コマンドの次の出力例では、gpunodepool によって指定した VmSize を使用してノードが Creating されていることを示しています。The following example output from the az aks node pool list command shows that gpunodepool is Creating nodes with the specified VmSize:

az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster
[
  {
    ...
    "count": 1,
    ...
    "name": "gpunodepool",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Creating",
    ...
    "vmSize": "Standard_NC6",
    ...
  },
  {
    ...
    "count": 2,
    ...
    "name": "nodepool1",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Succeeded",
    ...
    "vmSize": "Standard_DS2_v2",
    ...
  }
]

gpunodepool が正常に作成されるには、数分かかります。It takes a few minutes for the gpunodepool to be successfully created.

テイント、ラベル、またはタグをノード プールに指定するSpecify a taint, label, or tag for a node pool

ノード プールのテイントの設定Setting nodepool taints

ノード プールを作成するときに、テイント、ラベル、タグをそのノード プールに追加できます。When creating a node pool, you can add taints, labels, or tags to that node pool. テイント、ラベル、タグを追加すると、そのノード プール内のすべてのノードもそのテイント、ラベル、タグを取得します。When you add a taint, label, or tag, all nodes within that node pool also get that taint, label, or tag.

テイントが指定されたノード プールを作成するには、az aks nodepool add を使用します。To create a node pool with a taint, use az aks nodepool add. 名前 taintnp を指定し、--node-taints パラメーターを使用してテイントに sku=gpu:NoSchedule を指定します。Specify the name taintnp and use the --node-taints parameter to specify sku=gpu:NoSchedule for the taint.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name taintnp \
    --node-count 1 \
    --node-taints sku=gpu:NoSchedule \
    --no-wait

注意

テイントは、ノード プールを作成するときにノード プールに対してのみ設定できます。A taint can only be set for node pools during node pool creation.

az aks nodepool list コマンドからの次の出力例では、taintnp によって、指定した nodeTaints でノードが "作成されている" ことが示されています。The following example output from the az aks nodepool list command shows that taintnp is Creating nodes with the specified nodeTaints:

$ az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster

[
  {
    ...
    "count": 1,
    ...
    "name": "taintnp",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Creating",
    ...
    "nodeTaints":  [
      "sku=gpu:NoSchedule"
    ],
    ...
  },
 ...
]

テイントの情報は、ノードのスケジューリング規則を処理するために Kubernetes に表示されます。The taint information is visible in Kubernetes for handling scheduling rules for nodes. Kubernetes スケジューラでは、テイントと容認を使用して、ノードで実行できるワークロードを制限できます。The Kubernetes scheduler can use taints and tolerations to restrict what workloads can run on nodes.

  • テイント は、ノードに適用されて、特定のポッドのみをそのノードでスケジュールできることを示します。A taint is applied to a node that indicates only specific pods can be scheduled on them.
  • 容認 は、ポッドに適用されて、ポッドがノードのテイントを "許容する" ことを許可します。A toleration is then applied to a pod that allows them to tolerate a node's taint.

Kubernetes での高度なスケジューラ機能の詳細については、「Azure Kubernetes Service (AKS) での高度なスケジューラ機能に関するベスト プラクティス」を参照してください。For more information on how to use advanced Kubernetes scheduled features, see Best practices for advanced scheduler features in AKS

前の手順では、ノード プールの作成時に sku=gpu:NoSchedule テイントを適用しました。In the previous step, you applied the sku=gpu:NoSchedule taint when you created your node pool. 次の YAML マニフェストの基本例では、Kubernetes スケジューラがそのノードプール内のノードで NGINX ポッドを実行できるように toleration を使用しています。The following basic example YAML manifest uses a toleration to allow the Kubernetes scheduler to run an NGINX pod on a node in that node pool.

nginx-toleration.yaml という名前のファイルを作成し、次の例の YAML にコピーします。Create a file named nginx-toleration.yaml and copy in the following example YAML:

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - image: mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine
    name: mypod
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 1
        memory: 2G
  tolerations:
  - key: "sku"
    operator: "Equal"
    value: "gpu"
    effect: "NoSchedule"

kubectl apply -f nginx-toleration.yaml コマンドを使用してポッドをスケジュールします。Schedule the pod using the kubectl apply -f nginx-toleration.yaml command:

kubectl apply -f nginx-toleration.yaml

ポッドのスケジュールおよび NGINX イメージのプルには、数秒かかります。It takes a few seconds to schedule the pod and pull the NGINX image. kubectl describe pod コマンドを使用して、ポッドの状態を参照します。Use the kubectl describe pod command to view the pod status. 次の縮約された出力例では、sku = gpu:NoSchedule toleration を適用しています。The following condensed example output shows the sku=gpu:NoSchedule toleration is applied. イベント セクションで、スケジューラによってポッドが aks-taintnp-28993262-vmss000000 ノードに割り当てられています。In the events section, the scheduler has assigned the pod to the aks-taintnp-28993262-vmss000000 node:

kubectl describe pod mypod
[...]
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
                 sku=gpu:NoSchedule
Events:
  Type    Reason     Age    From                Message
  ----    ------     ----   ----                -------
  Normal  Scheduled  4m48s  default-scheduler   Successfully assigned default/mypod to aks-taintnp-28993262-vmss000000
  Normal  Pulling    4m47s  kubelet             pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine"
  Normal  Pulled     4m43s  kubelet             Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine"
  Normal  Created    4m40s  kubelet             Created container
  Normal  Started    4m40s  kubelet             Started container

taintnp のノードでスケジュールできるのは、この toleration が適用されているポッドのみです。Only pods that have this toleration applied can be scheduled on nodes in taintnp. その他のポッドは、nodepool1 ノード プールにスケジュールされます。Any other pod would be scheduled in the nodepool1 node pool. ノード プールを追加作成した場合、追加の taints と tolerations を使用して、それらのノード リソースにどのようなポッドをスケジュールするか制限できます。If you create additional node pools, you can use additional taints and tolerations to limit what pods can be scheduled on those node resources.

ノード プールのラベルの設定Setting nodepool labels

ノード プールを作成するときに、ラベルをノード プールに追加することもできます。You can also add labels to a node pool during node pool creation. ノード プールに設定されたラベルは、ノード プールの各ノードに追加されます。Labels set at the node pool are added to each node in the node pool. ノードのスケジューリング規則を処理するため、これらのラベルは Kubernetes に表示されます。These labels are visible in Kubernetes for handling scheduling rules for nodes.

ラベルが追加されたノード プールを作成するには、az aks nodepool add を使用します。To create a node pool with a label, use az aks nodepool add. 名前 labelnp を指定し、--labels パラメーターを使用して、dept=ITcostcenter=9999 をラベルに指定します。Specify the name labelnp and use the --labels parameter to specify dept=IT and costcenter=9999 for labels.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name labelnp \
    --node-count 1 \
    --labels dept=IT costcenter=9999 \
    --no-wait

注意

ラベルは、ノード プールを作成するときにノード プールに対してのみ設定できます。Label can only be set for node pools during node pool creation. また、ラベルはキーと値のペアであり、有効な構文で指定されている必要があります。Labels must also be a key/value pair and have a valid syntax.

az aks nodepool list コマンドからの次の出力例では、labelnp によって、指定した nodeLabels でノードが "作成されている" ことが示されています。The following example output from the az aks nodepool list command shows that labelnp is Creating nodes with the specified nodeLabels:

$ az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster

[
  {
    ...
    "count": 1,
    ...
    "name": "labelnp",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Creating",
    ...
    "nodeLabels":  {
      "dept": "IT",
      "costcenter": "9999"
    },
    ...
  },
 ...
]

ノード プールの Azure タグの設定Setting nodepool Azure tags

AKS クラスター内のノード プールに Azure タグを適用できます。You can apply an Azure tag to node pools in your AKS cluster. ノード プールに適用されるタグは、ノード プール内の各ノードに適用され、アップグレードによって保持されます。Tags applied to a node pool are applied to each node within the node pool and are persisted through upgrades. また、スケールアウト操作中にノード プールに追加される新しいノードにもタグが適用されます。Tags are also applied to new nodes added to a node pool during scale-out operations. タグを追加すると、ポリシーの追跡やコスト見積もりなどのタスクに役立ちます。Adding a tag can help with tasks such as policy tracking or cost estimation.

Azure タグには、キーを検索してタグを取得する場合などに操作の大文字と小文字を区別しないキーがあります。Azure tags have keys which are case-insensitive for operations, such as when retrieving a tag by searching the key. この場合、指定されたキーを持つタグは、大文字/小文字の違いに関係なく更新または取得されます。In this case a tag with the given key will be updated or retrieved regardless of casing. タグの値は大文字と小文字が区別されます。Tag values are case-sensitive.

AKS では、複数のタグが同じキーで設定され、大文字/小文字が異なる場合、使用されるタグはアルファベット順で最初のものになります。In AKS, if multiple tags are set with identical keys but different casing, the tag used is the first in alphabetical order. たとえば、{"Key1": "val1", "kEy1": "val2", "key1": "val3"} の場合は Key1val1 が設定されます。For example, {"Key1": "val1", "kEy1": "val2", "key1": "val3"} results in Key1 and val1 being set.

az aks nodepool add を使用してノード プールを作成します。Create a node pool using the az aks nodepool add. 名前 tagnodepool を指定し、--tag パラメーターを使用して、dept = ITcostcenter=9999 をタグに指定します。Specify the name tagnodepool and use the --tag parameter to specify dept=IT and costcenter=9999 for tags.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name tagnodepool \
    --node-count 1 \
    --tags dept=IT costcenter=9999 \
    --no-wait

注意

--tags パラメーターは、az aks nodepool update コマンドを使用する場合やクラスターの作成時にも使用できます。You can also use the --tags parameter when using az aks nodepool update command as well as during cluster creation. クラスターの作成時に、--tags パラメーターを指定すると、そのクラスターで作成される最初のノード プールにタグが適用されます。During cluster creation, the --tags parameter applies the tag to the initial node pool created with the cluster. すべてのタグ名は、「タグを使用した Azure リソースの整理」の制限に従う必要があります。All tag names must adhere to the limitations in Use tags to organize your Azure resources. --tags パラメーターを使用してノード プールを更新すると、既存のタグ値が更新され、新しいタグが追加されます。Updating a node pool with the --tags parameter updates any existing tag values and appends any new tags. たとえば、ノード プールにタグの dept=ITcostcenter=9999 があった場合は、タグの team=devcostcenter=111 で更新すると、ノードプールには、タグの dept=ITcostcenter=111team=dev が含まれます。For example, if your node pool had dept=IT and costcenter=9999 for tags and you updated it with team=dev and costcenter=111 for tags, you nodepool would have dept=IT, costcenter=111, and team=dev for tags.

az aks nodepool list コマンドの次の出力例は、tagnodepool によって、指定した "タグ" を使用してノードが Creating されていることを示しています。The following example output from the az aks nodepool list command shows that tagnodepool is Creating nodes with the specified tag:

az aks nodepool list -g myResourceGroup --cluster-name myAKSCluster
[
  {
    ...
    "count": 1,
    ...
    "name": "tagnodepool",
    "orchestratorVersion": "1.15.7",
    ...
    "provisioningState": "Creating",
    ...
    "tags": {
      "dept": "IT",
      "costcenter": "9999"
    },
    ...
  },
 ...
]

Resource Manager テンプレートを使用したノード プールの管理Manage node pools using a Resource Manager template

作成する Azure Resource Manager テンプレートと管理対象リソースを使用する場合、通常、テンプレート内の設定を更新し、再デプロイしてリソースを更新できます。When you use an Azure Resource Manager template to create and managed resources, you can typically update the settings in your template and redeploy to update the resource. AKS 内のノード プールでは、AKS クラスターが作成されると、初期ノード プール プロファイルは更新できません。With node pools in AKS, the initial node pool profile can't be updated once the AKS cluster has been created. この動作は、既存の Resource Manager テンプレートの更新、ノード プールへの変更、再デプロイが行えないことを意味します。This behavior means that you can't update an existing Resource Manager template, make a change to the node pools, and redeploy. 代わりに、既存の AKS クラスターのノード プールのみを更新する別の Resource Manager テンプレートを作成する必要があります。Instead, you must create a separate Resource Manager template that updates only the node pools for an existing AKS cluster.

aks-agentpools.json などのテンプレートを作成し、次のマニフェスト例を貼り付けます。Create a template such as aks-agentpools.json and paste the following example manifest. このテンプレートの例は、次の設定を構成します。This example template configures the following settings:

  • 3 つのノードを実行するように、myagentpool という Linux ノード プールを更新します。Updates the Linux node pool named myagentpool to run three nodes.
  • Kubernetes バージョン 1.15.7 を実行するように、ノード プール内のノードを設定します。Sets the nodes in the node pool to run Kubernetes version 1.15.7.
  • Standard_DS2_v2 とノード サイズを定義します。Defines the node size as Standard_DS2_v2.

必要に応じてこれらの値を編集し、ノード プールを更新、追加、または削除します。Edit these values as need to update, add, or delete node pools as needed:

{
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "clusterName": {
            "type": "string",
            "metadata": {
                "description": "The name of your existing AKS cluster."
            }
        },
        "location": {
            "type": "string",
            "metadata": {
                "description": "The location of your existing AKS cluster."
            }
        },
        "agentPoolName": {
            "type": "string",
            "defaultValue": "myagentpool",
            "metadata": {
                "description": "The name of the agent pool to create or update."
            }
        },
        "vnetSubnetId": {
            "type": "string",
            "defaultValue": "",
            "metadata": {
                "description": "The Vnet subnet resource ID for your existing AKS cluster."
            }
        }
    },
    "variables": {
        "apiVersion": {
            "aks": "2020-01-01"
        },
        "agentPoolProfiles": {
            "maxPods": 30,
            "osDiskSizeGB": 0,
            "agentCount": 3,
            "agentVmSize": "Standard_DS2_v2",
            "osType": "Linux",
            "vnetSubnetId": "[parameters('vnetSubnetId')]"
        }
    },
    "resources": [
        {
            "apiVersion": "2020-01-01",
            "type": "Microsoft.ContainerService/managedClusters/agentPools",
            "name": "[concat(parameters('clusterName'),'/', parameters('agentPoolName'))]",
            "location": "[parameters('location')]",
            "properties": {
                "maxPods": "[variables('agentPoolProfiles').maxPods]",
                "osDiskSizeGB": "[variables('agentPoolProfiles').osDiskSizeGB]",
                "count": "[variables('agentPoolProfiles').agentCount]",
                "vmSize": "[variables('agentPoolProfiles').agentVmSize]",
                "osType": "[variables('agentPoolProfiles').osType]",
                "storageProfile": "ManagedDisks",
                "type": "VirtualMachineScaleSets",
                "vnetSubnetID": "[variables('agentPoolProfiles').vnetSubnetId]",
                "orchestratorVersion": "1.15.7"
            }
        }
    ]
}

次の例に示すように、az deployment group create コマンドを使用してこのテンプレートをデプロイします。Deploy this template using the az deployment group create command, as shown in the following example. 既存の AKS クラスターの名前と場所を求められます。You are prompted for the existing AKS cluster name and location:

az deployment group create \
    --resource-group myResourceGroup \
    --template-file aks-agentpools.json

ヒント

次の例に示すように、テンプレートに tag プロパティを追加することで、ノード プールにタグを追加できます。You can add a tag to your node pool by adding the tag property in the template, as shown in the following example.

...
"resources": [
{
  ...
  "properties": {
    ...
    "tags": {
      "name1": "val1"
    },
    ...
  }
}
...

Resource Manager テンプレートで定義するノード プール設定および操作に応じて、AKS クラスターの更新には数分かかる場合があります。It may take a few minutes to update your AKS cluster depending on the node pool settings and operations you define in your Resource Manager template.

ノード プールのノードごとにパブリック IP を割り当てる (プレビュー)Assign a public IP per node for your node pools (preview)

警告

ノードごとにパブリック IP を割り当てる機能を使用するには、CLI プレビュー版拡張機能 0.4.43 以上をインストールする必要があります。You must install the CLI preview extension 0.4.43 or greater to use the public IP per node feature.

AKS ノードは、通信用に独自のパブリック IP アドレスを必要としません。AKS nodes do not require their own public IP addresses for communication. ただし、シナリオでは、ノード プール内のノードが専用のパブリック IP アドレスを受け取ることが必要な場合があります。However, scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. 一般的なシナリオとしては、ゲームのワークロードがあります。この場合、ホップを最小限に抑えるために、コンソールをクラウド仮想マシンに直接接続する必要があります。A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. このシナリオは、プレビュー機能であるノード パブリック IP (プレビュー) を登録することにより、AKS で実現することができます。This scenario can be achieved on AKS by registering for a preview feature, Node Public IP (preview).

最新の aks-preview 拡張機能をインストールして更新するには、次の Azure CLI コマンドを使用します。To install and update the latest aks-preview extension, use the following Azure CLI commands:

az extension add --name aks-preview
az extension update --name aks-preview
az extension list

ノード パブリック IP 機能を登録するには、次の Azure CLI コマンドを使用します。Register for the Node Public IP feature with the following Azure CLI command:

az feature register --name NodePublicIPPreview --namespace Microsoft.ContainerService

機能の登録には数分かかる場合があります。It may take several minutes for the feature to register. 状態を確認するには、次のコマンドを使用します。You can check the status with the following command:

 az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/NodePublicIPPreview')].{Name:name,State:properties.state}"

登録が正常に完了したら、新しいリソース グループを作成します。After successful registration, create a new resource group.

az group create --name myResourceGroup2 --location eastus

新しい AKS クラスターを作成し、ノードのパブリック IP を接続します。Create a new AKS cluster and attach a public IP for your nodes. ノード プール内の各ノードは、一意のパブリック IP を受け取ります。Each of the nodes in the node pool receives a unique public IP. これを確認するには、仮想マシン スケール セットのインスタンスを参照します。You can verify this by looking at the Virtual Machine Scale Set instances.

az aks create -g MyResourceGroup2 -n MyManagedCluster -l eastus  --enable-node-public-ip

既存の AKS クラスターの場合は、新しいノード プールを追加し、ノードのパブリック IP を接続することもできます。For existing AKS clusters, you can also add a new node pool, and attach a public IP for your nodes.

az aks nodepool add -g MyResourceGroup2 --cluster-name MyManagedCluster -n nodepool2 --enable-node-public-ip

重要

プレビュー期間中、Azure Instance Metadata Service は、現在 Standard レベルの VM SKU のパブリック IP アドレスの取得をサポートしていません。During preview, the Azure Instance Metadata Service doesn't currently support retrieval of public IP addresses for the standard tier VM SKU. この制限のため、kubectl コマンドを使用して、ノードに割り当てられているパブリック IP アドレスを表示することはできません。Due to this limitation, you can't use kubectl commands to display the public IPs assigned to the nodes. ただし、IP は割り当てられ、意図したとおりに機能します。However, the IPs are assigned and function as intended. ノードのパブリック IP は、仮想マシン スケール セット内のインスタンスに接続されます。The public IPs for your nodes are attached to the instances in your Virtual Machine Scale Set.

ノードのパブリック IP は、さまざまな方法で見つけることができます。You can locate the public IPs for your nodes in various ways:

重要

ノード リソース グループには、ノードとそのパブリック IP が含まれています。The node resource group contains the nodes and their public IPs. ノードのパブリック IP を検索するコマンドを実行するときは、ノード リソース グループを使用します。Use the node resource group when executing commands to find the public IPs for your nodes.

az vmss list-instance-public-ips -g MC_MyResourceGroup2_MyManagedCluster_eastus -n YourVirtualMachineScaleSetName

リソースをクリーンアップするClean up resources

この記事では、GPU ベースのノードを含む AKS クラスターを作成しました。In this article, you created an AKS cluster that includes GPU-based nodes. 不要なコストを減らすには、gpunodepool、または AKS クラスター全体を削除してください。To reduce unnecessary cost, you may want to delete the gpunodepool, or the whole AKS cluster.

GPU ベースのノード プールを削除するには、次の例のように az aks nodepool delete コマンドを使用します。To delete the GPU-based node pool, use the az aks nodepool delete command as shown in following example:

az aks nodepool delete -g myResourceGroup --cluster-name myAKSCluster --name gpunodepool

クラスター自体を削除するには、az group delete コマンドを使用して AKS リソース グループを削除します。To delete the cluster itself, use the az group delete command to delete the AKS resource group:

az group delete --name myResourceGroup --yes --no-wait

また、ノード プールのパブリック IP のシナリオで作成した追加のクラスターを削除することもできます。You can also delete the additional cluster you created for the public IP for node pools scenario.

az group delete --name myResourceGroup2 --yes --no-wait

次のステップNext steps

システム ノード プールの詳細情報Learn more about system node pools.

この記事では、AKS クラスターで複数のノード プールを作成および管理する方法を学習しました。In this article, you learned how to create and manage multiple node pools in an AKS cluster. すべてのノード プールのポッドを制御する方法の詳細については、「Azure Kubernetes Service (AKS) での高度なスケジューラ機能に関するベスト プラクティス」を参照してください。For more information about how to control pods across node pools, see Best practices for advanced scheduler features in AKS.

Windows Server コンテナー ノード プールを作成して使用するには、AKS での Windows Server コンテナーの作成に関する記事を参照してください。To create and use Windows Server container node pools, see Create a Windows Server container in AKS.

近接配置グループを使用して、AKS アプリケーションの待機時間を短縮します。Use proximity placement groups to reduce latency for your AKS applications.