13.2. OpenShift SDN クラスターネットワークプロバイダーからの移行

クラスター管理者は、OpenShift SDN CNI クラスターネットワークプロバイダーから OVN-Kubernetes Container Network Interface(CNI)クラスターネットワークプロバイダーに移行できます。

OVN-Kubernetes についての詳細は、「OVN-Kubernetes ネットワークプロバイダーについて」を参照してください。

13.2.1. OVN-Kubernetes ネットワークプロバイダーへの移行

OVN-Kubernetes Container Network Interface (CNI) デフォルトネットワークプロバイダーへの移行は、クラスターに到達できなくなるダウンタイムも含まれる手動プロセスです。ロールバック手順が提供されますが、移行は一方向プロセスとなることが意図されています。

注記

OVN-Kubernetes ネットワークプロバイダーへの移行は、ベアメタルハードウェアのみのインストーラーでプロビジョニングされるクラスターでサポートされます。

ベアメタルハードウェアでのユーザーによってプロビジョニングされるクラスターでの移行の実行はサポートされていません。

13.2.1.1. OVN-Kubernetes ネットワークプロバイダーへの移行についての考慮点

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

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

  • クラスターが以下の OpenShift SDN 機能のいずれかを使用する場合、OVN-Kubernetes で同じ機能を手動で設定する必要があります。

    • namespace の分離
    • Egress IP アドレス
    • Egress ネットワークポリシー
    • Egress ルーター Pod
    • マルチキャスト
  • クラスターが 100.64.0.0/16 IP アドレス範囲の一部を使用する場合、この IP アドレス範囲は内部で使用されるため、OVN-Kubernetes に移行することはできません。

以下のセクションでは、OVN-Kubernetes と OpenShift SDN の上記の機能間の設定の違いについて説明します。

namespace の分離

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

重要

クラスターがマルチテナントまたはサブネットの分離モードのいずれかで設定された OpenShift SDN を使用する場合、OVN-Kubernetes ネットワークプロバイダーに移行することはできません。

Egress IP アドレス

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

表13.2 egress IP アドレス設定の違い

OVN-KubernetesOpenShift SDN
  • EgressIPs オブジェクトを作成します。
  • アノテーションを Node オブジェクトに追加します。
  • NetNamespace オブジェクトにパッチを適用します。
  • HostSubnet オブジェクトにパッチを適用します。

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

Egress ネットワークポリシー

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

表13.3 egress ネットワークポリシー設定の相違点

OVN-KubernetesOpenShift SDN
  • EgressFirewall オブジェクトを namespace に作成します。
  • EgressNetworkPolicy オブジェクトを namespace に作成します。

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

Egress ルーター Pod

OVN-Kubernetes は、OpenShift Container Platform 4.6 での egress ルーター Pod の使用をサポートしません。

マルチキャスト

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

表13.4 マルチキャスト設定の相違点

OVN-KubernetesOpenShift SDN
  • アノテーションを Namespace オブジェクトに追加します。
  • アノテーションを NetNamespace オブジェクトに追加します。

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

ネットワークポリシー

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

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

移行プロセスは以下のように動作します。

  1. Cluster Network Operator (CNO) 設定オブジェクトに設定された一時的なアノテーションを設定します。このアノテーションは CNO をトリガーして、defaultNetwork フィールドへの変更の有無を監視します。
  2. Machine Config Operator (MCO) を一時停止し、移行が中断されないようにします。
  3. defaultNetwork フィールドを更新します。更新により、CNO は OpenShift SDN コントロールプレーン Pod を破棄し、OVN-Kubernetes コントロールプレーン Pod をデプロイします。さらに、新しいクラスターネットワークプロバイダーを反映するように Multus オブジェクトを更新します。
  4. クラスターの各ノードを再起動します。クラスターの既存 Pod はクラスターネットワークプロバイダーへの変更を認識しないため、各ノードを再起動すると、各ノードに Pod がドレイン (解放) されるようになります。新規 Pod は OVN-Kubernetes が提供する新規クラスターネットワークに割り当てられます。
  5. クラスターのすべてのノードが再起動した後に MCO を有効にします。MCO は移行の完了に必要な systemd 設定への更新をロールアウトします。MCO は、デフォルトでプールごとに一度に 1 つのマシンを更新するため、移行にかかる合計時間がクラスターのサイズと共に増加します。