Azure Kubernetes Service (AKS) クラスターのノードの数を手動でスケーリングする
アプリケーションのリソースニーズが変化した場合、CPU、メモリ、PID 領域、またはディスク サイズの容量が少ないために、クラスターのパフォーマンスが影響を受ける可能性があります。 これらの変化に対処するために、AKS クラスターを手動でスケーリングして、実行するノードの数を変えることができます。 スケールインの際には、実行中のアプリケーションの中断を最小限に抑えるために、ノードは慎重に切断およびドレインされます。 スケールアウトの際には、AKS は、ノードが Kubernetes クラスターによって準備完了とマークされるまで待機してから、それらに対してポッドがスケジュール化されます。
この記事では、AKS クラスターのノードの数を手動で増減する方法について説明します。
開始する前に
AKS サービスのクォータと制限に関する記事を参照して、希望するノード数までクラスターをスケーリングできることを確認します。
ノード プールの名前は、小文字の英数字のみを含めることができ、小文字で始める必要があります。
- Linux のノード プールの長さは、1 から 11 文字の範囲内である必要があります。
- Windows のノード プールの長さは、1 から 6 文字の範囲内である必要があります。
クラスター ノードのスケーリング
重要
kubectl コマンドを使用したノード プールからのノードの削除はサポートされていません。 これを行うと、AKS クラスターでスケーリングに関する問題が発生する可能性があります。
az aks show
コマンドを使用してノード プールの "名前" を取得します。 次の例では、myResourceGroup リソース グループ内の myAKSCluster という名前のクラスターのノード プール名を取得します。az aks show --resource-group myResourceGroup --name myAKSCluster --query agentPoolProfiles
次の出力例は、name が nodepool1 であることを示しています。
[ { "count": 1, "maxPods": 110, "name": "nodepool1", "osDiskSizeGb": 30, "osType": "Linux", "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", "vmSize": "Standard_DS2_v2", "vnetSubnetId": null } ], [...] }
User
ノード プールを 0 にスケーリングする
常に実行中のノードを必要とする System
ノード プールとは異なり、User
ノード プールでは 0 にスケーリングできます。 システムとユーザー ノード プールの違いについては、「システムおよびユーザー ノード プール」を参照してください。
重要
クラスター オートスケーラーが有効になっているユーザー ノード プールを 0 ノードにスケーリングすることはできません。 ユーザー ノード プールを 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
ノード プールをゼロ ノードに自動スケーリングすることもできます。
次のステップ
この記事では、AKS クラスターを手動でスケールしてノード数を増減しました。 クラスターの自動スケーラーを使用してクラスターを自動的にスケーリングすることもできます。
Azure Kubernetes Service