AKS で AGIC アドオンを有効化する手順と注意点【Azure CNI Overlay編】
はじめに
プレビュー機能ではありますが、近頃、Azure CNI Overlay を使用する AKS でも、AGIC の利用がサポートされるようになりました。
そこで、実際に AKS で AGIC アドオンを有効化してみましたが、公式ドキュメントに記載の手順だけでは有効化できなかったため、有効化手順についてご紹介させていただきます。
プレビュー機能の注意点
プレビュー機能は、今後動作が変更される場合や、機能自体が廃止される可能性があるため、運用環境での利用は推奨されていません。
当該機能がプレビュー機能として提供されているか、あるいは一般提供 (GA) されたかについては、以下のリンクよりご確認いただけます。
なお、当該機能が一般提供 (GA) された場合は、AKS のロードマップ上で、「Public Preview」から「Generally Available」に移動されますので、そこで判断ができます。
用語解説
Azure CNI Overlayとは、従来の kubenet に置き換わる AKS の Pod のネットワークモデルです。kubenet は 2028 年に廃止が予定されています。
グリーンフィールドデプロイとは、新しく環境を作成すること。
ブラウンフィールドデプロイとは、既存のリソースを活用して環境を作成すること。
前提条件
- 動作確認日時: 2025/06/24
- 動作確認した環境: Kubernetes バージョン 1.31.8 の AKS クラスター
- コマンド実行環境: Azure Cloud Shell
必要な準備
- AKS を起動する。
- Azure CLI を最新バージョンにしておく。
az upgrade
AGIC アドオンの有効化手順について 【Azure CNI Overlay編】
- Azure CLI で機能フラグ 「AppGatewayWithOverlayPreview」 を有効化します。
az feature register --namespace "Microsoft.ContainerService" --name AppGatewayWithOverlayPreview
- Azure CNI Overlay を使用する AKS を作成します。
az aks create -n "AKS の名称" -g "リソースグループの名称" --network-plugin azure --network-plugin-mode overlay --generate-ssh-keys
- 既存の AKS で、AKS カスタムヘッダーを使用して、AGIC アドオンを有効化します。
az aks enable-addons -n "AKS の名称" -g "リソースグループの名称" \
-a ingress-appgw \
--appgw-name "作成する AppGW の名称" \
--appgw-subnet-cidr "AppGW のデプロイ先のサブネットの IP アドレス範囲" \
--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/AppGatewayWithOverlayPreview
az aks enable-addons -n "AKS の名称" -g "リソースグループの名称" \
-a ingress-appgw \
--appgw-name "既存の AppGW の名称" \
--appgw-subnet-id "AppGW のデプロイ先のサブネットのリソース ID" \
--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/AppGatewayWithOverlayPreview
- AKS で AGIC アドオンが有効化されていることを確認する。
az aks show -n "AKS の名称" -g "リソースグループの名称"
addonProfiles > ingressApplicationGateway > "enabled": true" となっていれば、問題なし。
"addonProfiles": {
"ingressApplicationGateway": {
"config": {
"applicationGatewayName": "***",
"effectiveApplicationGatewayId": "***",
"subnetId": "***"
},
"enabled": true, #こちらの部分で確認が可能です。
よくあるトラブルと対処方法
- 事象: グリーンフィールドデプロイ時 (AKS の作成時) に、AGIC アドオンを有効化できない。
(BadRequest) Parameter aksHTTPCustomFeatures is not allowed.
Code: BadRequest
Message: Parameter aksHTTPCustomFeatures is not allowed.
- 原因: 動作確認しましたが、グリーンフィールドデプロイ時は、Azure CNI Overlay を使用する AKS では、AGIC アドオンを有効化できないようです。
- 対処方法: ブラウンフィールドデプロイにて AGIC アドオンを有効化する。
つまり、上述の手順どおり、AKS を作成した後、az aks enable-addons コマンドで AGIC アドオンを有効化します。
動作確認したコマンド
az aks create -n "AKS の名称" -g "リソースグループの名称" \
--network-plugin azure \
--network-plugin-mode overlay \
-a ingress-appgw \
--appgw-name "作成する AppGW の名称" \
--appgw-subnet-cidr "AppGW のデプロイ先のサブネットの IP アドレス範囲" \
--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/AppGatewayWithOverlayPreview \
--generate-ssh-keys
az aks create -n "AKS の名称" -g "リソースグループの名称" \
--network-plugin azure \
--network-plugin-mode overlay \
-a ingress-appgw \
--appgw-name "既存の AppGW の名称" \
--appgw-subnet-id "AppGW のデプロイ先のサブネットのリソース ID" \
--aks-custom-headers AKSHTTPCustomFeatures=Microsoft.ContainerService/AppGatewayWithOverlayPreview \
--generate-ssh-keys
IaC を利用する場合の注意点
以下の GitHub Issues によると、AKS カスタムヘッダーを使用して有効化された機能は、ARM テンプレートや Bicep などの IaC を使用して有効化できません。
そのため、Azure CLI を使用して、AGIC アドオンを有効化する必要があります。
その他の参考リンク
まとめ
この記事では、Azure CNI Overlay を使用する AKS で AGIC アドオンを有効化する方法について、ご紹介いたしました。
おわりに
もし、少しでもこの記事がお役に立てましたら、ぜひ "いいね" をお願いします。
また、今後も、AKS 関連の記事を書いていきますので、Zenn と X のフォローをどうぞよろしくお願いいたします。
Discussion