NGINX(エンジンエックス)|日本公式サイト

NGINXはF5ファミリーの一員となりました。新体制の詳細はこちらを御覧ください。

SUSE RancherとNGINXで、Kubernetes環境のデプロイを簡素化し、さらにセキュリティを強化する連携ソリューション

Kubernetesが非常に優れたプラットフォームであることは既にご存じの方も多いかと思います。そして最大限に活用するためには、様々なツールと連携をして活用することも必要となります。Ingress Controllers がその一つです。Kubernetes を使用している方は、Ingress Controllerについて良くご存じかもしれません。ここでは、Ingress 及び Ingress Controllerについて改めて、簡単にまとめてみます。

設計上、Podはクラスター内の他Podからのみアクセスでき、外部ネットワークからはアクセスできません。Ingress は、外部接続のルールを定義する HTTP負荷分散用の Kubernetes に組み込みまれている構成要素です。外部アクセスを提供する必要がある場合は、Serviceリソースを利用。さらにURI パス、バックエンドサービス名、その他の情報を含むルールを定義する Ingress リソースを作成します。次に、Ingress Controllerを使用して、ロードバランサーを自動的に構成し、Ingressリソースを基に設定を有効にします。

NGINX(Part of F5)の提供するNGINX Ingress Controller は、Kubernetes アプリケーションにエンタープライズ グレードのリバースプロキシを提供します。このブログでは、NGINX Ingress Controller と Ranch App及びMarketplace との統合について説明します。まず最初に、NGINX Ingress Controller について説明しましょう。

NGINXを使用するKubernetes Ingress Controllerは2種類あります。どちらもオープンソースで、GitHub でホストされています。そのうち1 つは Kubernetes オープンソース・コミュニティ(kubernetes/ingress-nginx on GitHub)によってメンテナンスされているもの、もう1つはNGINX(Part of F5)が提供しているものとなります。(nginxinc/kubernetes-ingress on GitHub)

NGINX Ingress Controllerとどう違うのか?

Kubernetesコミュニティ版の NGINX Ingress Controllerとの違いについて、NGINX 製品管理担当副社長である Sidney Rabsatt は下記のように述べています。

・開発理念:Ingress Controllerの設計において、NGINXが最も重要だと考えていることは、長期的な安定性と一貫性を提供することです。リリース間の動作の変更、特に下位互換性を損なうような変更を避けるために、可能な限りの努力を払っています。アップグレード時に予期せぬサプライズが発生しない安定性がNGINX Ingress Controllerでは保証されます。

・継続的な実稼働への対応:NGINX は、NGINX Ingress Controllerの全てのリリースで商用サポートを提供とメンテナンスしています。NGINXのオープンソース版、NGINX Plusのどちらを使用しているかにかかわらず、「エンタープライズグレード」の品質でご使用いただけます。

・統合されたコードベース:NGINX Ingress Controllerは、負荷分散に 100% 純粋な NGINX または NGINX Plusインスタンスを使用し、ネイティブなNGINX 機能のみを使用してベスト プラクティス構成を適用することが可能です。これは、サードパーティのモジュールまたは Lua コードに依存していません。Kubernetesコミュニティ版の Ingress Controllerは、NGINX Plusに固有の一部の機能について、低速になりがちな Lua コードに依存しています。

・セキュリティ:NGINX Ingress Controllerは、GitHub上でロードバランサー (NGINX および NGINX Plus) とIngress Controllerのソフトウェア (Go アプリケーション) を自社で開発および保守しています。

・サポート:NGINX Ingress Controllerは、有償版NGINX Plusおよび NGINX オープンソース版のどちらにも対応していますが、有償版NGINX PlusでNGINX Ingress Controllerを使用した場合に得られる主なメリットをご紹介します。

  • 追加機能 – リアルタイムメトリックス、高度な負荷分散拡張機能、セッションパーシステンス、アクティブヘルスチェック、JWT認証
  • 動的再構成 – より高速で中断のない再構成により、一貫したパフォーマンスとリソース使用率でアプリケーションを提供できます。
  • 商用サポート – 経験豊富なNGINX技術者のサポートを受けることでDevOps チームに NGINX 開発者がいるような安定した運用が可能になります。 NGINX、NGINX Plusはどちらも、ベアメタル、コンテナ、VM、パブリック/プライベート/ハイブリッドクラウド等、あらゆるプラットフォームにデプロイできます。

SUSE RancherとNGINXの連携

SUSE Rancher(以下Rancher)は皆様ご存じの通り、コンテナ管理の利便性や効率を上げることが可能なプラットフォームです。オンプレミスやクラウドサービス上に、Kubernetesクラスターを構築し管理を可能にします。また、「カタログ」化されたアプリケーションがすぐに使えるのも特長です。

SUSEに統合されたRancher Labs との提携により、NGINX Ingress Controllerは、Rancher上のカタログサービスに登録されており、簡単にRancher上で選択、展開できるようになっています。

そしてNGINXオープンソース版をまずは活用することができる Rancher Chart の形式でソリューションを提供しています。こちらを活用して拡張機能を備えた商用サポートされているバージョンの NGINX Plus への簡単なアップグレード パスを提供します。

両方のバージョンの設定について見ていきましょう。

いくつかの前提条件を満たした上で、Rancher Chart UI を介していくつかの構成オプションを設定し、NGINX オープンソースまたは NGINX Plusを Rancherの管理クラスターにデプロイします。

NGINX PlusのIngress Controllerを使うことで、次に説明する多くの高度な機能をRancher上で利用できるようになります。これには、Kubernetes クラスター内に配置されるWebアプリケーションファイアウォール (WAF) 機能を備えたNGINX App Protect もIngress Controllerに含まれています。

では、なぜKubernetesにそもそもNGINX Ingress Controllerが必要なのでしょうか?

NGINX Ingress Controllerを連携させることで、SSL/TLS終端、WebSocket、URLリライト、HTTP/2、Prometheus、さらにHelmChartでインストール等の機能が提供されます。NGINX PlusのNGINX Ingress Controllerとの連携により、下記のようなメリットも付加されます。

  • Ingress設定と運用の複雑さを軽減
  • 高度な負荷分散機能の実現
  • 可観測性
  • セキュリティ
  • セルフサービスとマルチテナンシー
  • 本番環境への適用

Kubernetes環境に最適なWAF、NGINX App Protect との統合

前述したように、NGINX Ingress Controllerは、WAFモジュールであるNGINX App Protectを搭載しています。これは、悪意のある攻撃からコンテナアプリケーションを保護するとともに、Ingress Controllerで唯一のNGINXによりサポートされたWAF です。

WAFをIngress Controller に統合する重要な理由

WAFをIngress Controller に統合することで、管理者とアプリ開発者の双方に次の3つの利点がもたらされます。

  • コンテナアプリケーションの保護
  • データプレーンの統合
  • コントロールプレーンの統合 – 管理するセキュリティツールが少なくなるため、潜在的な障害点が減少します。

開発者は、他のチームに権限付与や設定依頼することなく、WAF機能をワークフローに組み込むこともできます。これにより、効率が高まりセキュリティ要件の準拠を実現できます。

まとめ

このようにRancherとNGINX Ingress Controllerを組み合わせることで、現在NGINXで利用しているリバースプロキシ設定を簡単に活用することや、NGINX App Protectによるコンテナアプリケーションの保護、各組織やチームによるマルチテナント、CI/CDを意識したシステム運用をしていただくことが可能になります。

関連資料

サンプルNGINX Plus 無料トライアル サンプルダウンロード資料 サンプル無料ウェビナー