Kubernetes ネットワーク プラグインの詳細な説明 - Calico - ネットワークの基礎

Kubernetes ネットワーク プラグインの詳細な説明 - Calico - ネットワークの基礎

コンテナーは、基盤となる Linux オペレーティング システムの名前空間と Cgroup カーネル テクノロジを使用して、プロセス ID、ホスト名、ユーザー ID、ファイル名、ネットワーク、プロセス間通信などの軽量仮想化リソースの分離を単一ホスト上で実現します。同時に、各ネットワーク空間のネットワーク名前空間には、ネットワーク インターフェイス、ループバック デバイス、ルーティング テーブル、iptables ルールなどを含む独立したネットワーク スタックがあり、これがコンテナー ネットワークの分離と通信の基礎となります。

Kubernetes は、コンテナ テクノロジーを中核とするスケジューリング エンジンです。コンピューティング、ストレージ、ネットワークなど、従来のクラウド コンピューティングに対応する基本リソースを完全にプールし、統一的に管理します。また、技術アーキテクチャ上で実行されるアプリケーションとサービスを抽象化および標準化し、スケジューリングを通じてアプリケーションとリソースを迅速にマッチングさせることで、アプリケーションを中心としたクラウドネイティブのオペレーティング システム機能を構築します。

Kubernetes クラスターでは、同じホスト内の複数の名前空間ネットワーク スタックが基盤となるハードウェア リソースを共有するという問題を解決すると同時に、クラスター内のホスト間ネットワーク通信の問題を解決し、アプリケーションに完全なネットワーク機能を提供する必要があります。したがって、コンテナ ネットワークは Kubernetes の最も複雑な部分であり、設計の本質でもあります。同じホスト上の基盤となるハードウェア デバイスを共有するという問題は、通常、仮想化テクノロジの助けを借りて実現され、仮想デバイスを通じて柔軟な管理が実現され、その後、仮想化されたデバイスが実際の物理デバイスに接続されてネットワーク通信が実現されます。ホスト間のネットワーク通信の問題に対しては、SDNソフトウェア定義ネットワークの考え方を採用し、基盤となるネットワーク通信プロトコルを柔軟に使用し、さまざまな仮想化トンネル通信技術を組み合わせて、コンテナクラスター内の内部および外部通信を実現します。

したがって、複雑なコンテナ ネットワークとさまざまなネットワーク プラグインを理解するには、まずネットワーク通信、ネットワーク デバイスの仮想化、ネットワーク トンネリング テクノロジの基礎を理解する必要があります。ネットワーク通信の基礎。

1. ネットワークモデル

  OSI ネットワーク モデルは、ネットワーク データの送受信のプロセスを、物理層、データ リンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層の 7 つの層に分割します。 TCP/IP プロトコルは、異なるネットワーク間での情報伝送用のプロトコル スイートを定義し、ネットワークのすべてのレベルでの通信の標準と方法を確立します。 TCP/IP には多くのプロトコルが含まれており、一般的なプロトコルには IP、FTP、TCP、UDP、SMTP などがあります。TCP/IP プロトコルは、主にリンク層、ネットワーク層、トランスポート層、アプリケーション層を含む 4 層または 5 層を定義します。 OSI はオープン システム相互接続モデルです。関連するプロトコルはほとんど使用されませんが、モデル自体は非常に一般的です。 OSI モデルはあまりにも理想主義的であり、まだ完全に実装されていないだけです。 TCP/IP ネットワーク構造システムは、実際には OSI 7 層モデルから進化したものです。それは業界標準です。 TCP と IP プロトコルのみで構成されているのではなく、複数の異なるネットワーク間での情報伝送をサポートするプロトコル クラスターです。以降のネットワーク通信は主に TCP/IP プロトコルの説明に基づいています。

2. ネットワークデータパケット

TCP/IP 通信において、ネットワーク層の役割は、端末間のポイントツーポイント通信を実現することです。データ パケットは IP アドレスを介して宛先ホストに送信されます。データを送信する際、ネットワーク スタックの各層は独自のメッセージ ヘッダーを追加します。このヘッダーには、データ パケットがネットワークを通過する際にその層でデータ パケットを処理し、結果のデータ パケットをスタックの次の層に渡すために必要な制御/メタデータが含まれています。これにより、完全なデータ パケットが生成されます。

3. IPルーティング

ネットワーク デバイスはデータ パケットを受信すると、データ パケットの宛先 IP アドレスに基づいてルーティング テーブルを照会します。一致するルーティング エントリがある場合、データ パケットはクエリ結果に基づいて転送されます。一致するルーティング エントリがない場合、データ パケットは破棄されます。このプロセスは IP ルーティングです。ルーターに加えて、3 層スイッチ、ファイアウォール、負荷分散デバイス、さらにはホストでもルーティング操作を実行できます。各ルーティング エントリには、宛先ネットワーク セグメント アドレス/サブネット マスク、ルーティング プロトコル、送信インターフェイス、ネクスト ホップ IP アドレス、ルーティングの優先度、メトリックなどの情報が含まれています。ルーティング テーブルは、直接ルーティング、静的ルーティング、動的ルーティングの 3 つの方法で取得できます。動的ルーティングは、動的ルーティング プロトコルを通じて隣接するネットワーク デバイスから動的に学習されたルーティング エントリです。プロトコルには、OSPF、BGP、RIP、RIPv2 などがあります。

その中でも、BGP プロトコル、つまりボーダー ゲートウェイ プロトコルは、TCP 上で動作し、インターネットの規模に対応できるネットワーク プロトコルです。また、関連のないルーティング ドメインを改善できるマルチパス接続プロトコルでもあります。 BGP は主に、他の BGP 回線とのネットワーク接続を確立し、AS を含む情報を交換するために使用されます。 Kubernetes コンテナ ネットワーク プラグイン Calico は、このプロトコルに基づいてネットワーク データ転送を実装します。

4. NAT(ネットワークアドレス変換)

ネットワーク アドレス変換は、IP データグラム ヘッダー内の IP アドレスを別の IP アドレスに変換し、ポート番号を変換することでアドレスの再利用の目的を達成できるアドレス変換テクノロジです。

ネットワークデバイスの仮想化

仮想化技術が登場する前は、コンピュータ ネットワーク システムは、物理的なネットワーク カードとケーブル メディアを介して外部ネットワークに接続され、巨大なネットワークを形成していました。仮想化技術の登場により、ネットワークも仮想化されるようになりました。単一の物理ネットワークと比較すると、仮想ネットワークは非常に複雑になっています。 Linux 仮想ネットワークの最下層は、スイッチング、ルーティング、トンネリング、分離、集約などのさまざまなネットワーク機能を実現するための仮想デバイスで構成されています。一般的な仮想ネットワーク デバイスには、tap/tun、veth-pair、ブリッジなどがあります。

1. タップ/チューニング

Tap/Tun は、Linux カーネルによって実装された仮想ネットワーク デバイスのペアです。 TAP はレイヤー 2 で動作し、TUN はレイヤー 3 で動作します。Linux カーネルは、TAP/TUN デバイスを介して、TAP/TUN デバイスにバインドされたユーザー空間プログラムにデータを送信します。逆に、ユーザー空間プログラムは、物理ネットワーク デバイスを操作するのと同じように、TAP/TUN デバイスにデータを送信することもできます。

2. ベスペア

Veth ペアは、一方の端がカーネル プロトコル スタックに接続され、もう一方の端が別のデバイスに接続されます。デバイスはカーネルから送信されたデータを受信すると、それを別のデバイスに送信します。このデバイスは通常、コンテナ内の 2 つの名前空間間の通信に使用されます。

3. ブリッジ

ブリッジは、Linux カーネルによって実装され、第 2 層で動作する仮想ネットワーク デバイスです。ただし、TAP/TUN などのシングルポート デバイスとは異なり、Bridge はマルチポート デバイスとして実装されます。本質的には、物理​​スイッチと同様の機能を備えた仮想スイッチです。 Bridge は、他の Linux ネットワーク デバイスをスレーブ デバイスとしてバインドし、これらのスレーブ デバイスをポートに仮想化できます。スレーブ デバイスをブリッジにバインドすると、実際のネットワークのスイッチ ポートに端末付きのネットワーク ケーブルを挿入するのと同じになります。

ネットワークトンネリング技術

トンネリングは、ネットワーク プロトコルがサポートされていない、データ転送が安全でないなどのネットワーク通信の問題を主に解決するネットワーク データ通信テクノロジです。サポートされていないプロトコル パケットをサポートされているプロトコル パケットにパックして送信するか、安全でないネットワーク上で安全なパスを提供します。ネットワーク トンネル テクノロジーにより、トンネルの両端のネットワークはより大きな内部ネットワークを形成できます。

トンネル プロトコルには、レイヤー 2 トンネル プロトコルとレイヤー 3 トンネル プロトコルの 2 種類があります。レイヤー 2 トンネル プロトコルは、OSI モデルのデータ リンク レイヤーに対応し、フレームをデータ交換単位として使用し、データをポイントツーポイント プロトコル フレームにカプセル化して、インターネット経由で送信します。プロトコルには、PPTP、L2TP、L2F などがあります。レイヤー 3 トンネリング プロトコルは、OSI モデルのネットワーク層に対応します。パケットをデータ交換単位として使用し、IP ネットワーク経由での送信のためにデータ パケットを追加の IP ヘッダーにカプセル化します。プロトコルには、GRE、IPSec、GRE などがあります。Linux は複数のレイヤー 3 トンネルをネイティブにサポートしており、その基礎となる実装原則はすべて tun デバイスに基づいています。

  • IPIP:通常の IPIP トンネルは、メッセージを IPv4 メッセージにカプセル化します。
  • GRE: Generic Routing Encapsulationは、任意のネットワーク層プロトコルの上に他のネットワーク層プロトコルをカプセル化するメカニズムを定義するため、IPv4とIPv6の両方に適用できます。
  • SIT:主にIPv4メッセージのカプセル化IPv6メッセージ、つまりIPv6 over IPv4に使用されます。
  • ISATAP:サイト内自動トンネルアドレス指定プロトコル。sit に類似しており、IPv6 トンネルのカプセル化にも使用されます。
  • VTI:仮想トンネル インターフェイス。IPsec トンネル テクノロジーの一種。

1. VXLANトンネル技術

Linux カーネルはバージョン 3.7 以降、VXLAN トンネル テクノロジーをサポートしています。これは、最も人気のあるオーバーレイ ネットワーク トンネル プロトコルの 1 つです。レイヤ 2 イーサネット フレームをレイヤ 4 UDP メッセージにカプセル化し、レイヤ 3 ネットワークを介して送信して、仮想の大規模なレイヤ 2 ネットワークを形成します。 VXLAN は、パケットのカプセル化とカプセル化解除に VTEP (VXLAN トンネル エンドポイント) を使用します。送信側では、ソース VTEP が元のメッセージを VXLAN メッセージにカプセル化し、UDP 経由でピア VTEP に送信します。受信側では、VTEP が VXLAN メッセージをカプセル化解除し、元のレイヤー 2 データ フレームを宛先受信者に転送します。 VTEP は、スイッチなどの独立したネットワーク デバイス、またはサーバー上に展開された仮想デバイスになります。たとえば、トップオブハウススイッチ (TOR) を VTEP として使用する場合、VXLAN ネットワーク モデルは次のようになります。

  • VTEP (VXLAN トンネル エンドポイント): VXLAN メッセージのカプセル化とカプセル化解除に使用される、VXLAN ネットワークのエッジ デバイス。 VTEP は、ネットワーク デバイス (スイッチなど) またはマシン (仮想化クラスター内のホストなど) になります。
  • VNI(VXLAN ネットワーク識別子): VNI は VXLAN の識別子であり、24 ビットの整数であるため、最大値は 2 の 24 乗です。1 つの VNI が 1 つのテナントに対応する場合、VXLAN は理論的には数千万のテナントをサポートできます。
  • VXLAN トンネル:トンネルは論理的な概念であり、VXLAN モデル内に対応する物理エンティティはありません。トンネルは仮想チャネルとみなすことができます。 VXLAN 通信の両当事者は、直接通信していると信じており、基盤となるネットワークの存在を認識していません。全体として、各 VXLAN ネットワークは、通信デバイス用に個別の通信チャネルまたはトンネルを構築するようなものです。

VXLAN メッセージは UDP の MAC であり、これはレイヤー 3 ネットワークに基づいて仮想レイヤー 2 ネットワークが構築されることを意味します。 VXLAN のパケット形式は、元のレイヤー 2 イーサネット フレーム (MAC ヘッダー、IP ヘッダー、トランスポート層ヘッダーを含む) が VXLAN ヘッダーにカプセル化され、標準の UDP ヘッダー (UDP ヘッダー、IP ヘッダー、MAC ヘッダー) に配置されて、基盤となるネットワーク上でメッセージを送信することを示しています。 VXLAN パケットは元のパケットより 50 バイト長くなるため、特に小さなパケットの場合、ネットワーク リンク上で送信される有効なデータの割合が減少します。 UDP 宛先ポートは、受信側の VTEP デバイスによって使用されるポートです。 IANA は、VXLAN の宛先 UDP ポートとして 4789 を割り当てます (フランネル VXLAN モードでは 8472)。

要約する

一般的に、クラウドネイティブ Kubernetes は新しいネットワーク技術を作成するのではなく、さまざまなシナリオに応じてさまざまなネットワーク技術を柔軟に集約して使用します。基盤となる通信技術の観点から見ると、コンテナ ネットワークには、オーバーレイ モード、ルーティング モード、アンダーレイ モードの 3 つのモードがあります。オーバーレイ モードでは、主に仮想化とトンネリング テクノロジを使用して、基盤となるネットワークの複雑なルーティングと転送を遮断し、アプリケーションにシンプルで効率的な通信機能を提供します。同時に、基盤となるオペレーティング システム カーネルのネットワーク テクノロジも開発され、進化しています。各種仮想化技術やトンネル技術は非常に似ていますが、それぞれ微妙な違いがあるため、コンテナネットワークプラグインやネットワークモードも多数存在します。したがって、コンテナ ネットワークの計画と選択は、ビジネス アプリケーション シナリオをターゲットにする必要があり、柔軟性、効率性、コストなどの複数の要素に基づいて適切なネットワーク ソリューションを選択する必要があります。

この記事はWeChatの公式アカウント「 Juzijia 」から転載したもので、以下のQRコードからフォローできます。この記事を転載する場合はJuzijia公式アカウントまでご連絡ください。

<<:  アマゾンとグーグル、マイクロソフトのクラウドコンピューティング調整を非難:顧客の自由な流れを制限

>>:  Kubernetes 実稼働環境のベストプラクティス

推薦する

tudcloud: 香港のすべての VPS が 30% オフ、帯域幅 100Mbps、中国本土への直接接続、月額 7.2 ドルから

Tudcloud はウェブサイトの改訂を完了し、現在香港 VPS の優待プロモーションを実施していま...

分散ストレージの危険な建物をどうやってクリアするか?

[[430375]]はじめに: 分散ストレージは、高いスケーラビリティと持続可能な進化という特徴を備...

launchvps - $48/年 vps/KVM/4g メモリ/2 コア/20g SSD/4T トラフィック

launchvps は、ペンシルバニアのデータセンターで VPS のみを提供する比較的シンプルなビジ...

差別化できるウェブサイト運営の秘訣:ユーザーの隠れたニーズを深く掘り下げる

ウェブサイトの運営は競合他社との競争と切り離すことはできません。ウェブサイト関連のデータ分析では、「...

ウェブサイト分析: Excel での高度なデータ分析 (パート 1)

Google Analytics、Adobe Sitecatalyst、Webtrends、Tenc...

フォグコンピューティングは実用化されていますか?まだ霧の中

「フォグコンピューティング」は、世界のモノのインターネット分野における最新の概念と技術です。これは ...

tover-256mXEN/20gハードディスク/200gフロー/月額2.99ドル

tover.net は、XEN VPS のみを提供する新しい VPS プロバイダーです。価格性能比は...

オンラインチケット検索エンジン「SeatGeek」が黒字化を達成、しかし国内企業は依然として課題に直面

2009年に設立されたオンラインチケット検索の新興企業、シートギークは8月に初の黒字を達成したと発表...

星を選んでください! Mobvistaが「2021 Cloud Native Pioneer Award」を受賞

クラウド コンピューティングの時代を迎えるにつれ、クラウドに移行し、大きな進歩を遂げる企業がますます...

Jieku.comのCEOが金を持ち逃げし、従業員全員を解雇したというネット上の噂は公式に否定された。

7月30日、O2O電子商取引の傑庫.comのCEOである潘秋慧氏がすべての投資を取り上げ、従業員全員...

作成するのが最も簡単で最も難しい外部リンク

ウェブマスターは基本的に毎日外部リンクを処理する必要があります。どのような外部リンクを作るか、どのよ...

CAの幹部:アジャイルコンセプトは市場で広く受け入れられており、スケールアジリティが話題となっている

現在、アプリケーション経済の継続的な深化に伴い、企業に対する市場の要求も高まっています。市場の機会を...

A5マーケティングチームがZACにインタビュー: ZACがSEOの最近の動向について語ります

A5 Fangfang: 皆さん、こんにちは。今日、A5 マーケティング チームが招待したゲストは、...

クラウドコンピューティング市場は2020年に飛躍的な成長を達成

2020 年は、パブリック クラウド ベンダーの収益が増加し、パンデミックによってデジタル変革のペー...

若者よ、百度の写真を追い求めるのは本当に無意味だ

最近、リンク交換の際に、広州の新しいウェブサイト構築の最適化されたスナップショット時間が更新されてい...