コマンド
$ export NODE_RESOURCE_GROUP=$(az aks show -g my-k8s-cluster -n my-cluster -o tsv --query nodeResourceGroup)
$ az network public-ip list -g $NODE_RESOURCE_GROUP -o tsv --query "[?!(tags.type == 'aks-slb-managed-outbound-ip')].ipAddress"
解説
- AKS クラスタのノードプールがあるリソースグループ名を取得
- リソースグループ名を指定して IP アドレスの一覧を取得しクエリでフィルタしたものを出力
フィルタ条件
ロードバランサ(ALB)の SKU が Standard の場合、 ALB に対し Public IP か IP プレフィックスが必ず 1つ必要になる。
この Public IP リソースはノードプールがあるリソースグループ上にデプロイされるので、Kubernetes 上で使用している Public IP と同じ場所に存在しているが、リソースタグで "type": "aks-slb-managed-outbound-ip"
が指定されているのでこれを省いた IP アドレスの一覧を取得している。
参考
Undocumented public IP in AKS-provisioned load balancer #1281 - GitHub