Kubernetes Ingress はどのように機能しますか?

Kubernetes Ingress はどのように機能しますか?

Kubernetes Ingress は、アプリケーションの HTTP および HTTPS ルーティングを管理するためのメカニズムです。 Kubernetes クラスターに Ingress リソース オブジェクトを作成して、統合アクセス ポータルを提供し、リクエストをさまざまなバックエンド サービスにルーティングすることで、アプリケーションの負荷分散とトラフィック制御を実現します。

Ingress は、クラスター内にロード バランサーを作成することでリクエスト ルーティングを実装します。このロードバランサーは、Kubernetes クラスターの外部にある独立したロードバランサー(DaemonSet をクラスターのエッジノードにデプロイできます(エッジノードはクラウドコンピューティングデータセンターを基準とし、最終アクセスユーザーとの間に中間リンクが少ないネットワークノードを指します。コンピュータールームや物理デバイスなどです。ソースステーションへの直接アクセスと比較して、エンドユーザーがアクセスする際の応答性と接続速度が向上します。つまり、外部と直接通信できるノードです。Taint と Tolerance を設定して、DaemonSet がこれらのエッジノードでのみ実行できるようにし、hostNetwork を使用して外部が Ingress Controller に直接アクセスできるようにすることができます)。)、または Kubernetes クラスター内の Service リソースオブジェクト(Ingress Controller は NodePort を通じて公開されます)にすることができます。ロードバランサーは、リクエストを受信すると、要求されたホスト名とパスに基づいて、リクエストを対応するバックエンドサービスにルーティングします。

Kubernetes では、Ingress オブジェクトは Ingress Controller を通じて実装されます。コントローラは、Ingress オブジェクトのルールとバックエンド サービスの情報に基づいてロード バランサ構成を自動的に生成し、ロード バランサに適用します。このプロセスは自動化されているため、開発者は Ingress オブジェクトを定義するだけで、コントローラーが負荷分散とルーティングを自動的に処理します。

Ingress オブジェクトのルールは、ホスト、パス、サービスの 3 つの部分で構成されます。このうち、Host は要求されたホスト名、Path は要求されたパス、Service は要求がルーティングされるバックエンド サービスです (Ingress Controller はサービスを通じて対応するポッドを見つける必要があります)。 Ingress オブジェクトには複数のルールを含めることができ、各ルールには複数のパスを含めることができ、各パスは異なるバックエンド サービスにルーティングできます。

リクエストが Ingress コントローラに到達すると、コントローラは要求されたホスト名とパスに基づいて一致する Ingress ルールを選択し、対応するバックエンド サービスにリクエストをルーティングします。このプロセスは通常、Nginx や HAProxy などの HTTP プロキシを通じて実装されます。

要約すると、Kubernetes Ingress は、開発者がアプリケーションの HTTP および HTTPS ルーティングを管理するのに役立つ非常に便利なメカニズムです。これはロードバランサーとコントローラーに基づいており、リクエストの自動ルーティングと負荷分散を実現し、開発者にアプリケーションを管理するためのシンプルで効率的な方法を提供します。

Ingress がどのように機能するかを説明するために例を見てみましょう。

Kubernetes クラスターに service1 と service2 という 2 つのバックエンド サービスがあり、それぞれのアドレスが 192.168.1.1 と 192.168.1.2 であるとします。ここで、Ingress を使用してリクエスト ルーティングと負荷分散を実装します。

まず、クラスター内に Ingress オブジェクトを作成する必要があります。次に例を示します。

 apiバージョン:ネットワーク.k8s .io / v1
種類:イングレス
メタデータ:
名前:-イングレス
仕様:
ルール:
-ホスト: example.com
http://www.google.com/dp ...
パス:
-パス: / service1
パスタイプ:プレフィックス
バックエンド:
サービス
名前:サービス1
ポート:
名前: http
-パス: / service2
パスタイプ:プレフィックス
バックエンド:
サービス
名前:サービス2
ポート:
名前: http

この Ingress オブジェクトには 2 つのルールが含まれており、1 つのルールは example.com/service1 を service1 バックエンド サービスにルーティングし、もう 1 つのルールは example.com/service2 を service2 バックエンド サービスにルーティングします。

次に、Ingress 機能を実装するために、クラスター内で Ingress コントローラーを起動する必要があります。このコントローラーは、Nginx や HAProxy など、Kubernetes Ingress 標準に準拠する任意のコントローラーにすることができます。コントローラーを起動すると、クラスター内の Ingress オブジェクトが自動的に読み取られ、Ingress オブジェクトのルールに基づいてロードバランサー構成が自動的に生成されます。

リクエストが Ingress コントローラに到着すると、コントローラは要求されたホスト名とパスに基づいて一致する Ingress ルールを選択し、対応するバックエンド サービスにリクエストをルーティングします。たとえば、リクエストが example.com/service1 に到着すると、コントローラーはリクエストを service1 バックエンド サービスのアドレス 192.168.1.1 にルーティングします。リクエストが example.com/service2 に到着すると、コントローラーはリクエストを service2 バックエンド サービスのアドレス 192.168.1.2 にルーティングします。

このように、Ingress を使用してリクエスト ルーティングと負荷分散を実装することができました。 Ingress を使用すると、アプリケーションの HTTP および HTTPS ルートを簡単に管理し、リクエストの自動ルーティングと負荷分散を実装できるため、アプリケーションの信頼性とスケーラビリティが向上します。

Kubernetes クラスター内に複数の Ingress オブジェクトを作成し、各 Ingress オブジェクトを異なるサービスまたはサービス バージョンごとに異なるルーティング ルールで構成できます。この機能により、同じクラスター内で複数のアプリケーションまたはバージョンを実行できるようになります。

Ingress オブジェクトが複数ある場合は、競合を避けるために、Ingress オブジェクトごとに異なるホスト名またはポート番号を設定することをお勧めします。重複する Ingress オブジェクト ルールが複数ある場合、Kubernetes は一致するルールが見つかるまで、Ingress オブジェクトが作成された順序でそれらを解析します。したがって、Ingress オブジェクトが複数ある場合は、不要な問題やセキュリティ リスクを回避するために、それらの間の優先順位とルールの競合を慎重に検討する必要があります。

<<:  Terraform を使用して Azure 仮想マシンを作成する

>>:  クラウド時代の従来のバックアップ戦略の再考

推薦する

微博のビッグアカウントが微信を宣伝し、一夜にしてフォロワーを0から1000人に増やした

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスWeChatマーケティン...

ssdvirt - $5/年/64MB RAM/2GB SSD/100GB データトラフィック/G ポート/ダラス

私の記憶にある限り、ssdvirt は特別に低価格な VPS をリリースしたことはありません。今回発...

Alibaba Cloud Video Cloud Panoramic Innovation Summit: オールビデオコンテンツ時代のクラウドベースのイノベーション

高画質携帯電話、無人航空撮影、VRなどのハードウェア技術の進歩、5Gなどのインフラの普及により、映像...

ウェブサイト開発の基盤を強化するためにコンテンツ構築をしっかり行う

6月28日と7月23日のBaiduの大規模アップデートからしばらく経ち、A5のウェブマスターの今回の...

クラウド バックアップ ソリューション クラウド コンピューティングを活用してみませんか?

クラウド バックアップ ソリューションの最初のバージョンは、主に個人の消費者向けラップトップを保護す...

Z世代のためのブランドマーケティングの秘訣

Z世代とは、1995年から2010年の間に生まれた人々を指します。しかし、私は、特定の時点で生まれた...

Kubernetesを導入することで、企業は時間とコストを節約できる

COVID-19パンデミックは、わずか1年余りで、あらゆる企業のビジネスのやり方に、以前なら何年もか...

瑞康製薬とアマゾン ウェブ サービスが戦略的協力協定を締結し、医薬品流通業界のデジタル変革のベンチマークを構築

アマゾン ウェブ サービスは、国内医薬品流通業界の大手企業である瑞康製薬と戦略的協力契約を締結したと...

Vestacpパネルを支援するための一般的なヒントのコレクション

VESTACP は非常に成熟した強力なホスト パネルです。選択できるパネルは多数ありますが、VEST...

「インターネット思考」の火をつけたのは何でしょうか?

「インターネット思考」という言葉は、今日では非常に人気があり、インターネット思考に関係するものであれ...

議論しないでください、分散ロックもロックです

[[250750]]トムキャットロックTomcat はこのシステムの中核コンポーネントです。ユーザー...

広告オフシーズン中にインターネット企業は何をしているのでしょうか?

広告は間違いなくインターネット上で最大のビジネスモデルです。Google、Facebook、Baid...

alphavps-server/33€/2xL5630/72g メモリ/5IP

ちょうど一昨日、「alphavps - 年間支払い 12 ユーロ / メモリ 1g / CPU 2 ...

キーワードデータベースの構築方法

前回の記事では、ウェブサイトの最適化におけるキーワードシソーラスの役割について詳しく説明しました。大...

外国人住宅交換観光ウェブサイトのモデルの分析:魅力と恐怖

ホームエクスチェンジ観光が盛んになって以来、安全問題は常に懸念事項であり、特に「家を買うためだけに一...