みなさんこんにちは。私は次男です。 「トロイの木馬 - 図解 VXLAN コンテナ ネットワーク通信ソリューション」という記事で、次兄が次のような鳥瞰図を描いてくれました。これは、Flannel VXLAN モードに基づいて実装された K8s Overlay ネットワーク モデルに必要なさまざまなネットワーク デバイスをまとめたもので、主にこれらのデバイス間のデータ フローに焦点を当てています。しかし、その記事にはいくつかの欠点があります (Versailles):
図1: フランネルに基づくオーバーレイネットワークモデルのデバイス関係図 新たな視点私の次兄はとても思いやりのある人なので、特別に下の絵を描いてあげました。別の視点から見ると、いくつかの重要な側面が強調されます。
図2: デバイスとプロトコルスタックの関係図 図 2 では、ポッド a の IP アドレスは 10.244.0.2 で、ポッド b の IP アドレスは 10.244.1.3 です。左の図では、ブリッジ cni0 に IP アドレス 10.244.0.1 が割り当てられており、右の図では、ブリッジの IP アドレスは 10.244.1.1 です。すべては図 1 と同じままですが、視点が変わっただけです。この話は、左側のポッド a のコンテナが右側のポッド b にリクエストを開始するところから始まります。つまり、src IP は 10.244.0.2、dest IP は 10.244.1.3 です。 1.x は、コンテナ内でのネットワーク パケットの生成から、ネットワーク パケットがネットワーク カードから送信されるまでの、ノード 1 上の完全なプロセスを表します。同様に、2.x は、ネットワーク カードが要求を受信してから、その要求が最終的に Pod b のコンテナーに送信されるまでの、ノード X 上の完全なプロセスを表します。この図は応答プロセスを示していないため、図内の矢印はすべて一方向になります。実際、すべての矢印を反転することが応答プロセスです。これからの道は曲がりくねった山道ですので、お座りください、親愛なるお客様。もうすぐ出発します。 ポッドで起こった物語1.2 このロケーション ルーティング テーブル + iptables は、Pod 内のコンテナのネットワーク ルーティングを制御するために使用されます。 Pod a のコンテナでは、10.244.0.1 がゲートウェイの役割を果たし、図では 10.244.0.1 がブリッジ cni0 になります。以下は 1.2 のルーティング テーブルです。 # Pod a のコンテナ上 もう一度強調する必要がある概念が 1 つあります。1.2 と 1.6 では異なるネットワーク名前空間に属する 2 つのルーティング テーブルがありますが、TCP/IP プロトコル スタックは 1 つだけです。つまり、プロトコル スタックの場合、同じデータ構造の異なるデータ インスタンスを処理するだけです。 完璧な移行ネットワーク パケットが 1.4 に沿ってブリッジ cni0 に流れ込むと、ブリッジの特別な機能を使用して、ネットワーク パケットを 1 つのネットワーク名前空間から別のネットワーク名前空間に完全にジャンプするという魔法のような効果が得られます。 ブリッジはネットワーク ブリッジであり、その動作はレイヤー 2 スイッチに似ています。ネットワーク パケットの宛先 MAC アドレスがブリッジ自体であり、ブリッジに IP アドレスがある場合、ブリッジはネットワーク パケットがブリッジを作成したホストに送信される必要があると判断します。したがって、このネットワーク パケットはブリッジによってどのデバイスにも転送されず、処理のために上位層 (レイヤー 3) プロトコル スタックに直接渡されます。この処理には、ローカル ルーティング テーブルに基づいたルーティング クエリが含まれます。 1.6 のルーティング テーブルがその役割を果たし始めます。宛先 IP が 10.244.1.3 であるため、ネットワーク パケットは tun デバイス flannel.1 に送信する必要があります。 # ホストマシン ノード 1 実は、1.4 ~ 1.5 にはさらに興味深い問題が関わってきます。たとえば、ネットワーク パケットは veth ペア間でどのように流れるのでしょうか?ブリッジ内でネットワーク パケットはどのように処理されますか?しかし、これはこの記事の焦点ではないので、後で説明します。しかし、まずは図3を載せておきます。この画像は、私の記事「画像を見てストーリーを書こう: veth データフローについて話しましょう」でご覧になったことがあるかもしれません。その記事の写真を元に橋の加工詳細を追加しました。この場所については、機会があれば後で詳しくお話ししたいと思います。 図3: veth + ブリッジネットワークパケット受信プロセスにおけるブリッジ処理の詳細 逆にやってみようノード X がノード 1 からデータを受信すると、そのデータは 2.1 を経由して最終的に 2.11 に到達し、そこでポッド b がポッド a からのリクエストを受信します。ご覧のとおり、矢印の方向が異なることを除けば、図 2 の左側と右側の部分はほぼ同じです。はい、実際に絵を描くときは、貼り付け、コピーして、矢印の方向を一括変更するだけです。 右図の位置 2.6 と 2.10 にあるルーティング テーブルと iptables の機能は、左図のものと同じなので、ここでは繰り返しません。旅は困難でしたが、ついに到着しました。この記事はここで終わります。 |
<<: 成功する GitOps モデルを開発するための 3 つのステップ
>>: ローカル展開と比較したクラウド展開の利点は何ですか?
キーワードを選択する一般的な方法は、依然として百度インデックスを使用することです。しかし、ウェブマス...
FTPIT の今回のプロモーションには、SSD CACHE ではなく、純粋な SSD ハードドライブ...
ウェブマスターが毎日どれだけ大変な仕事をしているかは、誰もがよく知っています。ウェブサイトのコンテン...
2014年5月25日、IDG Capitalが全額出資し、創業邦が共催した第11回IDGキャンパス起...
誰もが悲しい旅をします。その道を歩んだ後は、自分が歩んできた一歩一歩を振り返る時です。過去を振り返る...
基本的な紹介日常業務では、すべての空港に航空機の着陸場所や駐機場所を管理するためのディスパッチルーム...
ロングテール キーワードは、現在の SEO 分野で広く使用されています。現在の SEO 実践者も、ウ...
更新されていない新しいサイトのスナップショットは、確かにウェブマスターにとって最も厄介なことですが、...
1月から9月まで、ネットワーク全体の月間アクティブユーザー純増数は1,500万人を超えました。高齢者...
記者は10月17日、テンセントクラウドがガートナーが発表したばかりの2023年「コンテナ管理のマジッ...
一年を振り返ってみると、ビリビリのラベルは常に「輪を破る」ものでした。年初の年越しガラからその後の「...
分散システムについて学ぶ前に、最初に解決する必要がある質問は、「分散システムはどのような問題を解決す...
はじめに: 企業のウェブサイトや一般の SEO 担当者にとっての活路はどこにあるのでしょうか?これま...
過去 1 ~ 2 か月で、SEO 業界で非常に人気が高まった SEO トレーニング - seopas...
多くのウェブサイトがBaiduプロモーションを行っています。この作業は非常に複雑に思えるため、多くの...