ブログ | NGINX

Ingress コントローラーの選択ガイド、パート 4: NGINX Ingress コントローラー オプション

NGINX-F5 水平黒タイプ RGB の一部
ジェン・ギル サムネイル
ジェン・ガイル
2021年9月27日公開

編集者– この投稿は10 部構成のシリーズの一部です。

  1. プロダクショングレードのKubernetesで複雑さを軽減
  2. 高度なトラフィック管理で Kubernetes の回復力を向上させる方法
  3. Kubernetes の可視性を向上させる方法
  4. トラフィック管理ツールを使用して Kubernetes を保護する 6 つの方法
  5. Ingress コントローラーの選択ガイド、パート 1: 要件を特定する
  6. Ingress コントローラーの選択ガイド、パート 2: リスクと将来への備え
  7. Ingress コントローラーの選択ガイド、パート 3: オープンソース vs. デフォルト vs. コマーシャル
  8. Ingress コントローラーの選択ガイド、パート 4: NGINX Ingress コントローラー オプション (この投稿)
  9. サービスメッシュの選択方法
  10. 動的 Kubernetes クラウド環境での NGINX Ingress コントローラーのパフォーマンス テスト

また、ブログの完全セットを無料の電子書籍「 Taking Kubernetes from Test to Production」としてダウンロードすることもできます。

Cloud Native Computing Foundation (CNCF) の2020 年の調査によると、Kubernetes のIngress コントローラーで最もよく使用されるデータ プレーンは NGINX ですが、「NGINX Ingress コントローラー」が複数あることをご存知でしたか?

このブログの以前のバージョンは、2018 年に「待ってください、Kubernetes 用のどの NGINX Ingress コントローラーを使用していますか?」というタイトルで公開されましたが、これは、NGINX を使用する 2 つの一般的な Ingress コントローラーの存在についてのコミュニティ メンバーとの会話がきっかけでした。

なぜ混乱が生じたのか(そして今も生じているのか)は簡単に分かります。 両方の Ingress コントローラは次のとおりです。

  • 「NGINX Ingress Controller」と呼ばれる
  • オープンソース
  • 非常に似たリポジトリ名でGitHubにホストされている
  • ほぼ同時期に開始されたプロジェクトの結果

そしてもちろん、最大の共通点は、同じ機能を実装していることです。

NGINX 対 Kubernetes コミュニティ イングレス コントローラー

わかりやすくするために、2 つのバージョンを次のように区別します。

  • コミュニティ バージョン– GitHub のkubernetes/ingress-nginxリポジトリにあるコミュニティ Ingress コントローラーは、 Kubernetes.ioにドキュメントがある NGINX Open Source に基づいています。 Kubernetes コミュニティによってメンテナンスされています。
  • NGINX バージョン– GitHub のnginxinc/kubernetes-ingressリポジトリにある NGINX Ingress Controller は、F5 NGINX によって開発および保守されており、ドキュメントはdocs.nginx.comにあります。 次の 2 つのエディションが利用可能です:
    • NGINX オープンソースベース (無料およびオープンソースのオプション)
    • NGINX Plus ベース(商用オプション)

Kong など、NGINX をベースにした他の Ingress コントローラーも多数ありますが、幸いなことにそれらの名前は簡単に区別できます。 使用している NGINX Ingress コントローラーがわからない場合は、実行中の Ingress コントローラーのコンテナー イメージを確認し、Docker イメージ名を上記のリポジトリと比較します。

NGINX Ingress コントローラーの目標と優先順位

NGINX Ingress コントローラーとコミュニティ Ingress コントローラー (および NGINX オープンソースに基づく他の Ingress コントローラー) の主な違いは、開発モデルとデプロイメント モデルであり、これらは異なる目標と優先順位に基づいています。

  • 開発哲学- すべての NGINX プロジェクトと製品における当社の最優先事項は、長期的な安定性と一貫性を備えた高速で軽量なツールを提供することです。 私たちは、リリース間での動作の変更、特に下位互換性を損なう変更を回避するためにあらゆる努力を払っています。 アップグレード時に予期せぬ驚きが起こることは決してありません。 また、当社は選択肢を重視しており、当社のすべてのソリューションは、ベアメタル、コンテナ、VM、パブリック クラウド、プライベート クラウド、ハイブリッド クラウドなど、あらゆるプラットフォームに導入できます。
  • 統合コードベース- NGINX Ingress Controller は、負荷分散に 100% 純粋な NGINX オープンソースまたは NGINX Plus インスタンスを使用し、ネイティブ NGINX 機能のみを使用してベスト プラクティス構成を適用します。 相互運用性テストの恩恵を受けていないサードパーティのモジュールや Lua コードには依存しません。 私たちは、多数のサードパーティ リポジトリから Ingress コントローラーを組み立てるのではなく、ロード バランサー (NGINX および NGINX Plus) と Ingress コントローラー ソフトウェア (Go アプリケーション) を自社で開発し、保守しています。 当社は、Ingress コントローラーのすべてのコンポーネントに対する唯一の権限を持っています。
  • 高度なトラフィック管理標準の Kubernetes Ingress リソースの制限の 1 つは、高度な機能を使用してカスタマイズするには、注釈、ConfigMap、顧客テンプレートなどの補助機能を使用する必要があることです。 NGINX Ingress リソースは、ネイティブでタイプセーフなインデントされた構成スタイルを提供し、TCP/UDP、サーキットブレーキング、A/B テスト、ブルーグリーンデプロイメント、ヘッダー操作、相互 TLS 認証 (mTLS)、Web アプリケーションファイアウォール (WAF) などの Ingress ロードバランシング機能の実装を簡素化します。
  • 継続的な生産準備– すべてのリリースは、サポート可能な生産標準に従って構築および維持されます。 NGINX オープンソース ベースのエディションを使用している場合でも、 NGINX Plus ベースのエディションを使用している場合でも、この「エンタープライズ グレード」の焦点から同様にメリットを得ることができます。 NGINX Open Source ユーザーは、 GitHub上で当社のエンジニアリング チームから質問の回答を得ることができ、NGINX Plus サブスクライバーはクラス最高のサポートを受けることができます。 どちらにしても、DevOps チームに NGINX 開発者がいるようなものです。

NGINX オープンソース vs. NGINX Plus – 商用版にアップグレードする理由

ここで、 NGINX Plus ベースのNGINX Ingress Controller から得られる主なメリットのいくつかを確認しましょう。 Kubernetes Ingress コントローラーの選択方法、パート 3 で説明したように、 オープンソース vs. デフォルト vs. 商用の場合、オープンソースの Ingress コントローラーと商用の Ingress コントローラーの間には大きな違いがあります。 大規模な Kubernetes の導入や複雑なアプリの運用を計画している場合は、当社の商用 Ingress コントローラーを使用すると、いくつかの重要な領域で時間とコストを節約できます。

セキュリティとコンプライアンス

多くの組織が Kubernetes アプリを本番環境に導入できない主な理由の 1 つは、アプリの安全性とコンプライアンスを維持するのが難しいことです。 NGINX Plus ベースのNGINX Ingress Controller は、アプリと顧客を安全に保つために重要な 5 つのユースケースを実現します。

ドイツの自動車大手 Audi が、 NGINX を使用して将来に備えた技術ビジョンとアプリのイノベーションを実現した方法については、「Audi Future‑Proofs Tech Vision and App Innovation with NGINX」をご覧ください。

アプリケーションのパフォーマンスと回復力

多くの場合、稼働時間とアプリの速度は、開発者やプラットフォーム運用チームにとっての主要業績評価指標 (KPI) です。 NGINX Plus ベースのNGINX Ingress Controller は、Kubernetes の約束を実現するのに役立つ 5 つのユースケースを実現します。

  • ライブ監視を実現– NGINX Plus ダッシュボードには、数百もの主要な負荷とパフォーマンスのメトリックが表示されるため、アプリの速度低下 (またはダウン) の原因をすばやくトラブルシューティングできます。
  • 障害をより迅速に検出して解決– TCP および UDP アップストリーム サーバーの健全性をプロアクティブに監視するアクティブ ヘルス チェックを備えたサーキット ブレーカーを実装します。
  • 再起動なしで再構成– より高速で中断のない再構成により、オープン ソースの代替製品よりも一貫したパフォーマンスとリソース使用率、およびより低いレイテンシでアプリケーションを提供できます。
  • 新しい機能とデプロイメントを徹底的にテストする– キーバリューストアを活用してリロードせずにパーセンテージを変更することで、A/B テストとブルーグリーンデプロイメントを簡単に実行できます。
  • サポート ニーズを迅速に解決– コミュニティからの質問への回答を待つことができない組織や、機密データが漏洩するリスクを負うことができない組織にとって、機密性の高い商用サポートは不可欠です。 NGINX サポートは、お客様のニーズに合わせて複数のレベルで提供されており、インストール、展開、デバッグ、エラー修正のサポートも含まれています。 何かが「おかしい」と感じた場合でも、サポートを受けることができます。

ビジネステキストメッセージング会社 Zipwhip が、NGINX を使用して Amazon EKS のセキュリティとトラフィックの可視性を強化するで、SaaS アプリの稼働率 99.99% を達成した方法を学びます。

次のステップ: NGINX Ingress Controllerを試す

オープンソースの Ingress コントローラーがアプリに最適な選択であると判断した場合は、 GitHub リポジトリですぐに始めることができます。

大規模な本番環境への導入には、NGINX Plus をベースにした商用 Ingress コントローラーをぜひお試しください。 NGINX App Protect を含む30 日間の無料トライアルをご利用いただけます。


「このブログ投稿には、入手できなくなった製品やサポートされなくなった製品が参照されている場合があります。 利用可能な F5 NGINX 製品およびソリューションに関する最新情報については、 NGINX 製品ファミリーをご覧ください。 NGINX は現在 F5 の一部です。 以前の NGINX.com リンクはすべて、F5.com の同様の NGINX コンテンツにリダイレクトされます。"