Azure Kubernetes Service (AKS) クラスターでノードの数をスケーリングする

アプリケーションのリソースニーズが変化した場合、CPU、メモリ、PID 領域、またはディスク サイズの容量が少ないために、クラスターのパフォーマンスが影響を受ける可能性があります。 これらの変化に対処するために、AKS クラスターを手動でスケーリングして、実行するノードの数を変えることができます。 スケール ダウンするときには、実行中のアプリケーションの中断を最小限に抑えるために、ノードは慎重に切断およびドレインされます。 スケールアップすると、AKS では、ノードが Kubernetes クラスターによって [準備完了] とマークされるまで待機してから、それらに対してポッドがスケジュール化されます。

クラスター ノードのスケーリング

Note

kubectl コマンドを使用したノード プールからのノードの削除はサポートされていません。 これを行うと、AKS クラスターでスケーリングに関する問題が発生する可能性があります。

最初に、az aks show コマンドを使用してノード プールの名前を取得します。 次の例では、myResourceGroup リソース グループ内の myAKSCluster という名前のクラスターのノード プール名を取得します。

az aks show --resource-group myResourceGroup --name myAKSCluster --query agentPoolProfiles

次の出力例は、namenodepool1 であることを示しています。

[
  {
    "count": 1,
    "maxPods": 110,
    "name": "nodepool1",
    "osDiskSizeGb": 30,
    "osType": "Linux",
    "storageProfile": "ManagedDisks",
    "vmSize": "Standard_DS2_v2"
  }
]

az aks scale コマンドを使用してクラスター ノードをスケーリングします。 次の例では、myAKSCluster という名前のクラスターを単一のノードにスケーリングします。 nodepool1 など、前のコマンドから返された独自の --nodepool-name を指定します。

az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 1 --nodepool-name <your node pool name>

次の出力例は、agentPoolProfiles セクションに示されているように、クラスターが正常に 1 つのノードにスケーリングされたことを示しています。

{
  "aadProfile": null,
  "addonProfiles": null,
  "agentPoolProfiles": [
    {
      "count": 1,
      "maxPods": 110,
      "name": "nodepool1",
      "osDiskSizeGb": 30,
      "osType": "Linux",
      "storageProfile": "ManagedDisks",
      "vmSize": "Standard_DS2_v2",
      "vnetSubnetId": null
    }
  ],
  [...]
}

User ノード プールを 0 にスケーリングする

常に実行中のノードを必要とする System ノード プールとは異なり、User ノード プールでは 0 にスケーリングできます。 システムとユーザー ノード プールの違いについては、「システムおよびユーザー ノード プール」を参照してください。

ユーザー プールを 0 にスケーリングするには、上記の az aks scale コマンドの代わりに az aks nodepool scale を使用し、ノード数として 0 を設定します。

az aks nodepool scale --name <your node pool name> --cluster-name myAKSCluster --resource-group myResourceGroup  --node-count 0 

また、クラスター オートスケーラー--min-count パラメーターを 0 に設定することによって、User ノード プールを 0 ノードに自動スケーリングすることもできます。

次の手順

この記事では、AKS クラスターを手動でスケールしてノード数を増減しました。 クラスターの自動スケーラーを使用してクラスターを自動的にスケーリングすることもできます。