Kubernetesのネイティブネットワーキングにおける多ネットワーク課題と解決策

Kubernetesはクラウドネイティブコンピューティングの基盤として広く採用されており、ネットワーキング機能はその性能と柔軟性を決定づける重要な要素です。特に、テレコムワークロードにおいては、多ネットワーク(multi-network)の要件が顕著です。この記事では、Kubernetesネットワーキングにおける多ネットワーク課題、現行の解決策、技術的挑戦、および未來の方向性について詳しく解説します。

多ネットワークの課題と現行の解決策

多ネットワークの使用ケース

  • GPU直接アクセス:RDM(Rapid Device Migration)能力が必要で、GPU専用インターフェースを介したアクセスが求められます。
  • ストレージネットワークの隔離:ストレージネットワークに接続するためのサブインターフェースを用いた流量分離が必須です。
  • アプリケーションデータとコントロールプレーンのインターフェース:アプリケーションのデータプレーンとコントロールプレーンに別々のインターフェースを割り當てる必要があります。
  • ネットワークセグメンテーション:多テナント環境における仮想ネットワークの分離が求められます。

現行の解決策

  • Network Attachment Definitions (NAD):標準化されたAPIとして位置付けられていますが、OVN-KubernetesやMultusなどのCNI実裝ごとに異なる仕様が存在します。
  • 非標準的なアプローチ:特定ベンダーの製品(例:Metal LB)やカスタム実裝が一部で利用されています。

現行技術の限界とOVN-Kubernetesの役割

NADの制限

  • JSON形式の規格であり、統一されたAPIが存在しない。
  • CNI実裝ごとに異なる仕様により、実裝の統一が困難。

OVN-Kubernetesの特徴

  • 多ネットワークをサポートするCNI実裝として維持されています。
  • 特定のインターフェースをサポートするが、Kubernetesコア機能との統合が課題です。

動的リソース割當(DRA)とCap 5075の導入

DRAの三段階プロセス

  1. デバイスリストとリソース宣言:ノードのデバイスをリストアップし、リソース要件(例:特定のネットワークインターフェース)を宣言。
  2. リソース配置とスケジューリング:Kubernetesがノードを選択し、デバイス(例:IPアドレス)を配置。
  3. 狀態報告:デバイスの狀態(例:IPアドレス)を報告し、今後はさらに機能拡張が期待されます。

Cap 5075の機能

  • デバイス容量の宣言とスケジューリングを可能にし、帯幅などのリソース管理を柔軟化。

挑戦と未來の方向性

標準化と互換性の課題

  • KubernetesのAPIは後方互換性を重視しており、多ネットワークの概念はフラットなネットワークモデルと衝突。
  • 高階APIと低階APIの統合方法を統一する必要がある。

コミュニティの分斷

  • CNI、Multus、Network Plumbing Groupなどのプロジェクト間で協力が困難。
  • ネットワークポリシーとサービスAPIの再設計が求められる。

技術的複雑性

  • ポッドIPに依存するネットワークポリシーが、多ネットワーク環境でIP衝突を引き起こす可能性。
  • サービスAPI(例:Service CIDR)の再定義が不可欠。

未來の方向性と技術的進展

DRAとCapの統合

  • DRAを用いてデバイスリソースを動的に割り當て、多ネットワークインターフェースをサポート。
  • Cap 5075により、リソース管理の柔軟性が向上。

コミュニティ協力と標準化

  • パリ會議などの議論を通じて、多ネットワークの標準化を推進。
  • CNIとKubernetesコア機能の統合を進める。

サービスとネットワークポリシーの進化

  • 多ネットワーク環境に対応したサービスAPIの再設計。
  • ネットワークポリシーのIP衝突迴避と一貫性確保。

長期的な目標

  • Kubernetesのネイティブ多ネットワークソリューションを構築し、クロスクラウドやハイブリッド環境での互換性を確保。

技術的詳細と実裝

DRAによるネットワーク統合

  • ネットワークインターフェースをリソースとして扱い、DRA APIで管理。
  • デバイス狀態(例:IPアドレス)とノードの同期を実現。

多ネットワークオブジェクト(Multi-Net Object)

  • 複數のネットワークインターフェースを定義可能で、複雑なネットワークトポロジー(例:多VPC、多サブネット)をサポート。
  • Alpha版でリリース予定で、今後Gateway APIとの統合が進む。

ネットワークポリシーとサービスの統合

  • 現在のサービスとネットワークポリシーは分離処理だが、今後統合管理が求められる。
  • 多ネットワーク環境ではIP衝突を迴避し、ポリシーの正確な適用を確保。

まとめ

Kubernetesのネイティブネットワーキングにおいて、多ネットワークの要件はテレコムワークロードの実現に不可欠です。現行のNADやOVN-Kubernetesは課題を解決する一歩ですが、DRAとCapの導入によりリソース管理が進化しています。標準化とコミュニティの協力が今後の成功に鍵となります。技術的挑戦は依然として存在しますが、継続的な進化により、Kubernetesは多ネットワーク環境での信頼性と柔軟性を提供し続けるでしょう。