Kubernetes 外部 HTTP リクエストが Pod コンテナに到達するプロセス全体

Kubernetes 外部 HTTP リクエストが Pod コンテナに到達するプロセス全体

Kubernetes クラスター外部からの HTTP/HTTPS リクエストはどのようにして Pod 内のコンテナに到達するのでしょうか?

HTTP リクエストフローの概要

上の図に示すように、全体のプロセスはおおよそ次のようになります。

(1)ユーザーはWeb/モバイル/PCクライアントからHTTP/HTTPSリクエストを送信します。

(2)アプリケーションサービスは通常、ドメイン名を通じて外部に公開されるため、要求はまずDNSドメイン名を通じて解決され、対応するパブリックIPアドレスが取得されます。

(3)パブリックIPアドレスは通常ロードバランサーにバインドされており、リクエストはこのロードバランサーに入ります。

  • ロード バランサはハードウェアまたはソフトウェアになります。 IP アドレスが切り替えられると、DNS キャッシュにより一定期間サービスにアクセスできなくなるため、通常は安定した状態 (固定パブリック IP アドレス) のままになります。
  • ロード バランサは、パブリック ネットワーク トラフィックを外部から受け入れ、トラフィックを内部で管理および転送する重要な中間層です。

(4)ロードバランサはリクエストをKubernetesクラスタ内のトラフィックエントリポイント(通常はイングレス)に転送します。

  • Ingress はクラスター内のルーティングと転送を担当し、クラスター内のゲートウェイと見なすことができます。
  • Ingress は単なる構成です。イングレス コントローラはトラフィックの転送を担当します。後者には、Nginx、HAProxy、Traefik、Kong など、多くのオプションがあります。

(5)イングレスは、ユーザー定義のルーティングルールに基づいてサービスにさらに転送されます。

  • たとえば、転送は要求されたパスまたはホストに基づいて行われます。

(6)サービスはセレクタ(ラベルに一致する)に基づいてリクエストをポッドに転送します。

  • サービスには多くの種類がありますが、クラスター内で最もよく使用されるタイプは ClusterIP です。
  • サービスは本質的には単なる構成であり、最終的にはノード上の kube-proxy コンポーネントに作用し、iptables/ipvs を設定することで実際のリクエスト転送を完了します。
  • サービスは複数のポッドに対応する場合がありますが、リクエストは最終的にランダムに 1 つのポッドにのみ転送されます。

(7)ポッドは最終的にその中のコンテナにリクエストを送信します。

同じポッド内に複数のコンテナが存在することは可能ですが、複数のコンテナが同じポートを共有することはできません。したがって、リクエストは特定のポート番号に応じて対応するコンテナに送信されます。

上記は、クラスター外の一般的な HTTP リクエストが Pod 内のコンテナに到達するまでのプロセス全体です。

柔軟で変更可能なネットワーク構成のため、上記のリクエスト フロー プロセスが唯一の方法ではないことに注意してください。たとえば、次のようになります。

クラウド サービスを使用している場合は、LoadBalancer タイプのサービスを使用して、クラウド サービス プロバイダーが提供するロード バランサーを直接バインドし、Ingress やその他のサービスに接続できます。

また、NodePort タイプのサービスを通じてノード上のポートを直接使用し、これらのノードを通じて独自のロード バランサーを構築することもできます。

サービスが非常にシンプルで、管理する内部トラフィックがない場合は、Ingress なしでもかまいません。

コンテナ技術の基礎

コンテナ テクノロジーの基盤は、次の 3 つから構成されます。

  • 名前空間(ここでは Linux システムカーネルの名前空間を指します)
  • Cグループ
  • ユニオンFS

リソースの分離を実装するのは Linux カーネルの名前空間です。各ポッドには独自の Linux 名前空間があるため、異なるポッドはリソースが分離されます。 PID、IPC、ネットワーク、マウント、時間など、多くの名前空間があります。 PID 名前空間はプロセス分離を実装するため、ポッドは独自のプロセス番号 1 を持つことができます。ネットワーク名前空間により、各ポッドは独自のネットワークを持つことができます。

ポッドには独自のネットワークがあり、ノードにも独自のネットワークがありますが、トラフィックはどのようにしてノードからポッドに流れるのでしょうか?

HTTP リクエストフロー処理補足

各ノードには次のものがあります:

(1)Kubelet:ノードのハウスキーパー。

(2)kube-proxy:ノードのiptables/ipvsを操作します。

(3)プラグイン:

  • CRI: コンテナ ランタイム インターフェース
  • CNI: コンテナ ネットワーク インターフェイス
  • CSI (オプション): コンテナ ストレージ インターフェイス

各ノードには独自のルート名前空間があり、これにはネットワーク関連のルート netns も含まれます。各ポッドには独自のポッド ネットがあります。ノードは veth ペアを介してポッドに接続でき、トラフィックはこのチャネルを介して流れます。 veth ペアの構築、ポッド ネットワーク名前空間の設定、ポッドへの IP アドレスの割り当てなどは、まさに CNI のタスクです。

これまでのところ、これは Kubernetes クラスター外部の一般的な HTTP/HTTPS リクエストが Pod 内のコンテナに到達するプロセス全体です。

参考文献:

  • https://kubernetes.io/docs/concepts/services-networking/
  • https://learnk8s.io/kubernetes-network-packets

<<:  Docker Swarm: コンテナオーケストレーションを大幅に簡素化

>>:  無線ネットワーク向け将来の通信インフラの革新

推薦する

五糧液のブランド保護戦争:ドメイン名登録の保護を忘れずに

インターネットの急速な発展により、多くの伝統的な企業が急速に電子商取引へと転換するとともに、企業のウ...

GAを使用してSEOパフォーマンスを監視する

書き出しの書き方がわからず、とにかく少し混乱しています。今日は、私自身のヒントをいくつか共有したいと...

Hostgator 4.9% オフ プロモーション (珍しい機会、5 月 31 日午後 3 時まで延長)

Hostga の「言葉では言い表せない」ホストは、その安定性で知られており、仮想ホストランキングでも...

私たちが一緒に行ったフォーラムのプロモーション

フォーラムは、オンライン プロモーションの誕生以来存在しています。フォーラムは、コミュニケーション ...

ゲーミフィケーションのユーザー成長戦略に関する最も包括的なガイド

01. 「AARRR」の理論的定義オンラインインターネットトラフィックの浸透がますます集中するにつれ...

ロングテールキーワードをランク​​付けするにはどうすればよいでしょうか? ロングテールキーワードを通じて顧客を獲得するにはどうすればよいでしょうか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますはじめに:...

サイトを過度に最適化すると、得られるものよりも失うものが多くなります

サイトの過剰最適化の問題は、多くの最適化担当者、特に最適化を始めたばかりの初心者にとっては馴染みのな...

WeChatの輝きが薄れる中、テンセントは成長停滞の苦境に陥っている

テンセントは微妙な岐路に立っている。テンセントの株価が史上最高値に達した後、資本市場の不安がついに表...

モバイル検索エンジン向けにコンテンツを最適化する

YAHOO、GOOGLE、NOKIE、JumpTapは最近、大規模なモバイル検索エンジンの研究を行っ...

azzavps-1.5g メモリ/15g SSD/1T トラフィック/ニューヨーク/月額 5.5 ドル

ニュージーランドの VPS 業者である azzavps は、同社初の SSD ハード ドライブ VP...

SogouとWeChatの契約が終了しました。今後、パブリックアカウントの記事はどこで読めますか?

2017年10月、テンセントは一部のユーザーを対象に、Sogou SearchをWeChatに統合す...

分散ストレージの技術開発動向

[[388597]]分散ストレージの技術開発動向1. 3部コピーのデメリットCeph や VSAN ...

ページ品質を向上させ、ウェブサイトのランキングを維持する

企業サイトのSEOを行う上で最も恐ろしいのは、一夜にして順位が消えてしまうことです。何の前兆もなく順...

企業向け: クラウド コンピューティングの 10 のメリット

今日では、企業内のデータセンターはもはや人気がありません。もちろん、企業にはバックアップとしてデータ...

スチュワーデス殺害事件の真相は衝撃的だ

法規制ネットワークからの総合ニュース:昨日、多くのメディアが客室乗務員の殺害に関するニュースを報道し...