The Cloud Native Computing Foundation(CNCF)が公開したオンラインセミナーから、Kubernetesのネットワークスタック、Ingressコントローラーとして開発されてきたIngress NGINX(ingress-nginx)が開発を終了することが発表された。これは2025年11月12日に公開されたKubernetesのブログで明らかにされている。
●参考:Ingress NGINX Retirement: What You Need to Know
この判断はKubernetesのSIG NetworkとSecurity Response Committeeによるものだが、セキュリティの問題だけではなく、同時にソフトウェアのメインテナンスを行う人材の不足が紹介されている。この動画はNGINXの開発を行っていたNGINXを2019年3月に買収したF5のプロダクトマネージャー、Micael Kingston氏による背景や代替となるソリューションを解説し、同時に移行ためのツールのデモを見せるものとなっている。
プレゼンテーションの内容はこのスライドに記されているが、最初に「混乱を解消する」というトピックが置かれているところにこの動画をCNCFが公開した意味が現れていると言えるだろう。NGINXを使ったIngressコントローラーとして「ingress-nginx」と命名されているソフトウェアと、F5が主体となって開発を行う「NGINX-Ingress Controller」は違うということを明確に訴求したいという意味が込められている。
スライドに書かれているURLをみれば、ingress-nginxはKubernetesのコミュニティのソフトウェア、NGINX-IngressはNGINXのコミュニティに属するソフトウェアであることがわかる。ここではどうしてingress-nginxのメインテナーが人材不足であったかについては特に説明を行わず、継続されるNGINX関連のソフトウェアであるNGINX Ingress ControllerとNGINX Gateway Fabricの2つについて解説を行った。
結論から言えば、NGINX Ingress ControllerはKubernetesのIngress APIを実装したソフトウェア、NGINX Gateway FabricはKubernetesのGateway APIを実装したソフトウェアである。
ここでKubernetesが外部とのネットワーク通信を行うIngressについて振り返りを行った。
管理を行うコントロールプレーンがIngress Controller、実際にデータ通信を行うデータプレーンがNGINXという構成で、外部との通信を行うシンプルな構成だ。シンプルな実装であるせいか機能も限られており、個別にポリシーを実装することができないなどの制約を持っている。
ingress-nginxがKubernetesのコミュニティで使われているIngressコントローラーだとすると、NGINX Ingress Controller(NIC)はF5及びNGINXのコミュニティがサポートする商用機能も選択可能なコントローラーであると言える。
NGINX Ingress Controller(NIC)は2016年にインターンによるアイデアから開発が始まったと説明。ここではスケーラビリティとセキュリティを目標に、さまざまな機能強化を続けていることが解説されている。
ここではKubernetesのエコシステムで求められていた機能を実装したことに加えて、ingress-nginxのカスタマイズの手法であるアノテーションについてもNGINX Ingress Controller(NIC)がサポートを行っていることを説明。これはすでにingress-nginxを使っているユーザーに対する互換性維持のための施策ということだろう。
このスライドでは同じ機能を実装しようした時にそれぞれの記法が異なることを解説している。
ここでIngress APIからGateway APIにKubernetesそのものが向かおうとしていることを紹介。Ingress APIがアノテーションベースの実装となってポータビリティが低くなってしまった問題を解決するために、2019年に提案されたのがGateway APIである。2023年にはGAとして正式にKubernetesのAPIとして公開されている。
しかしingress-nginxを使い続けるユーザーが多い、実際には本番環境のKubernetesクラスターをアップデートせずに言わば塩漬けで使うユーザーが多いことから、2025年11月に正式にingress-nginxをリタイアさせることをアナウンスしたということだろう。この動画はそのメッセージをさらに浸透させるためのCNCFとNGINXコミュニティからのプッシュという意味合いが強い。
Gateway APIとはそもそも何か? を解説するスライドではオープンソースであること、役割によってどのコンポーネントを使えばいいのか? が分離していること、カスタムリソースによってカスタマイズ可能であること、そしてさまざまなユースケースに対応できることなどが挙げられている。
このスライドではGateway APIの3つのコンポーネント、GatewayClass、Gateway、HTTPRouteを挙げて、それぞれが果たす機能によってそれを利用するユーザーが異なることを示している。HTTPRoute以外のTCPRouteやUDPRoute、TLSRouteはGateway API初期のバージョンから仕様としては存在していたが、最新のGateway APIでは2024年にgRPCの実装であるGRPCRouteが追加され、正式にサポートされている。
Ingress APIがシンプルな仕様であったことでアノテーションによってカスタマイズが乱立してしまいポータビリティが損なわれるという状況を打破することと、HTTP以外のプロトコルのサポートなどがGateway APIによって達成されたことを説明。
NGINX-Ingress Controller(NIC)がIngress APIの実装だったことから、NGINXとしてのGateway APIの実装として紹介されたのが、NGINX Gateway Fabric(NGF)だ。
Gateway APIを実装し、新しいコンポーネントによって開発されたネットワークスタック、NGINX Gateway Fabricの概要が説明されている。実際にはNGINX Gateway Fabricはオープンソースではあるが、F5が商用機能を追加して提供しているのがNGINX Oneなどになる。クラウドやオンプレミスを含んだマルチクラスター対応のダッシュボードなどが含まれているようだが、オープンソース持続のためのオープンコア戦略は営利企業にとっては不可欠ということだろう。
最後に紹介したのはIngress APIからGateway APIに移行する際のツールについてである。
これはIngressのリソースを読み込んでGateway APIのためのリソースに書き換えを行うツールであり、この後のパートでは実際にツールを動かしてデモを行っている。
コマンドラインでIngressのためのマニフェストをGateway API用に書き換えるツールを紹介した。
ここまでのまとめとしてingress-nginxに代わるNGINX-Ingress Controller(NIC)とNGINX Gateway Fabric(NGF)を紹介し、まだingress-nginxを使っているユーザーに対して再度、Gateway APIへの移行を促した。
このスライドはF5の社員として当然だが、宣伝としてKubernetesに求められているさまざまなネットワーク関連の機能を列挙して、商用プロダクトに含まれる機能をも含めて紹介している。
最後にオープンソースへのコミットメントとしてのスライドを使って説明を行った。
さまざまなチャネルを通じてコミュニティと対話を続けていること、150名を超えるデベロッパーがさまざまな企業から参加していること、F5として将来に渡って継続してオープンソースであることを約束していること、そして移行に関するガイドなどのリソースを提供することなどが挙げられている。
デモとしてingress-nginxとNGINX Ingress Controllerのマニフェストの違いやingress2gatewayの実行などを行って、セッションを終えた。
ネットワークスタックを変更するのは運用部門にとっては面倒な仕事だが、KubernetesがIngress APIからGateway APIに移行し、正式版としてリリースが行われたことをきっかけにGateway APIを使って欲しい、新しいネットワークスタックに移行して欲しいというCNCFとF5の思いが形になったプレゼンテーションとなった。まだGateway APIに移行していない企業のエンジニアは参考にして欲しい。冒頭に紹介したKubernetes SIGのリリースにある「SIG Network and the Security Response Committee recommend that all Ingress NGINX users begin migration to Gateway API or another Ingress controller immediately.」という文の最後にある「即座に移行を始めよ」という部分にKubernetesコミュニティの意図が強く表れていると言える。
