🎃

OpenShiftSDNからOVN-KubernetesへのCNI移行をわかりやすく解説

に公開

0.はじめに

OpenShift 4.12 以降では、従来の OpenShiftSDN から OVN-Kubernetes への移行が推奨されています。

しかし、「CNIって何?」「OpenShiftSDNとOVN-Kubernetesの違いがよくわからない」という声も多いのではないでしょうか。

この記事では、CNIとは何か? OpenShiftSDNとは? OVN-Kubernetesとは? という基礎から、移行の意味と流れをわかりやすく解説します。

1.CNIとは

CNI(Container Network Interface)とは、コンテナのネットワークを標準化して扱うための仕様です。

Kubernetes では Pod が動くたびにネットワークの設定が必要ですが、その処理を統一したのが CNI です。

イメージすると:

2.OpenShiftSDNとは

OpenShift が独自に持っていた CNI プラグインが OpenShiftSDN です。

ポイント
各 Worker の Open vSwitch に設定が配られ、ノード間は VXLAN トンネルで接続。

🔍 用語補足

  • Open vSwitch (OVS):Linux 上で動く仮想スイッチ。Pod の通信を中継する。
  • VXLAN:仮想ネットワークを作るトンネル技術。既存のIPネットワーク上に「仮想LAN」を構築できる。
  • SDN Controller:OpenShift が OVS にルールを配るための制御コンポーネント。

特徴:

  • OpenShift 固有の実装
  • VXLAN トンネルによるノード間通信
  • シンプルだが拡張性に限界あり

3.OVN-Kubernetesとは

OVN-Kubernetes は、Open vSwitch (OVS) と OVN(Open Virtual Network)をベースにした CNI プラグインです。

ポイント
OVN DB と northd が制御面を担当し、各 Node の ovn controller が OVS br-int を制御。ノード間は Geneve トンネル。

🔍 用語補足

  • OVN (Open Virtual Network):Open vSwitch をベースにしたネットワーク仮想化技術。
  • Geneve:VXLAN の進化版となるトンネル方式。柔軟で将来性が高い。
  • ovn-northd:論理ネットワークの定義をノード用の設定に変換する役割。
  • NB DB / SB DB:OVN のデータベース。NB は論理モデル、SB は各ノード向けに変換された実体。
  • ovn-controller:各 Worker 上で動き、SB DB の情報をもとに OVS を制御する。
  • br-int:OVN が利用する OVS の内部ブリッジ。Pod の仮想NICがここにつながる。

特徴:

  • 標準Kubernetesに近い実装
  • Geneve トンネル方式を採用(柔軟性・性能向上)
  • EgressIP やネットワークポリシーなど機能が強化
  • Red Hat 公式で今後の標準と位置づけ

4.OpenShiftSDNとOVN-Kubernetesの比較

比較ポイント

  • 制御面:OpenShiftSDN は「SDN Controller から OVS へ設定配布」。OVN-Kubernetes は「OVN DB と northd → 各 Node の ovn controller → OVS br-int」。
  • トンネル方式:OpenShiftSDN は VXLAN、OVN-Kubernetes は Geneve。
  • 標準準拠度:OVN-Kubernetes は Kubernetes 標準に近く、将来性と機能拡張性が高い。

まとめると

  • OpenShiftSDN → 「昔ながらの専用実装」
  • OVN-Kubernetes → 「標準準拠・今後の主流」

5.CNI移行の流れ

OpenShift では SDN → OVN へ移行するためのガイドラインが提供されています。

一般的な流れは:

  1. 移行前の準備

    • OpenShift クラスターがサポート対象のバージョンか確認
    • 移行対象のプロジェクトやネットワーク機能を整理
  2. 移行の実行

    • Control Plane で OVN-Kubernetes を有効化
    • ノードごとに CNI を切り替え
  3. 検証とクリーンアップ

    • Pod 間通信、サービス、Ingress の動作を確認
    • 古い OpenShiftSDN 設定を削除

公式ガイド

6.ゲスト利用者にとっての影響

では、Podを管理するユーザー(ゲスト)にとって移行はどう見えるでしょうか?

  • Podの作り方や操作コマンドは変わらない
    oc apply -f でデプロイする流れは同じ。

  • 裏側のネットワーク実装が変わる
    → VXLAN から Geneve へ。ただし利用者は意識する必要はほとんどない。

  • 新しい機能が使える可能性がある
    → EgressIPやネットワークポリシー強化など、セキュリティや制御の幅が広がる。

7.おわりに

  • CNIとは:コンテナとネットワークをつなぐ標準仕様
  • OpenShiftSDNとは:OpenShift独自のCNIプラグイン(旧来方式)
  • OVN-Kubernetesとは:標準準拠で今後の主流となるCNIプラグイン
  • 移行の意味:標準化・機能強化・将来サポートの安定性
  • 流れ:準備 → 実行 → 検証の3ステップ

これから OpenShift を学ぶなら、OVN-Kubernetes を前提に理解していくのがおすすめです。

おわりっ!

Discussion