25.5. OpenShift SDN ネットワークプラグインからの移行


クラスター管理者は、OpenShift SDN ネットワークプラグインから OVN-Kubernetes ネットワークプラグインに移行できます。

オフライン移行方法を使用して、OpenShift SDN ネットワークプラグインから OVN-Kubernetes プラグインに移行できます。オフライン移行方法は、ダウンタイムを含む手動プロセスです。

25.5.1. OVN-Kubernetes ネットワークプラグインへの移行

OVN-Kubernetes ネットワークプラグインへの移行は、クラスターに到達できないダウンタイムを含む手動プロセスです。

重要

OpenShift Container Platform クラスターを移行して OVN-Kubernetes ネットワークプラグインを使用する前に、最新のバグ修正がすべてクラスターに適用されるように、クラスターを最新の z-stream リリースに更新してください。

ロールバック手順が提供されますが、移行は一方向プロセスとなることが意図されています。

OVN-Kubernetes ネットワークプラグインへの移行は、次のプラットフォームでサポートされています。

  • ベアメタルハードウェア
  • Amazon Web Services (AWS)
  • Google Cloud
  • IBM Cloud®
  • Microsoft Azure
  • Red Hat OpenStack Platform (RHOSP)
  • Red Hat Virtualization (RHV)
  • {vmw-first}
重要

OVN-Kubernetes ネットワークプラグインとの間の移行は、Red Hat OpenShift Dedicated、Azure Red Hat OpenShift (ARO)、Red Hat OpenShift Service on AWS (ROSA) などのマネージド OpenShift クラウドサービスではサポートされていません。

OpenShift SDN ネットワークプラグインから OVN-Kubernetes ネットワークプラグインへの移行は、Nutanix ではサポートされていません。

25.5.1.1. OVN-Kubernetes ネットワークプラグインへの移行についての考慮点

OpenShift Container Platform クラスターに 150 を超えるノードがある場合は、OVN-Kubernetes ネットワークプラグインへの移行について相談するサポートケースを開きます。

ノードに割り当てられたサブネット、および個々の Pod に割り当てられた IP アドレスは、移行時に保持されません。

OVN-Kubernetes ネットワークプラグインは、OpenShift SDN ネットワークプラグインに存在する多くの機能を実装していますが、設定は同じではありません。

  • クラスターが次の OpenShift SDN ネットワークプラグイン機能のいずれかを使用する場合、OVN-Kubernetes ネットワークプラグインで同じ機能を手動で設定する必要があります。

    • namespace の分離
    • Egress ルーター Pod
  • クラスターまたは周囲のネットワークが 100.64.0.0/16 アドレス範囲の一部を使用している場合、spec.defaultNetwork.ovnKubernetesConfig オブジェクト定義で v4InternalSubnet 仕様を指定して、別の未使用の IP 範囲を選択する必要があります。OVN-Kubernetes は、デフォルトで IP 範囲 100.64.0.0/16 を内部的に使用します。
  • Precision Time Protocol (PTP)を持つ openshift-sdn クラスターがハードウェアタイムスタンプに UDP (User Datagram Protocol)を使用し、OVN-Kubernetes プラグインに移行する場合、ハードウェアのタイムスタンプは Open vSwitch (OVS)ブリッジなどのプライマリーインターフェイスデバイスに適用できません。そのため、UDP バージョン 4 の設定は、br-ex インターフェイスでは機能しません。

以下のセクションでは、OVN-Kubernetes と OpenShift SDN ネットワークプラグインの前述の機能の設定の違いを強調しています。

プライマリーネットワークインターフェイス

OpenShift SDN プラグインを使用すると、NodeNetworkConfigurationPolicy (NNCP) カスタムリソース (CR) をノード上のプライマリーインターフェイスに適用できます。OVN-Kubernetes ネットワークプラグインにはこの機能はありません。

プライマリーインターフェイスに NNCP が適用されている場合は、OVN-Kubernetes ネットワークプラグインに移行する前に NNCP を削除する必要があります。NNCP を削除しても、プライマリーインターフェイスから設定は削除されませんが、OVN-Kubernetes を使用すると、Kubernetes NMState はこの設定を管理できません。代わりに、configure-ovs.sh シェルスクリプトがプライマリーインターフェイスと、このインターフェイスに接続されている設定を管理します。

namespace の分離

OVN-Kubernetes はネットワークポリシーの分離モードのみをサポートします。

重要

マルチテナントモードまたはサブネット分離モードのいずれかで設定されている OpenShift SDN を使用するクラスターの場合でも、OVN-Kubernetes ネットワークプラグインに移行できます。移行操作後、マルチテナント分離モードは削除されるため、Pod とサービスに対して同じプロジェクトレベルの分離を実現するには、ネットワークポリシーを手動で設定する必要があることに注意してください。

Egress IP アドレス

OpenShift SDN は、2 つの異なる Egress IP モードをサポートしています。

  • 自動的に割り当てる 方法では、Egress IP アドレス範囲はノードに割り当てられます。
  • 手動で割り当てる 方法では、1 つ以上の Egress IP アドレスの一覧がノードに割り当てられます。

移行プロセスでは、自動割り当てモードを使用する Egress IP 設定の移行がサポートされています。

OVN-Kubernetes と OpenShift SDN との間に Egress IP アドレスを設定する際の相違点は、以下の表で説明されています。

Expand
表25.4 Egress IP アドレス設定の違い
OVN-KubernetesOpenShift SDN
  • EgressIPs オブジェクトを作成します。
  • アノテーションを Node オブジェクトに追加します。
  • NetNamespace オブジェクトにパッチを適用します。
  • HostSubnet オブジェクトにパッチを適用します。

OVN-Kubernetes で Egress IP アドレスを使用する方法の詳細は、「Egress IP アドレスの設定」を参照してください。

Egress ネットワークポリシー

OVN-Kubernetes と OpenShift SDN との間に Egress ファイアウォールとしても知られる Egress ネットワークポリシーの設定に関する相違点は、以下の表に記載されています。

Expand
表25.5 Egress ネットワークポリシー設定の相違点
OVN-KubernetesOpenShift SDN
  • EgressFirewall オブジェクトを namespace に作成します。
  • EgressNetworkPolicy オブジェクトを namespace に作成します。
注記

EgressFirewall オブジェクトの名前は default にしか設定できないため、移行後は、OpenShift SDN での名前に関係なく、移行されたすべての EgressNetworkPolicy オブジェクトに default という名前が付けられます。

その後、OpenShift SDN にロールバックすると、以前の名前が失われるため、すべての EgressNetworkPolicy オブジェクトに default という名前が付けられます。

OVN-Kubernetes で Egress ファイアウォールを使用する方法の詳細は、「プロジェクトの Egress ファイアウォールの設定」を参照してください。

Egress ルーター Pod

OVN-Kubernetes は、リダイレクトモードで Egress ルーター Pod をサポートします。OVN-Kubernetes は、HTTP プロキシーモードまたは DNS プロキシーモードでは Egress ルーター Pod をサポートしません。

Cluster Network Operator で Egress ルーターをデプロイする場合、ノードセレクターを指定して、Egress ルーター Pod のホストに使用するノードを制御することはできません。

マルチキャスト

OVN-Kubernetes と OpenShift SDN でマルチキャストトラフィックを有効にする方法の相違点は、以下の表で説明されています。

Expand
表25.6 マルチキャスト設定の相違点
OVN-KubernetesOpenShift SDN
  • アノテーションを Namespace オブジェクトに追加します。
  • アノテーションを NetNamespace オブジェクトに追加します。

OVN-Kubernetes でのマルチキャストの使用に関する詳細は、「プロジェクトのマルチキャストの有効化」を参照してください。

ネットワークポリシー

OVN-Kubernetes は、networking.k8s.io/v1 API グループで Kubernetes NetworkPolicy API を完全にサポートします。OpenShift SDN から移行する際に、ネットワークポリシーで変更を加える必要はありません。

25.5.1.2. 移行プロセスの仕組み

以下の表は、プロセスのユーザーが開始する手順と、移行が応答として実行するアクション間を区分して移行プロセスを要約しています。

Expand
表25.7 OpenShift SDN から OVN-Kubernetes への移行
ユーザーが開始する手順移行アクティビティー

cluster という名前の Network.operator.openshift.io カスタムリソース (CR) の migration フィールドを OVNKubernetes に設定します。migration フィールドを値に設定する前に null であることを確認します。

Cluster Network Operator (CNO)
cluster という名前の Network.config.openshift.io CR のステータスを更新します。
Machine Config Operator (MCO)
OVN-Kubernetes に必要な systemd 設定の更新をロールアウトします。デフォルトでは、MCO はプールごとに一度に 1 台のマシンを更新するため、クラスターのサイズに応じて移行にかかる合計時間が長くなります。

Network.config.openshift.io CR の networkType フィールドを更新します。

CNO

以下のアクションを実行します。

  • OpenShift SDN コントロールプレーン Pod を破棄します。
  • OVN-Kubernetes コントロールプレーン Pod をデプロイします。
  • Multus オブジェクトを更新して、新しいネットワークプラグインを反映します。

クラスターの各ノードを再起動します。

クラスター
ノードの再起動時に、クラスターは OVN-Kubernetes クラスターネットワークの Pod に IP アドレスを割り当てます。

OpenShift SDN へのロールバックが必要な場合は、以下の表がプロセスを説明します。

重要

ロールバックを開始する前に、OpenShift SDN から OVN-Kubernetes ネットワークプラグインへの移行プロセスが成功するまで待つ必要があります。

Expand
表25.8 OpenShift SDN へのロールバックの実行
ユーザーが開始する手順移行アクティビティー

MCO を一時停止し、移行が中断されないようにします。

MCO が停止します。

cluster という名前の Network.operator.openshift.io カスタムリソース (CR) の migration フィールドを OpenShiftSDN に設定します。migration フィールドを値に設定する前に null であることを確認します。

CNO
cluster という名前の Network.config.openshift.io CR のステータスを更新します。

networkType フィールドを更新します。

CNO

以下のアクションを実行します。

  • OVN-Kubernetes コントロールプレーン Pod を破棄します。
  • OpenShift SDN コントロールプレーン Pod をデプロイします。
  • Multus オブジェクトを更新して、新しいネットワークプラグインを反映します。

クラスターの各ノードを再起動します。

クラスター
ノードがリブートすると、クラスターは OpenShift-SDN ネットワーク上の Pod に IP アドレスを割り当てます。

クラスターのすべてのノードが再起動した後に MCO を有効にします。

MCO
OpenShift SDN に必要な systemd 設定の更新をロールアウトします。デフォルトでは、MCO はプールごとに一度に 1 台のマシンを更新するため、移行にかかる合計時間はクラスターのサイズに応じて増加します。

25.5.1.3. Ansible Playbook を使用した OVN-Kubernetes ネットワークプラグインへの移行

クラスター管理者は、Ansible コレクション network.offline_migration_sdn_to_ovnk を使用して、OpenShift SDN Container Network Interface (CNI)ネットワークプラグインからクラスターの OVN-Kubernetes プラグインに移行できます。Ansible コレクションには、次の Playbook が含まれています。

  • playbooks/playbook-migration.yml: 各 Playbook が移行プロセスのステップを表すシーケンスで実行される Playbook が含まれます。
  • playbooks/playbook-rollback.yml: 各 Playbook がロールバックプロセスのステップを表すシーケンスで実行される Playbook が含まれます。

前提条件

  • python3 パッケージ(最小バージョン 3.10)をインストールしている。
  • jmespath パッケージおよび jq パッケージをインストールしました。
  • Red Hat Hybrid Cloud Console にログインし、Ansible Automation Platform Web コンソールを開いている。
  • すべてのクラウドプラットフォーム上のすべてのノードに対してポート 6081 上の User Datagram Protocol (UDP) パケットを許可するセキュリティーグループルールを作成している。このタスクを実行しないと、クラスターが Pod のスケジュールに失敗する可能性があります。
  • クラスターがホストネットワークで静的ルートまたはルーティングポリシーを使用しているかどうかを確認します。

    • true の場合、後の手順では、playbooks/playbook-migration.yml ファイルの gatewayConfig セクションで、routingViaHost パラメーターを true に設定し、ipForwarding パラメーターを Global に設定する必要があります。
  • OpenShift-SDN プラグインが 100 .64.0.0/16 および 100. 88.0.0/16 アドレス範囲を使用する場合は、アドレス範囲にパッチを適用します。詳細については、関連情報 セクションの OVN-Kubernetes アドレス範囲の修正を参照して ください。

手順

  1. ansible-core パッケージをインストールします(最小バージョン 2.15)。以下のコマンド例は、Red Hat Enterprise Linux (RHEL)に ansible-core パッケージをインストールする方法を示しています。

    $ sudo dnf install -y ansible-core
  2. ansible.cfg ファイルを作成し、以下の例のような情報をファイルに追加します。ansible-galaxy コマンドおよび Playbook が実行されるのと同じディレクトリーにファイルが存在することを確認します。

    $ cat << EOF >> ansible.cfg
    [galaxy]
    server_list = automation_hub, validated
    
    [galaxy_server.automation_hub]
    url=https://console.redhat.com/api/automation-hub/content/published/
    auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token
    token=
    
    #[galaxy_server.release_galaxy]
    #url=https://galaxy.ansible.com/
    
    [galaxy_server.validated]
    url=https://console.redhat.com/api/automation-hub/content/validated/
    auth_url=https://sso.redhat.com/auth/realms/redhat-external/protocol/openid-connect/token
    token=
    EOF
  3. Ansible Automation Platform Web コンソールから、Connect to Hub ページに移動し、次の手順を実行します。

    1. ページの Offline token セクションで、Load token ボタンをクリックします。
    2. トークンがロードされたら、Copy to clipboard アイコンをクリックします。
    3. ansible.cfg ファイルを開き、API トークンを token= パラメーターに貼り付けます。API トークンは、ansible.cfg ファイルで指定されたサーバー URL に対して認証するために必要です。
  4. 以下の ansible-galaxy コマンドを入力して、network.offline_migration_sdn_to_ovnk Ansible コレクションをインストールします。

    $ ansible-galaxy collection install network.offline_migration_sdn_to_ovnk
  5. network.offline_migration_sdn_to_ovnk Ansible コレクションがシステムにインストールされていることを確認します。

    $ ansible-galaxy collection list | grep network.offline_migration_sdn_to_ovnk

    出力例

    network.offline_migration_sdn_to_ovnk   1.0.2

    network.offline_migration_sdn_to_ovnk Ansible コレクションは、~/.ansible/collections/ansible_collections/network/offline_migration_sdn_to_ovnk/ のデフォルトパスに保存されます。

  6. playbooks/playbook-migration.yml ファイルで移行機能を設定します。

    # ...
        migration_interface_name: eth0
        migration_disable_auto_migration: true
        migration_egress_ip: false
        migration_egress_firewall: false
        migration_multicast: false
        migration_routing_via_host: true
        migration_ip_forwarding: Global
        migration_cidr: "10.240.0.0/14"
        migration_prefix: 23
        migration_mtu: 1400
        migration_geneve_port: 6081
        migration_ipv4_subnet: "100.64.0.0/16"
    # ...
    migration_interface_name
    プライマリーインターフェイスで NodeNetworkConfigurationPolicy (NNCP)リソースを使用する場合は、移行プロセス中に NNCP リソースがプライマリーインターフェイスで削除されるように、migration-playbook.yml ファイルでインターフェイス名を指定します。
    migration_disable_auto_migration
    OVN-Kubernetes プラグインへの OpenShift SDN CNI プラグイン機能の自動移行を無効にします。機能の自動移行を無効にする場合は、migration_egress_ip パラメーター、migration_egress_firewall パラメーター、および migration_multicast パラメーターも false に設定する必要があります。機能の自動移行を有効にする必要がある場合は、パラメーターを false に設定します。
    migration_routing_via_host
    ローカルゲートウェイモードを設定するには true に設定し、クラスターのノードの共有ゲートウェイモードを設定するには false に設定します。デフォルト値は false です。ローカルゲートウェイモードでは、トラフィックはホストネットワークスタックを介してルーティングされます。共有ゲートウェイモードでは、トラフィックはホストネットワークスタック経由でルーティングされません。
    migration_ip_forwarding
    ローカルゲートウェイモードを設定している場合は、ノードのホストネットワークが OVN-Kubernetes に関係のないトラフィックのルーターとして機能する必要がある場合は、IP 転送を Global に設定します。
    migration_cidr
    クラスターの Classless Inter-Domain Routing (CIDR) IP アドレスブロックを指定します。OVN-Kubernetes ネットワークプロバイダーはこのブロックを内部で使用するため、100.64.0.0/16 CIDR ブロックと重複する CIDR ブロックは使用できません。
    migration_prefix
    クラスター内の各ノードに割り当てられる CIDR ブロックのスライスである prefix 値を指定します。
    migration_mtu
    移行プロセス後にクラスターネットワークに特定の最大伝送単位(MTU)を設定するオプションのパラメーター。
    migration_geneve_port
    OVN-Kubernetes の Geneve ポートを設定するオプションのパラメーター。デフォルトのポートは 6081 です。
    migration_ipv4_subnet
    OVN-Kubernetes による内部使用の IPv4 アドレス範囲を設定するオプションのパラメーター。パラメーターのデフォルト値は 100.64.0.0/16 です
  7. playbooks/playbook-migration.yml ファイルを実行するには、以下のコマンドを入力します。

    $ ansible-playbook -v playbooks/playbook-migration.yml
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る