注意事項
Kubernetes SIG Network とセキュリティ対応委員会は、2026 年 3 月にメンテナンスが終了した イングレス NGINX プロジェクトの廃止を発表しました。 Microsoft は、 2026 年 11 月まで、アプリケーション ルーティング アドオン NGINX イングレス リソースの重要なセキュリティ パッチの公式サポートを提供します。
AKS はアップストリーム Kubernetes に準拠し、イングレスと L7 トラフィック管理の長期的な標準としてゲートウェイ API を使用します。 要件に基づいて、2026 年 11 月にサポートが終了する前に移行してください。
- アプリケーション ルーティング アドオン ユーザー と OSS NGINX ユーザー: Gateway API ベースのイングレス トラフィック管理環境を実現するには、アプリケーション ルーティング Gateway API 実装 に移行するか、または Ingress API と Gateway API の両方をサポートする Application Gateway for Containers に移行してください。
- サービス メッシュまたは高度なイングレス要件: Istio サービス メッシュ アドオンを使用してゲートウェイ API のイングレスを検討します。 ワークロードにサイドカーを挿入することなく、イングレス用に使用できます。 要求ヘッダーと本文のサイズ制限、Lua スクリプト、またはレート制限が必要な場合は、 ゲートウェイ API の制限事項と代替手段を確認してください。
アプリケーション ルーティング アドオンのイングレス nginx コントローラーは、要求、nginx プロセス、およびアプリケーションのパフォーマンスと使用状況の分析に役立つ可能性があるコントローラーの多くのメトリックを公開します。
アプリケーション ルーティング アドオンは、ポート 10254 とプライベート サービス /metricsのnginx-metricsで Prometheus メトリック エンドポイントを公開します。
前提条件
- アプリケーション ルーティング アドオンが有効になっている Azure Kubernetes Service (AKS) クラスター。
- Prometheus インスタンス (例: Prometheus の Azure Monitor マネージド サービス)。
メトリック エンドポイントの検証
メトリックが収集されていることを検証するには、 nginx-metrics サービスでローカル ポートからポート 10254 に転送するポートを設定します。
kubectl port-forward -n app-routing-system service/nginx-metrics :10254
Forwarding from 127.0.0.1:43307 -> 10254
Forwarding from [::1]:43307 -> 10254
ローカル ポート (この場合は43307 ) を書き留め、ブラウザーで http://localhost:43307/metrics を開きます。 ingress-nginx コントローラーメトリックの読み込みが表示されます。
port-forward プロセスを終了して転送を終了できるようになりました。
Prometheus 用の Azure Monitor マネージド サービスの構成
Prometheus 用の Azure Monitor マネージド サービスは、PromQL、Grafana ダッシュボード、Prometheus アラートなどの業界標準の機能をサポートする、フル マネージドの Prometheus 互換サービスです。 このサービスでは、Prometheus にデータを送信するAzure Monitor エージェントのメトリック アドオンを構成する必要があります。 クラスターがアドオンで構成されていない場合は、この記事に従って、Prometheus の Azure Monitor マネージド サービスにデータを送信するように Azure Kubernetes Service (AKS) クラスターを構成できます。
Service Monitor ベースのスクレイピングを有効にする
クラスターが Azure Monitor エージェントで更新されたら、メトリック エンドポイントのスクレイピングを有効にするようにエージェントを構成する必要があります。 ポッド またはサービス モニターを作成 してこれを実現できます。
次の例では、アプリケーション ルーティング アドオンによってデプロイされた ingress-nginx コントローラーから Service Monitor のスクレーピング メトリックを作成します。
kubectl apply -f - <<EOF
apiVersion: azmonitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: nginx-monitor
namespace: app-routing-system
spec:
labelLimit: 63
labelNameLengthLimit: 511
labelValueLengthLimit: 1023
selector:
matchLabels:
app.kubernetes.io/component: ingress-controller
app.kubernetes.io/managed-by: aks-app-routing-operator
app.kubernetes.io/name: nginx
endpoints:
- port: prometheus
EOF
数分後に、ama-metrics名前空間のkube-system ポッドが再起動し、新しい構成を取得する必要があります。
Azure Managed Grafana でのメトリックの視覚化を確認する
Prometheus と Azure Managed Grafana 用の Azure Monitor マネージド サービスが構成されたので、 Managed Grafana インスタンスにアクセスする必要があります。
Grafana インスタンスにダウンロードしてインポートできる 2 つの 公式の ingress-nginx ダッシュボード があります。
- Ingress-nginx コントローラー ダッシュボード
- 要求処理のパフォーマンス ダッシュボード
Ingress-nginx コントローラー ダッシュボード
このダッシュボードでは、リクエストのボリューム、接続、成功率、構成の再読み込み、構成の同期が取れていない状況を可視化できます。また、イングレスコントローラのネットワーク IO プレッシャー、メモリ、CPU 使用率を表示することも可能です。 最後に、イングレスの P50、P95、P99 パーセンタイル応答時間とそのスループットも示します。
このダッシュボードは GitHub からダウンロードできます。
要求処理のパフォーマンス ダッシュボード
このダッシュボードでは、さまざまなイングレス アップストリーム宛先 (イングレス コントローラーがトラフィックを転送しているアプリケーションのエンドポイント) の要求処理のパフォーマンスを把握できます。 要求の合計およびアップストリーム応答時間の P50、P95、P99 パーセンタイルを示します。 要求エラーと待機時間の集計を表示することもできます。 このダッシュボードを使用して、アプリケーションのパフォーマンスとスケーラビリティを確認し、向上させます。
このダッシュボードは GitHub からダウンロードできます。
ダッシュボードのインポート
Grafana ダッシュボードをインポートするには、左側のメニューを展開し、[ダッシュボード] の [ インポート ] をクリックします。
次に、目的のダッシュボード ファイルをアップロードし、[ 読み込み] をクリックします。
次のステップ
- Kubernetes Event Driven Autoscaler (KEDA) を使用して Prometheus でスクレーピングされたイングレス メトリックを使用して、ワークロードのスケーリングを構成できます。 KEDA と AKS の統合について詳しくは、こちらをご覧ください。
- Azure Load Testing を使用してロード テストを作成して実行し、ワークロードのパフォーマンスをテストし、アプリケーションのスケーラビリティを最適化します。