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 この 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 仮想マシンを作成する
私がウェブマスターになってからちょうど5年が経ちました。この5年間、ウェブサイトを運営する上で多くの...
配当がなくなり資本が合理性に戻るにつれて、投資家はROIをより重視するようになり、トラフィックの収益...
ウェブサイト構築の核心は、「いかに潜在顧客を見つけ、効果的に協力顧客に転換するか」です。ここで言う効...
ライト、ライト、ライト!CEENとAdmin5 Webmaster Networkが共同で開催した「...
おそらく、2018 年に多くの企業にとって最も優先度の高い取り組みは、クラウド支出の最適化となるでし...
最近、今週開催された SC21 ハイパフォーマンスコンピューティングカンファレンスで発表された最新の...
創業9年の国内企業、Geek HostがVPSプロモーションを実施しています。シンガポールCN2回線...
Baidu は最近、Green Radish Algorithm や Spark Project な...
背景情報: Ce氏——Ceenの「世界名靴淘宝」プロモーションコンテストの特別審査員昇格コンテストの...
国内のSEO業界の発展は打撃を受け、圧迫されているのでしょうか、それとも別の活路があるのでしょうか?...
618 の期間全体を振り返ってみると、ビリビリの電子商取引事業はまだ大きな成果を上げていません。生放...
「パンケーキおばさんのO2O暴露」という記事を見ました。この記事を読んでから、ずっと興味深くて、私も...
この2か月間には、教師の日、中秋節、10月初旬の国慶節など多くの祝日があり、インターネットにはあらゆ...
ウェブサイトの構造は SEO の基礎です。ウェブサイト内の最適化は、大きく分けて 2 つの部分に分け...
記者の張仙安が北京からレポートします6月には北京の望金宝と深センの客訊が再び逃亡したと報じられ、中央...