みなさんこんにちは。私は次男です。前回の記事「Underlay でのマルチネットワーク ns の適用 - この記事」に続き、マルチネットワーク ns に基づくマスターレベルのアプリケーションである Underlay について説明します。前の記事では、マルチネットワーク ns の基本的な概念について説明しました。まだ読んでいない方は先に読んでみることをお勧めします。結局のところ、大学入試の作文問題には、「初心者は基礎から始めるべきだ」と書かれていました。基礎スキルがしっかりして初めてチェスのスキルは向上します。初心者の中には、驚くべき動きを追求することに熱心で、より一般的に使用される基本的な動きを無視する人もいます。基礎スキルは土台であり、優れたスキルは創造です。 1. マルチVMからマルチネットワークNSへマルチネットワーク ns の重要な役割を示すために、別の図を使用して比較を行い、元のマルチ VM からマルチネットワーク ns への進化がいかに必要であるかがわかるようにしたいと思います。図 1 では、物理マシン上に複数の VM が作成されています。 VMM は、CPU/メモリ/ディスク/ネットワーク カードなどのデバイスを VM に仮想化します。各 VM の OS 部分は net_device を作成します。これは、VM が所有するネットワーク カードをソフトウェア レベルで抽象化するために使用されるデータ構造です。ネットワーク カード自体は仮想的ですが、VM がそれを実際のネットワーク カードであると認識していれば十分です。実際、これらのネットワーク カードは、物理マシンの Open vSwitch に接続された単なるタップ デバイスです。 vSwitch は大まかに言えばブリッジとして理解できます。 図1: マルチVM ECS に精通している人や、Alibaba Cloud や Tencent Cloud でクラウド サーバーを購入したことがある人は、通常、VM 上で実行されるアプリケーション (ワークロード) は 1 つだけ、またはごく少数だけであることを知っているはずです。ほとんどの場合、この VM 上の CPU/メモリ/ディスクなどのリソースはアイドル状態であり、複数のアプリケーションを分離するために複数のネットワーク ns テクノロジが使用されていることは言うまでもありません。個人であれ企業であれ、お金は空から降ってくるものではなく、コスト削減や効率化は永遠の目標です。より資源を節約する方法が出現すれば、誰もがそれに群がるでしょう。マルチネームスペースベースの Docker の出現は、クラウド コンピューティング市場にほぼ破壊的な変化をもたらしました。これはその良い例です。図2: 複数のネットワーク名前空間を持つ環境 『アントマン・アンド・ワスプ』を見ましたか?ピム博士は瞬時に建物全体をトロリーケースに収めました。かっこいいでしょう?図 1 の vSwitch を図 2 のブリッジのサイズに縮小するか、ブリッジの位置に配置すると、vSwitch に接続されている VM は、実際にはブリッジに接続されている複数のネットワーク NS に属する Pod に縮小されます。とてもハンサムですよね?図2に基づく:
かなり良さそうですね。ワークロードで使用されるリソースを VM 粒度から Pod 粒度に削減することで節約されるリソースは、実に非常に印象的です。私の経験によると、Web サーバーのような I/O ワークロードの場合、元の VM サイズが 2 コア + 4 GB メモリの場合、Pod サイズを 0.5 コア + 200 MB に削減できます (Pod 内にコンテナーが 1 つしかないと仮定)。しかし、何かが間違っているようです。図 2 では、ブリッジがサブネットを形成していますが、サブネット内の各ポッドがサブネット外のリソースにアクセスする場合、ネットワーク トラフィックはルート NS を経由する必要があるようです。図 1 の VM のように、ネットワーク トラフィックがそれぞれ独自の方向に自由に流れるようにしながら、図 2 に示すようなきめ細かいリソース仮想化および割り当て方法を維持することは可能でしょうか。 2. 下敷き大衆の声こそが、コンテナ クラウド ベンダーが前進するための原動力です。さて、AWS ENI や、弾性ネットワーク カードを使用してアンダーレイを実装するその他のテクノロジーは、図 2 の欠点を完璧に解決します。図 2 に示されている欠点の根本的な原因は、すべての Pod が VM が所有するネットワーク カードを共有していることであるため、図 2 の各 Pod に個別のネットワーク カードを装備することはできるでしょうか。たとえば、図 3 に示すように、ブリッジを削除すると、各人にネットワーク カードが与えられます。傲慢な気持ちが出てきますよね?図3: ブリッジを廃止し、各ポッドにネットワークカードをインストールする (1)新しいネットワークカードを追加するこのアイデアは非常に優れているように思えますが、前提条件として、VM 上に追加のネットワーク カードがあり、そのネットワーク カードを Pod に挿入できることが必要です。実際、VM に新しいネットワーク カードを追加することは、VMWare の vSphere などのツールを使用すると簡単に実行できます。たとえば、図 4 では、Brother はマウスを数回クリックするだけで、新しいネットワーク カードを VM に手動で追加しました。 図4: VMに新しいNICを手動で追加する もちろん、API を通じてこのようなネットワーク カードの作成作業を自動的に完了することもできます。 AWS と Alibaba Cloud はどちらも、API を介して ECS インスタンスの Elastic Network Interface (ENI) の動的な作成をサポートしています。ただし、ECS インスタンスにバインドできる ENI の数には制限があります。たとえば、AWS は ECS インスタンスの構成に基づいて最大 15 個の ENI のみをバインドできます。 Alibaba Cloud にも同様の制限があります。エラスティック ネットワーク カードは、複数のクラウド サーバー間で移行できる独立した仮想ネットワーク カードであり、柔軟なサービスの拡張と移行を実現します。 ENI を作成して ECS インスタンスにバインドすることも、セカンダリ ENI を別途作成して ECS インスタンスにバインドすることもできます。 ENI には次の機能があります。
(2)新しいネットワークカードをコンテナに挿入するうーん...いいですね。新しいネットワーク カードを作成する方法があるようですが、それを Pod に挿入するにはどうすればよいでしょうか? Docker を例にして、新しく作成した eth10 という名前のネットワーク カードをコンテナーに挿入します。まずコンテナを起動します。このコンテナの PID が 2022 であるとします。 ~ # docker run -itd --net none ubuntu : 16.04 ホスト環境で以下のコマンドを実行して、eth10 をコンテナに配置し、eth0 に名前を変更し、電源をオンにして、DHCP を有効にします。 ~ # mkdir / var / run / netns 一連の激しい操作の後、eth10 はホスト マシン上で表示されなくなりました。コンテナ内でこのコマンドを実行すると、追加のネットワーク カードがあることがわかります。 ~ # ifconfig -a 実際、正確に言うと、上記の操作はコンテナのネットワーク ns に eth10 を挿入することです。 Pod は基本的に同じネットワーク NS を共有するコンテナのコレクションであるため、これらの操作を Pod に適用すると何が起こるかは想像がつくでしょう。 図 2 と 3 を並べ替えてみましょう。図 5 は私たちが夢見ていたもので、図 1 と 2 の利点を組み合わせた新しいソリューションです。図 2 のきめ細かいリソース仮想化方法を維持しながら、ネットワーク トラフィックを図 1 の VM のようにオープンにし、それぞれが独自の方向に進むことができます。図5: マルチNICをサポートするアンダーレイ (3)パフォーマンス前回の記事で述べたように、VM をベンチマークとして使用して比較すると、伝送パフォーマンスの点で次のようになります。
図6: ポッドとの間のトラフィックはネットワークスタックを複数回通過します Underlay のパフォーマンスの低下はどうでしょうか?ベンチマークと比較すると、パフォーマンスの低下はほとんどありません。理由は簡単にわかります。解凍/カプセル化がなく、ネットワーク スタックを 2 回通過する必要がないからです。また、Alibaba Cloud チームが自社の Web サイトで公開したパフォーマンス テスト比較レポートも添付します。レポートのリンクをここに貼っておきますので、興味のある学生は自分で勉強することができます。 図7: パフォーマンス比較 3. まとめ実際、K8s の Overlay/host-gw/Underlay ネットワーク モードの実装は、マルチ ネットワーク ns と切り離せません。しかし、Underlay はそれをよりクリーンに、より直感的に、そしてより効率的に利用しますが、コストも高くなります。周志明教授は著書『鳳凰建築』の中で次のように述べています。「本当に大規模なデータセンターや大規模システムの場合、アンダーレイ モードが最も発展の可能性が高いネットワーク モードです。」このソリューションは、ハードウェア機能を最大限に活用でき、多くの場合、最高のパフォーマンスを実現します。ただし、ハードウェアと基盤となるネットワーク環境に直接依存するため、ソフトウェアとハードウェアの状況に応じて展開する必要があり、オーバーレイ ネットワークのすぐに使用できる柔軟性を実現することは困難です。これら二つの記事を読んで、周先生がおっしゃったことをより深く理解できたでしょうか? 「アンダーレイにおけるマルチネットワーク ns の適用 - この記事」の冒頭で提起された 3 つの質問に対する答えはありますか? |
<<: 基礎研究への継続的な投資:テンセントクラウドデータベースの3つの論文が業界トップカンファレンスSIGMODに選出
>>: ガートナー: エッジコンピューティングソリューションの構築における中国企業のベストプラクティス
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスデジタル時代の重要なマー...
1. Airbnbの紹介Airbnb は 2008 年 8 月に設立され、米国カリフォルニア州サンフ...
iperweb は、prometeus (イタリアで登録) の 2 番目のブランド (英国で登録) ...
Foxcloud は 10 月にプロモーションを実施しています (10 月 31 日まで)。その理由...
smarthost (1998~) は、米国のメモリアル デー プロモーションを実施します。すべての...
VMware (NYSE: VMW) は、VMware Workspace ONE、VMware N...
ウェブマスターはこれまで無料のメールボックスを使用していましたが、最近有料版を使い始めました。ここで...
スピンサーバーはどうですか?サンノゼのスピンサーバーはどうですか? spinservers のサンノ...
WordPress は近年非常に人気があります。オープン性、豊富なテンプレート、プラグイン拡張のサポ...
月給5,000~50,000のこれらのプロジェクトはあなたの将来ですフルネットワークマーケティング、...
現在、デジタル化の波があらゆる業界を席巻しています。デジタル改革、デジタル経営…一連の「デジタル」の...
Hostyun には、米国ロサンゼルスの cera データセンターに接続された 3 つのネットワーク...
GOOGLE は最近、ウェブマスター センターに「ウェブサイト リンク」という別の項目を追加しました...
中東で最も重要な国ともいえるUAE。グローバルクラウドサーバープロバイダーとして、当然ながらarke...
2020年に新型コロナウイルス感染症の流行が始まって以来、全国各地で「新たなインフラ」を求める声が聞...