このリポジトリは、NGINX の背後にいる人々による NGINX および NGINX Plus 用の Ingress コントローラーの実装を提供します。
私たちはコミュニティからの意見を重視しており、次回のコミュニティ通話でお会いできることを楽しみにしています。これらの通話では、コミュニティ メンバーによる PR のほか、問題、ディスカッション、機能のリクエストについて話し合います。
Microsoft Teams リンク: KIC - GitHub 問題のトリアージ
ミーティングID: 298 140 979 789
パスコード: jpx5TM
Slack : NGINX コミュニティ Slack のチャンネル#nginx-ingress-controller
に参加して、最新情報やディスカッションを入手してください。
日時: 15:00 GMT / タイムゾーンに換算、隔週月曜日。
コミュニティコールの日程 |
---|
2024-10-07 |
2024-10-21 |
2024-11-05 |
2024-11-18 |
2024-12-02 |
2024-12-16 |
NGINX Ingress Controller は NGINX と NGINX Plus の両方で動作し、標準の Ingress 機能 (コンテンツベースのルーティングと TLS/SSL 終端) をサポートします。
さらに、いくつかの NGINX および NGINX Plus 機能は、アノテーションおよび ConfigMap リソースを介して Ingress リソースの拡張機能として利用できます。 HTTP に加えて、NGINX Ingress Controller は、Websocket、gRPC、TCP、および UDP アプリケーションの負荷分散をサポートします。サポートされている機能とカスタマイズ オプションの詳細については、ConfigMap と注釈のドキュメントを参照してください。
Ingress の代替として、NGINX Ingress Controller は VirtualServer リソースと VirtualServerRoute リソースをサポートします。これらにより、トラフィック分割や高度なコンテンツベースのルーティングなど、Ingress リソースではサポートされていないユースケースが可能になります。 VirtualServer および VirtualServerRoute リソースのドキュメントを参照してください。
TCP、UDP、TLS パススルー負荷分散もサポートされています。 TransportServer リソースのドキュメントを参照してください。
NGINX Plus を使用した NGINX Ingress コントローラーの詳細については、このドキュメントをお読みください。
注記
このプロジェクトは、kubernetes/ingress-nginx リポジトリの NGINX Ingress コントローラーとは異なります。主な違いについては、このドキュメントを参照してください。
Ingress は、1 つ以上のサービスで表される、Kubernetes 上で実行されるアプリケーションの HTTP ロード バランサーを構成できる Kubernetes リソースです。このようなロード バランサーは、これらのアプリケーションを Kubernetes クラスターの外部のクライアントに配信するために必要です。
Ingress リソースは次の機能をサポートしています。
コンテンツベースのルーティング:
ホストベースのルーティング。たとえば、ホスト ヘッダーfoo.example.com
を持つリクエストをサービスの 1 つのグループにルーティングし、ホスト ヘッダーbar.example.com
を持つリクエストを別のグループにルーティングします。
パスベースのルーティング。たとえば、 /serviceA
で始まる URI のリクエストはサービス A にルーティングし、 /serviceB
で始まる URI のリクエストはサービス B にルーティングします。
foo.example.com
などのホスト名ごとのTLS/SSL 終端。
Ingress リソースの詳細については、「Ingress ユーザー ガイド」を参照してください。
Ingress Controller はクラスター内で実行され、Ingress リソースに応じて HTTP ロード バランサーを構成するアプリケーションです。ロード バランサーは、クラスター内で実行されるソフトウェア ロード バランサー、または外部で実行されるハードウェアまたはクラウド ロード バランサーです。ロード バランサーが異なれば、必要な Ingress コントローラーの実装も異なります。
NGINX の場合、Ingress Controller はロード バランサーとともにポッドにデプロイされます。
注記
すべてのドキュメントは、GitHub リポジトリのリリース ページに示されている最新の安定リリースでのみ使用する必要があります。
Helm チャートまたは Kubernetes マニフェストを使用して NGINX Ingress コントローラーをインストールします。
単純な Web アプリケーションの負荷分散を構成します。
Ingress リソースを使用します。カフェの例を参照してください。
または、VirtualServer リソース。基本的な設定例を参照してください。
追加の構成例を参照してください。
利用可能なすべての構成とカスタマイズの詳細については、ドキュメントをご覧ください。
NGINX Ingress Controller のリリースは GitHub で公開されています。リリースページをご覧ください。
最新の安定版リリースは 3.7.2 です。運用環境で使用する場合は、最新の安定したリリースを選択することをお勧めします。
エッジ バージョンは、安定リリースでまだ公開されていない新機能を試すのに役立ちます。これを使用するには、メイン ブランチの最新のコミットから構築されたエッジバージョンを選択します。
NGINX Ingress Controller を使用するには、以下にアクセスできる必要があります。
NGINX Ingress コントローラーのイメージ。
インストール マニフェストまたは Helm チャート。
ドキュメントと例。
上記のもののバージョンが一致していることが重要です。
以下の表は、イメージ、Helm チャート、マニフェスト、ドキュメント、例に関するオプションをまとめたもので、正しいバージョンへのリンクが示されています。
バージョン | 説明 | NGINX のイメージ | NGINX Plus のイメージ | インストールマニフェストとヘルムチャート | ドキュメントと例 |
---|---|---|---|---|---|
最新の安定版リリース | 実稼働用 | DockerHub、GitHub Container、Amazon ECR Public Gallery、または Quay.io の 3.7.2 イメージを使用するか、独自のイメージを構築します。 | F5 Container Registry の 3.7.2 イメージを使用するか、独自のイメージを構築します。 | 明示します。ヘルムチャート。 | ドキュメント。例。 |
エッジ/ナイトリー | テストや実験用 | DockerHub、GitHub Container、Amazon ECR Public Gallery、Quay.io の Edge または Nightly イメージを使用するか、独自のイメージを構築します。 | 独自のイメージを構築します。 | 明示します。ヘルムチャート。 | ドキュメント。例。 |
バイナリと Docker イメージの SBOM を生成します。
バイナリの SBOM はリリース ページで入手できます。 SBOM は syft を使用して生成され、SPDX 形式で利用できます。
Docker イメージの SBOM は、DockerHub、GitHub Container、Amazon ECR Public Gallery、または Quay.io リポジトリで入手できます。 SBOM は syft を使用して生成され、イメージ マニフェストに証明書として保存されます。
たとえば、Docker Hub からlinux/amd64
の SBOM を取得し、grype を使用して分析するには、次のコマンドを実行します。
docker buildx imagetools Inspection nginx/nginx-ingress:edge --format '{{ json (index .SBOM "linux/amd64").SPDX }}' |不平不満
ぜひご意見をお聞かせください。 Ingress コントローラーに関する提案や問題が発生した場合は、問題を作成するか、GitHub でプル リクエストを送信してください。 NGINX Community Slack 経由で直接お問い合わせいただけます。
プロジェクトに貢献したい場合は、貢献ガイドをお読みください。
NGINX Plus の顧客の場合、NGINX Ingress コントローラー (NGINX Plus と一緒に使用する場合) はサポート契約の対象となります。