はじめに
AKSにノードプール追加した際、エラーで怒られたのですが、ブログなどで記事投稿されている方があまりいなかったので、備忘として投稿します。
エラー内容
既にsystemというノードプール(ノード数1)が存在するAKSに新たにsystem2というノードプール(ノード数2)を追加しようと'az aks nodepool add'を実行した際にエラーが発生しました。
(InvalidLoadBalancerProfileAllocatedOutboundPorts) Load balancer profile allocated ports 24000 is not in an allowable range given the number of nodes and IPs provisioned. Total node count 3 requires 72000 ports but only 64000 ports are available given 1 outbound public IPs. Refer to https://aka.ms/aks/slb-ports for more details.
Code: InvalidLoadBalancerProfileAllocatedOutboundPorts
Message: Load balancer profile allocated ports 24000 is not in an allowable range given the number of nodes and IPs provisioned. Total node count 3 requires 72000 ports but only 64000 ports are available given 1 outbound public IPs. Refer to https://aka.ms/aks/slb-ports for more details.
Target: networkProfile.loadBalancerProfile.allocatedOutboundPorts
LoadBalancerのポート数(24000)に対して、デプロイするノード数が多いよー!って怒られてますね。
実際にAKSのLoadBalancerを確認してみると…
ポート数は24000に設定されていますね。(※今回はQiita記事の為に敢えて24000という極端な例にしました。)
コマンドだと「az network lb outbound-rule list --resource-group [rg_name] -lb-name kubernetes -o table」で確認できます。
いくつならデプロイできるの?
MS公式ドキュメントによるとクラスタごとにいくつのノードをデプロイできるのかは
LBのエフェメラルポート数÷アウトバウンドポート数×送信IP数で算出できます。
今回に当てはめれば以下の式ですね。
64000÷24000×1=2.66666667
なので、このクラスタにデプロイできるのは最大2ノードということですね。
おわりに
こういった仕様は実作業で経験しないと中々把握できないので、ありがたい?経験でした。