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 実稼働環境のベストプラクティス

推薦する

エッジに関しては、小さなことを見逃さないでください

ソフトウェアは世界を席巻し続けており、ソフトウェア定義の製品とサービスの価値は累積的なライフサイクル...

タオバオには「論文盗作チェック」の店舗が500店以上あり、月間売上高は100万元を超える。

[概要] このソフトウェアを最も多く販売している Taobao のストアでは、1 か月で 200 万...

virtual6-£4.6/kvm/2g メモリ/100g ハードディスク/5t トラフィック/G ポート/DDoS 保護

virtual6.net を使ったことがない、または聞いたことがない人もいると思います。これは 8 ...

SEO最適化で最も見落とされやすいリンク

SEO の専門家の多くは、ウェブサイトのキーワードランキングに細心の注意を払っていますが、画像の最適...

権威あるレポート:アリペイはブロックチェーン特許数で世界1位、2位と3位の合計にほぼ匹敵

中国特許保護協会は7月1日、「2020年ブロックチェーン分野における世界特許認可報告書」を発表した。...

Bufferの創設者レオ・ウィドリッチ氏:製品のマーケティングは早く始めるほど良い

この記事は、Buffer の共同創設者である Leo Widrich 氏が個人ブログで公開したもので...

訪問者にコンテンツを作成させる6つの理由

検索エンジンの継続的なアップグレードにより、オリジナルコンテンツの認知度も常に向上しています。オリジ...

Apple、iPhone5.comドメインのコントロールを取り戻そうとしている

Apple の次期スマートフォンの名前は依然として謎のままです... iPhone 5? iPhon...

HostingInside-512m メモリ KVM 月額 7 ドル/ロサンゼルス/英国/ドイツ

HostingInside は、2004 年に IRC と仮想ホスティング サービスを提供する会社と...

企業ウェブサイトの直帰率を下げる方法

全能の Google によると、直帰率とは、ウェブサイトにアクセスし、1 ページだけ閲覧した後に離脱...

キーワードの競合を判断する方法

SEO のキーワードを設定するときは、特定の単語の競合状況を分析する必要があります。「スポーツ」、「...

米国ロサンゼルスのprofitserverの無制限トラフィックVPSの簡単なレビュー

Profitserverは2003年にロシアのチェリャビンスクで設立されたサービスプロバイダーです。...

Google Panda アルゴリズムの分析: 人工知能検索エンジン アルゴリズムの前哨地

人工知能と検索エンジンの融合は、間違いなく避けられない流れです。現在の検索エンジンのさまざまなアルゴ...

クラウドコンピューティングがセキュリティを強化し、Hongshi Electronics がクラウド導入を加速

セキュリティ業界の先駆者として、広州紅石電子科技有限公司(以下、「紅石電子」)は、長年にわたり民間の...

ロングテールキーワードは役に立たない?この記事を読めば理解できるかも知れません!

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