注意事項
Kubernetes SIG Network とセキュリティ対応委員会は、イングレス NGINX プロジェクトの今後の廃止を発表し、メンテナンスは 2026 年 3 月に終了します。 現在、 NGINX でアプリケーション ルーティング アドオンを使用する AKS クラスターには、すぐに必要なアクションはありません。 Microsoft は、 2026 年 11 月まで、アプリケーション ルーティング アドオン NGINX イングレス リソースの重要なセキュリティ パッチの公式サポートを提供します。
AKS は、イングレスと L7 トラフィック管理の長期的な標準としてゲートウェイ API に移行することで、アップストリームの Kubernetes と連携しています。 現在のセットアップに基づいて、移行パスの計画を開始することをお勧めします。
- アプリケーション ルーティング アドオン ユーザー: 運用ワークロードは、2026 年 11 月まで完全にサポートされます。 ゲートウェイ API ベースのイングレス トラフィック管理エクスペリエンスのために、 アプリケーション ルーティング ゲートウェイ API の実装 に移行します。
-
OSS NGINX ユーザー には、いくつかのオプションがあります。
- NGINX を使用してアプリケーション ルーティング アドオンに移行し、長期的なゲートウェイ API の移行を計画しながら、2026 年 11 月までの公式サポートの恩恵を受けることができます。
- ゲートウェイ API ベースのイングレス トラフィック管理エクスペリエンスのために、 アプリケーション ルーティング ゲートウェイ API の実装 に移行します。
- イングレス API とゲートウェイ API の両方をサポートする Application Gateway for Containers に移行します。
- サービス メッシュ ユーザー: サービス メッシュを採用する予定の場合は、 Istio ベースのサービス メッシュ アドオンを検討してください。 Istio イングレスを今すぐ使用し、Istio Gateway API (現在は GA) への移行を計画します。
ハイパーテキスト転送プロトコル (HTTP) とセキュリティで保護された (HTTPS) トラフィックを、Azure Kubernetes Service (AKS) クラスターで実行されているアプリケーションにルーティングする 1 つの方法は、Kubernetes イングレス オブジェクトを使うことです。 NGINX でアプリケーション ルーティング アドオンを有効にすると、AKS クラスター内のイングレス コントローラーが作成、構成、および管理されます。
この記事では、マネージド NGINX イングレス コントローラーを有効にし、AKS クラスター内のアプリケーションにトラフィックをルーティングするようにイングレス オブジェクトを構成する方法について説明します。
NGINX を使用するアプリケーション ルーティング アドオンの機能
NGINX を使用するアプリケーション ルーティング アドオンでは、次の機能が提供されます。
- Kubernetes NGINX イングレス コントローラーに基づくマネージド NGINX イングレス コントローラーの簡単な構成。
- パブリック ゾーンとプライベート ゾーン管理のための Azure DNS との統合。
- Azure Key Vault に格納されている証明書での SSL 終端。
その他の構成については、次を参照してください。
重要
2027 年 9 月 30 日から、Azure Kubernetes Service (AKS) は Open Service Mesh (OSM) アドオンをサポートしなくなりました。 アップストリームの Open Service Mesh プロジェクト は廃止されました。
クラスターで OSM アドオンを使用している場合は、サポート終了日より前に Istio アドオンに移行します。 この提供終了に関する通知は、マネージド OSM アドオンにのみ適用され、オープン ソースまたはセルフ マネージド サービス メッシュのインストールには対応していません。 移行手順については、 OSM アドオンから Istio アドオンへの移行ガイダンスを参照してください。 AKS のお知らせと更新プログラムに関する最新情報を入手するには、 AKS リリース ノートに従ってください。
前提条件
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料のアカウントを作成できます。
- インストールおよび構成済みの Azure CLI バージョン 2.54.0 以降。 バージョンを確認するには、
az --versionを実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
制限事項
アプリケーション ルーティング アドオンでは、最大で 5 つの Azure DNS ゾーンがサポートされます。
アプリケーション ルーティング アドオンを有効にできるのは、マネージド ID を持つ AKS クラスターにおいてだけです。
アドオンと統合されるすべてのグローバル Azure DNS ゾーンは、同じリソース グループ内にある必要があります。
アドオンと統合されるすべてのプライベート Azure DNS ゾーンは、同じリソース グループ内にある必要があります。
ConfigMap名前空間での ingress-nginxapp-routing-systemの編集はサポートされていません。スニペット注釈の値が次のブロック値のいずれかに一致する場合、イングレスは構成されません。
ブロックされた値 Effect load_moduleイングレスが構成されていません。 lua_packageイングレスが構成されていません。 _by_luaイングレスが構成されていません。 locationイングレスが構成されていません。 rootイングレスが構成されていません。 proxy_passイングレスが構成されていません。 serviceaccountイングレスが構成されていません。 {イングレスが構成されていません。 }イングレスが構成されていません。 'イングレスが構成されていません。 アドオンは、管理するイングレス nginx プロキシ ポッドへの、Microsoft管理されていないサイドカー (カスタム テレメトリ、ログ記録、セキュリティ エージェントなど) の挿入を公式にサポートしていません。 マネージド プロキシ ポッドに独自のサイドカーを挿入する場合、Microsoft は、発生した問題に対してベスト エフォート ベースのサポートのみを提供します。
Azure CLIを使用してアプリケーション ルーティング アドオンを有効にする
新しいクラスターで有効にする
新しいクラスターでアプリケーション ルーティングを有効にするには、az aks create フラグを指定して --enable-app-routing コマンドを使用します。
az aks create \
--resource-group <resource-group-name> \
--name <cluster-name> \
--location <location> \
--enable-app-routing \
--generate-ssh-keys
既存のクラスターでの有効化
既存のクラスターでアプリケーション ルーティングを有効にするには、az aks approuting enable コマンドを使用します。
az aks approuting enable --resource-group <resource-group-name> --name <cluster-name>
ご利用の AKS クラスターに接続する
お使いのローカル コンピューターから Kubernetes クラスターに接続するには、kubectl (Kubernetes コマンドライン クライアント) を使用します。
az aks install-cli コマンドを使用してローカルにインストールできます。 Azure Cloud Shell を使用している場合、kubectl は既にインストールされています。
kubectl コマンドを使用して、Kubernetes クラスターに接続するように az aks get-credentials を構成します。
az aks get-credentials --resource-group <resource-group-name> --name <cluster-name>
アプリケーションをデプロイする
Kubernetes イングレス オブジェクトは、イングレス コントローラーのルーティング規則を定義します。 アプリケーション ルーティング アドオンのマネージド イングレス クラスとサポートされている注釈を使用して、コントローラーがトラフィックを処理する方法を構成します。
aks-storeコマンドを使って、ポッドの例を実行するためのkubectl create namespaceという名前のアプリケーション名前空間を作成します。kubectl create namespace aks-store次の YAML マニフェスト ファイルを使用して、AKS ストア アプリケーションをデプロイします。
kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/sample-manifests/docs/app-routing/aks-store-deployments-and-services.yaml -n aks-store
このマニフェストは、 rabbitmq、 order-service、 product-service、および store-front 配置と対応するサービスを作成します。
store-front サービスはポート 80 を公開します。ポート 80 は、イングレスが次のセクションでルーティングします。
イングレス オブジェクトを作成する
アプリケーション ルーティング アドオンを有効にすると、webapprouting.kubernetes.azure.com という名前のイングレス クラスが作成 されます。 アドオンのマネージド NGINX イングレス コントローラーを使用するには、イングレス オブジェクトでこのクラスを指定します。
次の YAML マニフェストを ingress.yaml という名前の新しいファイルにコピーし、ファイルをローカル コンピューターに保存します。
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: store-front namespace: aks-store spec: ingressClassName: webapprouting.kubernetes.azure.com rules: - http: paths: - backend: service: name: store-front port: number: 80 path: / pathType: Prefixkubectl applyコマンドを使用してイングレス リソースを作成します。kubectl apply -f ingress.yaml -n aks-store次の出力例は、作成されたリソースを示しています。
ingress.networking.k8s.io/store-front created
マネージドイングレス リソースを確認する
マネージド イングレスが作成されたことは、kubectl get ingress コマンドを使って確認できます。
kubectl get ingress -n aks-store
次の出力例は、マネージド イングレスが作成されたことを示しています。
NAME CLASS HOSTS ADDRESS PORTS AGE
store-front webapprouting.kubernetes.azure.com * 51.8.10.109 80 110s
AKS ストアが機能することを確認するには、ブラウザーでイングレス コントローラーのパブリック IP アドレスをポイントします。 次のコマンドは、app-routing-system名前空間のマネージド NGINX イングレス コントローラーの nginx Service にロード バランサーによって割り当てられた外部 IP アドレスを取得します。
kubectl get service -n app-routing-system nginx -o jsonpath="{.status.loadBalancer.ingress[0].ip}"
アプリケーションのルーティング アドオンを削除する
関連付けられている名前空間を削除するには、kubectl delete namespace コマンドを使います。
kubectl delete namespace aks-store
クラスターからアプリケーション ルーティング アドオンを削除するには、az aks approuting disable コマンドを使います。
az aks approuting disable --name <cluster-name> --resource-group <resource-group-name>
Note
アプリケーション ルーティング アドオンを無効にしたときにクラスターへのトラフィックが中断される可能性を回避するために、 configMaps、 シークレット、コントローラーを実行する デプロイ など、一部の Kubernetes リソースはクラスター上に残ります。 これらのリソースは、app-routing-system 名前空間にあります。 これらのリソースが不要になった場合は、kubectl delete ns app-routing-system を使用してこの名前空間を削除すると削除できます。
関連するコンテンツ
- アプリケーション ルーティング ゲートウェイ API の実装を有効にして、Kubernetes Gateway API を使用してイングレス トラフィックを管理します。
- カスタムイングレス構成の構成では、 高度なイングレス構成を作成する方法を示します。 Azure DNSを使用してカスタム ドメインを構成し、DNS ゾーンを管理し、セキュリティで保護されたイングレスを設定します。
- Azure 内部ロード バランサーと統合し、プライベート エンドポイントの DNS 解決を有効にして、特定のドメインを解決するようにプライベート Azure DNS ゾーンを構成することについては、「Azure プライベート DNS ゾーンの内部 NGINX イングレス コントローラーの構成」を参照してください。
- アプリケーションのパフォーマンスと使用状況の分析の一環として、Grafana (プレビュー) の Prometheus でアプリケーション ルーティング アドオンに含まれるイングレス nginx コントローラー メトリックの監視について説明します。