目次
ネットワークインフラで、セキュアでパフォーマンスが高い通信が求められている
Kubernetes Ingress(以下、Ingress)について名前は聞いたことがあるが、具体的な知見がないため、導入が見送られたケースも存在すると思われます。
しかし、 Ingress を導入すると、ネットワークインフラで、セキュアかつパフォーマンスが高い通信が実現できます。
本記事では、Ingress の基本的な役割について説明します。また、 Ingress の具体的な実装方法、利用範囲や効果も紹介するので、 Ingress を導入する際の参考にしてください。
1. Kubernetes Ingress導入の前提知識
Ingress を効果的に利用するために、必要な基本概念について理解しておきましょう。前提知識を身につけることで、 Ingress を具体的に活用する前の準備としてください。
Ingressの基本的な役割と概念
Ingressは Kubernetes クラスター内でトラフィックを分散し、 Kubernetes クラスター内で実行される複数のサービスやアプリケーションへのアクセス方法を管理します。
次の参考図は、 Ingress が複数のサービスへのアクセス方法を管理している具体的な例です。

図版出典:Middleware inventory / Devops Junction
またトラフィックを送る際に、 HTTP に加えて HTTPS による通信に対応しています。ビジネスにおいては、通常 HTTPS による通信が活用されることが多いです。
なぜIngressが必要なのか
Ingressがサービスやアプリケーションへのアクセス方法を管理することで、トラフィックが不要な通信で流れなくするなど、ネットワークを最適に使用することができるようになります。
また、 HTTPS による通信を選択することで、トラフィックを暗号化して伝達できるので、セキュリティ性の高い通信を実現できます。
このように Ingress はアクセス管理の場面やセキュリティにおいて有用性を持つため、 ネットワークインフラにおいて Ingress は必要であると言えます。
2. Kubernetes Ingressの使用方法
ここでは、 Ingress の使用方法としてアプリケーショントラフィック管理、Ingress の設定方法、パスルーティングの設定方法、 TLS 証明書の設定方法について解説します。
詳細については、 Kubernetes の公式サイトも参照しながら、実際に Ingress を使ってみてください。
アプリケーショントラフィック管理
Ingressでは、ルーティング処理によりアプリケーションへ送信されるトラフィックを管理します。トラフィック管理では、ポリシーを設定することにより、プロトコルやポートなどに対して通信を指定できます。
また、セッション管理を行うことで、通信が継続している相手を識別した状態で一貫性を保つことができます。
Ingressの設定方法
Ingressの設定は、 YAML 形式の設定ファイルで行います。 YAML は構造的なデータを表し、 Ingress では DNS サブドメイン名やルーティング規則などを設定ファイルに記載します。
具体的な設定ファイルの書き方については、以下の Kubernetes の公式サイトを参照することをおすすめします。公式サイトを参考に設定することで、統一されたフォーマットで容易に設定ができます。
パスルーティングの設定方法
Ingressでは、 URI ベースのパスでルーティングの設定ができます。
例えば、localhost://test/1 と localhost://test/2 に対し、異なるトラフィックの制御ができます。パスルーティングを行うことで、最適な経路を選別することができます。
また、 URI はインターネット上のパスを一意に指定するので、正しく Ingress の設定を行えばトラフィックの向き先が重複することはありません。そのため、トラフィックの混雑を事前に防ぎ、通信の遅延などの障害を防ぐことができます。
TLS証明書の設定方法
Ingressで TLS 証明書を設定するためには、まず TLS 証明書を作成します。 TLS 証明書は、 OpenSSL を使用して無料で作成することもできます。
TLS証明書が作成できたら、 TLS 証明書をクラスターに保存し、 TLS を有効にする設定を行います。詳しい設定内容については、先に紹介した Kubernetes の公式サイトを参照することをおすすめします。
3. Kubernetes Ingressの活用
ここでは、 Kubernetes Ingress の利用範囲や効果に関する情報を解説しますので、Kubernetes Ingress を活用するイメージをしてみてください。
Ingressの利用範囲
Ingressはロードバランサーやエンドポイントとして利用することで、サービスやアプリケーションへのアクセスを管理できます。 TLS 証明書を設定すれば、 TLS 終端として利用できエンドポイントでトラフィックが必ず暗号化されるようになります。
また、 Ingress は Kubernetes クラスター内のトラフィックを可視化できるので、不正なトラフィックが流れていないかなどを確認するため、監視の目的で利用することもできます。
Ingressを導入することで、ビジネスに与えるメリット
ビジネスでは、データの流出のようなセキュリティ事故を防止する必要があります。 Ingress を導入することで、トラフィックを暗号化でき、ビジネスにおけるセキュリティリスクを低減することができます。
また、ビジネスでは、パフォーマンスが高いネットワークインフラが求められます。 Ingress を導入することで、ロードバランサーの機能により、ネットワークインフラのパフォーマンスを高めることができます。
このように、 Ingress を導入することでビジネスに与えるメリットは高いと言えます。
Ingressを導入することで、コスト対効果へどのように寄与するか
Ingressが果たすロードバランサーとしての機能により、サーバーリソースを最適に活用することができ、リソースにかけるコストが最適化されます。
また、万一セキュリティ事故が起きた時の企業の損失は図り知れません。 Ingress が果たすセキュリティ効果により、そのような損失により発生するコストを事前に防ぐことができます。
4. まとめ
情報化社会の中でネットワークの利用が当たり前になる中で、しばしばネットワークの輻輳が問題となることもあります。その中で、Ingress を導入することで、トラフィックを分散することにより安定したネットワークを保つことができます。
Kubernetes の運用を相談したい

Tag: Kubernetes Ingress
Contactお問い合わせ
お見積もり・ご相談など、お気軽にお問い合わせください。