F5とNGINXの組み合わせで、サービス公開をよりセキュアに。Kubernetes Ingress Controllerを活用してセキュリティ、可用性、パフォーマンスを実現
7月22日~23日、東京・虎ノ門ヒルズフォーラムにて、クラウド技術に関するイベント「CloudNative Days Tokyo 2019 / OpenStack Days Tokyo 2019」が開催された(共催)。
本イベントのF5ネットワークスジャパン合同会社による伊藤悠紀夫氏と鈴木孝彰氏のセッション「Kubernetes Ingress Controllerにセキュリティを実装してみた」では、BIG-IPとNGINXの組み合わせなど、NGINX Ingress Controllerについて解説した。
BIG-IPとNGINXを組み合わせ、BIG-IPをKubernetesから設定
F5は2019年3月にNGINXを買収することを発表。5月に買収手続きが完了した。その背景として、F5ネットワークスジャパン合同会社 ソリューションアーキテクトの伊藤悠紀雄氏は、アプリケーションを取り囲む環境の変化について言及。アプリケーションはクラウドへシフトし、CI/CDツールチェインによる自動化が進み、コンテナ化やAPI化などテクノロジが変化している。
それにより、アプリケーションのリリースのスピード・頻度の違いから、開発と運用の隔たりが発生しているという。開発は展開スピードを重視したいと思い、運用は安定性を重視したいと思うというわけだ。「この隔たりをなくすために、F5とNGINXが一緒になった」と伊藤氏。NGINXのアプリケーションと、F5のセキュリティを組み合わせ、インフラとアプリケーションの架け橋となると語った。
両者の組み合わせによりできることとして、伊藤氏は、既存のアプリケーション環境を強化する「ADC拡張」、さまざまなクラウドにまたがるスケーラブルな「マルチクラウドADC」、End-to-Endの「API管理」、柔軟性の高いスケーラブルな「Kubernetesインテグレーション」の4つを挙げた。
このうち、伊藤氏は、4つめのKubernetesインテグレーションとして「Kubernetes Ingress Controller」での利用について解説した。
Kubernetes Ingress Controllerは、Kubernetes上のサービスを外部公開するためのエンドポイントとなるL7ロードバランサーだ。ここでNGINXなどが使われるが、例えばAWSで言うと外部から見てALBが最初のエンドポイントとなり、Kubernetes Ingress Controllerはその内側のものとなる。
サービスを外部公開するときに気をつけなければいけないのが、多要素認証やSSL、ユーザー環境に即した対応などが必要なセキュリティだ。そのために、伊藤氏は外側のエンドポイントにBIG-IP VE(仮想アプライアンス)を利用する構成例を紹介。この構成では、BIG-IP VEがセキュリティゲートウェイとしても働く。
そこからさらに進むと、BIG-IP VEの設定もKubernetes環境から行いたいということになる。これについて伊藤氏は、CI/CDツールを使ってkubectlから設定を実行する例をデモしてみせた。このデモは、JSON形式の設定をREST APIによりBIG-IPに与えるCI/CDパイプラインをkubectlから実行するものだ。伊藤氏は、BIG-IPなら外部のクライアントのIPアドレスをサービスに伝えることができることも付け加えた。
伊藤氏はまとめとして、モノリシックなアプリからマイクロサービスまで、さまざまな実行環境において一貫した「セキュリティ」「可用性」「パフォーマンス」をF5とNGINXで実現すると語った。
NGINX Ingress Controllerの最新情報
続いて、F5ネットワークスジャパン合同会社 テクニカルソリューションズアーキテクトの鈴木孝彰氏が、「NGINX Ingress Controller」の最新情報を紹介した。
まず、鈴木氏はNGINX Ingress Controllerには、大きく分けてコミュニティバージョン、公式NGINX、公式NGINX Plusの3種類があると説明。この3種類のバージョンの機能と対応を比較したうえで、パブリッククラウド上で利用する場合の構成や設定変更の例を紹介した。
最新版のNGINX Ingress Controller v1.5では「-enable-custom-resources」の指定により、Custom Resource(プレビュー機能)による設定ができるようになったという。「例えばば、GETとPOSTで振り分けたり、ブルーグリーンデプロイメントをしたり、Cookieで振り分けたりといった、Ingressでサポートされていないことができる」と鈴木氏。
続いて紹介したのは監視機能だ。PrometheusやOpenTracingと連携できるようになったという。
ここで鈴木氏はデモを実演。YAMLのIngress ControllerのオプションでPrometheus連携とカスタムリソースを有効にし、kubectl scaleでPodを増やすところやPrometheusでの表示などを見せた。
鈴木氏は最後に、改めてNGINXがF5からリリースされるようになったことに触れ、「NGINXをお使いの方や、BIG-IPをお使いの方は、今後ともぜひ注目していただければ」と語った。
* * *
F5によるNGINXの買収は、発表当時は驚きをもって受け取られた。そうした両者のソリューションを組み合わせたKubernetesインテグレーションというユースケースを含め、NGINXによるKubernetes Ingress Controllerの最新情報が解説されたセッションだった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- コンテナ領域で存在感を強めるNGINX、OpenShiftとの親和性でKubernetes本番環境のセキュリティや可用性を追求
- CNDT 2020にNGINXのアーキテクトが登壇。NGINX Ingress ControllerとそのWAF機能を紹介
- KubernetesのDiscovery&LBリソース(その2)
- NGINX Ingress Controllerの柔軟なアプリケーション制御、具体的なユースケースと設定方法を理解する
- Kubernetes上のコンテナをIngressでインターネットに公開するまで
- Kubernetesの基礎
- オンプレミス環境のKubernetesに潜む、セキュリティ×利便性のジレンマを解決する
- RancherのCatalog機能を詳細に見てみる
- 「Inspektor Gadget」でKubernetesクラスタをデバッグする
- Oracle Cloud Hangout Cafe Season 4 #5「Kubernetesのオートスケーリング」(2021年8月4日開催)