photoncloud-monorepo/docs/por/T015-overlay-networking/research-summary.md
centra a7ec7e2158 Add T026 practical test + k8shost to flake + workspace files
- Created T026-practical-test task.yaml for MVP smoke testing
- Added k8shost-server to flake.nix (packages, apps, overlays)
- Staged all workspace directories for nix flake build
- Updated flake.nix shellHook to include k8shost

Resolves: T026.S1 blocker (R8 - nix submodule visibility)
2025-12-09 06:07:50 +09:00

8.4 KiB
Raw Blame History

Overlay Networking Research Summary

Date: 2025-12-08
Task: T015 S1
Status: Research Complete

Executive Summary

マルチテナントVMネットワーク分離のためのオーバーレイネットワーキングソリューションの調査結果。OVN、Cilium、Calico、カスタムeBPFソリューションを評価し、OVNを推奨する。

1. OVN (Open Virtual Network)

アーキテクチャ

  • ベース: OpenStack Neutronのネットワーク抽象化をOpen vSwitch (OVS)上に実装
  • コンポーネント:
    • ovn-northd: 論理ネットワーク定義を物理フローに変換
    • ovn-controller: 各ホストでOVSフローを管理
    • ovsdb-server: ネットワーク状態の分散データベース
    • ovn-nb (Northbound DB): 論理ネットワーク定義
    • ovn-sb (Southbound DB): 物理フロー状態

機能

  • マルチテナント分離VXLAN/GRE/Geneveトンネル
  • 分散ルーティングL3 forwarding
  • 分散ロードバランシングL4
  • セキュリティグループACL
  • DHCP/DNS統合
  • NATSNAT/DNAT
  • 品質保証QoS

複雑さ

  • : OVSDB、OVNコントローラー、分散状態管理が必要
  • 学習曲線: 中〜高OVS/OVNの概念理解が必要
  • 運用: 中(成熟したツールチェーンあり)

統合の容易さ

  • PlasmaVMC統合: OVN Northbound APIREST/gRPC経由で論理スイッチ/ルーター/ポートを作成
  • 既存ツール: ovn-nbctlovn-sbctlでデバッグ可能
  • ドキュメント: 豊富OpenStack/OVN公式ドキュメント

パフォーマンス

  • オーバーヘッド: VXLANカプセル化による約50バイト
  • スループット: 10Gbps以上ハードウェアオフロード対応
  • レイテンシ: マイクロ秒単位(カーネル空間実装)

2. Cilium

アーキテクチャ

  • ベース: eBPFExtended Berkeley Packet Filterを使用したカーネル空間ネットワーキング
  • コンポーネント:
    • cilium-agent: eBPFプログラムの管理
    • cilium-operator: サービスディスカバリー、IPAM
    • etcdまたはKubernetes API: 状態管理

機能

  • マルチテナント分離VXLAN/Geneve、またはネイティブルーティング
  • L3/L4/L7ポリシーeBPFベース
  • 分散ロードバランシング
  • 可観測性Prometheusメトリクス、Hubble
  • セキュリティネットワークポリシー、mTLS

複雑さ

  • : eBPFの理解が必要だが、Kubernetes統合が成熟
  • 学習曲線: 中Kubernetes経験があれば容易
  • 運用: 低〜中Kubernetesネイティブ

統合の容易さ

  • PlasmaVMC統合: Kubernetes API経由または直接Cilium API使用
  • 既存ツール: cilium CLI、Hubble UI
  • ドキュメント: 豊富Kubernetes中心

パフォーマンス

  • オーバーヘッド: 最小カーネル空間、eBPF JIT
  • スループット: 非常に高い(ハードウェアオフロード対応)
  • レイテンシ: ナノ秒単位(カーネル空間)

制約

  • Kubernetes依存: Kubernetes環境での使用が前提VM直接管理は非標準
  • VMサポート: 限定的(主にコンテナ向け)

3. Calico

アーキテクチャ

  • ベース: BGPBorder Gateway Protocolベースのルーティング
  • コンポーネント:
    • calico-node: BGPピア、ルーティングルール
    • calico-kube-controllers: Kubernetes統合
    • etcdまたはKubernetes API: 状態管理

機能

  • マルチテナント分離BGPルーティング、VXLANオプション
  • ネットワークポリシーiptables/Windows HNS
  • IPAM
  • BGP AnycastL4ロードバランシングに有用

複雑さ

  • 低〜中: BGPの理解が必要だが、シンプルなアーキテクチャ
  • 学習曲線: 低BGP知識があれば容易
  • 運用: 低(シンプルな構成)

統合の容易さ

  • PlasmaVMC統合: Calico API経由またはBGP直接設定
  • 既存ツール: calicoctl
  • ドキュメント: 豊富

パフォーマンス

  • オーバーヘッド: 低(ネイティブルーティング)
  • スループット: 高い(ハードウェアルーティング対応)
  • レイテンシ: 低(ネイティブルーティング)

制約

  • BGP要件: BGP対応ルーター/スイッチが必要(データセンター環境)
  • VMサポート: Kubernetes統合が主VM直接管理は限定的

4. カスタムeBPFソリューション

アーキテクチャ

  • ベース: 独自のeBPFプログラムとコントロールプレーン
  • コンポーネント: 独自実装

機能

  • 完全なカスタマイズ性
  • 最適化されたパフォーマンス
  • 開発・保守コストが高い

複雑さ

  • 非常に高: eBPFプログラミング、カーネル開発、分散システム設計が必要
  • 学習曲線: 非常に高
  • 運用: 高(独自実装の運用負荷)

統合の容易さ

  • PlasmaVMC統合: 完全にカスタマイズ可能
  • 既存ツール: 独自開発が必要
  • ドキュメント: 独自作成が必要

パフォーマンス

  • オーバーヘッド: 最小(最適化可能)
  • スループット: 最高(最適化可能)
  • レイテンシ: 最小(最適化可能)

制約

  • 開発時間: 数ヶ月〜数年
  • リスク: バグ、セキュリティホール、保守負荷

5. 比較表

項目 OVN Cilium Calico カスタムeBPF
成熟度
VMサポート 優秀 ⚠️ 限定的 ⚠️ 限定的 カスタマイズ可能
複雑さ 低〜中 非常に高
パフォーマンス 非常に高 最高(最適化後)
統合容易さ K8s 低(開発必要)
ドキュメント 豊富 豊富 豊富 なし
運用負荷 低〜中
開発時間 短(統合のみ) K8s統合 短(統合のみ) 長(開発必要)

6. 推奨: OVN

推奨理由

  1. VMファースト設計: OVNはVM/コンテナ両方をサポートし、PlasmaVMCのVM中心アーキテクチャに最適
  2. 成熟したマルチテナント分離: OpenStackでの実績があり、本番環境での検証済み
  3. 豊富な機能: セキュリティグループ、NAT、ロードバランシング、QoSなど必要な機能が揃っている
  4. 明確なAPI: OVN Northbound APIで論理ネットワークを定義でき、PlasmaVMCとの統合が容易
  5. デバッグ容易性: ovn-nbctlovn-sbctlなどのツールでトラブルシューティングが可能
  6. 将来の拡張性: プラガブルバックエンド設計により、将来的にCilium/eBPFへの移行も可能

リスクと軽減策

リスク1: OVNの複雑さ

  • 軽減策: OVN Northbound APIを抽象化したシンプルなAPIレイヤーを提供
  • 軽減策: よく使う操作(ネットワーク作成、ポート追加)を簡素化

リスク2: OVSDBの運用負荷

  • 軽減策: OVSDBクラスタリングのベストプラクティスに従う
  • 軽減策: 監視とヘルスチェックを実装

リスク3: パフォーマンス懸念

  • 軽減策: ハードウェアオフロードDPDK、SR-IOVを検討
  • 軽減策: 必要に応じて将来的にCilium/eBPFへの移行パスを残す

代替案の検討タイミング

以下の場合、代替案を検討:

  1. パフォーマンスボトルネック: OVNで解決できない性能問題が発生
  2. 運用複雑さ: OVNの運用負荷が許容範囲を超える
  3. 新機能要求: OVNで実現できない機能が必要

7. 結論

推奨: OVNを採用

  • マルチテナントVMネットワーク分離の要件を満たす
  • 成熟したソリューションでリスクが低い
  • PlasmaVMCとの統合が比較的容易
  • 将来の最適化eBPF移行などの余地を残す

次のステップ: S2テナントネットワークモデル設計に進む