LabHub

ブログ

KubeVirtネットワーク2:bridge、masquerade、passt、SR-IOVバインディング比較

한국어English日本語

はじめに

KubeVirtネットワークを理解する際に最も重要な選択肢はバインディングだ。同じVMIでもどのバインディングを使うかによって、ゲストがネットワークを見る方式、サービス公開方式、パフォーマンス、ライブマイグレーション適合性が変わる。

staging/src/kubevirt.io/api/core/v1/schema.goを見ると主要なインターフェースバインディング種類が現れる。

つまりKubeVirtは一つの正解ネットワークモデルだけを強要しない。代わりに複数のワイヤリング方式を提供する。

バインディングは正確に何を意味するのか

公式デベロッパーガイドのdocs/network/network-binding-plugin.mdがよくまとめているように、バインディングは「ドメインVM NICをPod内でどのようにゲストに接続するか」を定義する層だ。

ここには以下が含まれる。

つまりバインディングは単純なAPIオプションではなくゲストNICワイヤリング戦略だ。

1. masqueradeバインディング

最も無難でKubernetes親和的なデフォルト選択肢だ。

どう動作するか

利点

欠点

運用の便宜性と汎用性のため最初に思い浮かぶ選択肢だ。

2. bridgeバインディング

bridgeバインディングはゲストをネットワークにより直接接続しようとするモデルだ。

どう動作するか

利点

欠点

bridgeは「コンテナのように安全なデフォルト」より「ゲストをより直接公開する」側に近い。

3. passtバインディング

schema.goPasstBindingを別のcoreバインディングとして置く。passtはユーザーモードネットワーキングベースのアプローチとして理解するとよい。

利点

欠点

pkg/network/passtとバインディングプラグインドキュメントを一緒に読むと、passtは「高性能L2直結」よりユーザーモード親和的ネットワーキングに近いことが分かる。

4. SR-IOVバインディング

SR-IOVは最もパフォーマンス指向の選択肢だ。代わりにKubernetesとホスト、NIC、IOMMU、VFIO構成がすべて揃わなければならない。

docs/network/sriov.mdを見ると関連コンポーネントがかなり多い。

どう動作するか

利点

欠点

つまりSR-IOVは汎用デフォルトではなく、パフォーマンスのために単純性と柔軟性を一部諦める選択肢だ。

プラグインバインディングはなぜ必要か

KubeVirtは内蔵バインディングだけですべてのネットワークを賄おうとしない。network-binding-plugin.mdは次の2方向を説明する。

核心はプラグインがドメインアタッチメントタイプ、サイドカー、カスタムCNIを組み合わせて新しいバインディングを拡張可能にすることだ。

この設計はKubeVirtがネットワークの実験と拡張をcoreコードにすべて入れようとしない意図を示す。

バインディング別にIPモデルはどう異なるか

これは運用者がよく混乱するポイントだ。

masquerade

bridge

passt

SR-IOV

つまり「IPを誰が与えるか」の答えもバインディング別に変わる。

migrationとの関係

バインディングは単純な接続性選択ではなくmigration戦略にも大きな影響を与える。

network-binding-plugin.mdもバインディングプラグインがmigrationをサポートするには別途のmigrationメソッド宣言が必要だと説明する。

よくある誤解

誤解1:bridgeは常にmasqueradeより優れている

違う。より直接的な接続性が利点になりうるが、運用の単純性とmigration親和性はmasqueradeの方が良い場合がある。

誤解2:SR-IOVは単に速いNICオプションに過ぎない

違う。デバイス広告、CNI、VFIO、IOMMU、libvirtドメイン構成まですべて絡んだ複合選択肢だ。

誤解3:プラグインバインディングはcoreバインディングの装飾だ

違う。KubeVirtがネットワーク拡張をモジュール式に扱うための重要な設計だ。

実務的な選択基準をまとめると

結局バインディングはパフォーマンス問題であると同時に運用性とmigration可能性の問題だ。

まとめ

KubeVirtのネットワークバインディングはゲストNICをPod内でどのようにワイヤリングするかを決定する核心軸だ。masqueradeは汎用性と運用便宜、bridgeはより直接的な接続性、passtはユーザーモード性格、SR-IOVは高性能デバイスパススルーという明確な性格を持つ。したがってバインディング選択は単純なAPIオプションではなくネットワークモデルと運用戦略全体を決定するアーキテクチャ選択だ。

次の記事ではprimaryネットワークを超えて、MultusとsecondaryネットワークがKubeVirtにどのように接続されるか見ていく。

コメント

まだコメントはありません。

ログインするとコメントできます