
制作ノート
Azure Kubernetes Service (AKS) + nginx-ingressで固定IPを使う
AKS上のnginx ingress controllerに固定のパブリックIPを割り当てるための実装記録。
GCPの経験があったため、GKEでnginx-ingressを使用するクラスターに固定IPを設定する作業は、kubernetes.io/ingress.global-static-ip-nameアノテーションを使えば簡単でした。
一方、Azure Kubernetes Service (AKS)で同じ設定を行う方法は資料が少なかったため、短い手順としてまとめます。
手順
1. Azureポータルで、クラスターのリソースグループを指定してPublic IP Addressを作成します。

2. nginx-ingressをインストールし、手順1で作成したIPをloadBalancerIPに設定します。
STATIC_IP=<your static IP here>
helm upgrade --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx \
--namespace ingress-nginx \
--create-namespace \
--set rbac.create=true \
--set controller.stats.enabled=true \
--set controller.metrics.enabled=true \
--set controller.service.externalTrafficPolicy="Local" \
--set controller.service.loadBalancerIP=$STATIC_IP3. 新しいLoadBalancerリソースを監視します。数秒後、手順1の固定IPが表示されます。

その他の注意点
- kubectlでnginx-ingressをインストールする場合は、ingress-nginx-controller Serviceのspec.loadBalancerIPを更新するだけです。
- カスタムリソースグループを指定する方法もありますが、ここではパブリックIP側をk8sクラスターに合わせるため、この方法が最も簡単です。