MicroShift is Technology Preview software only.
For more information about the support scope of Red Hat Technology Preview software, see Technology Preview Support Scope.第1章 ネットワーク設定について
ネットワークのカスタマイズとデフォルト設定を Red Hat build of MicroShift デプロイメントに適用する方法を学びます。各ノードは単一のマシンと単一の Red Hat build of MicroShift に含まれているため、デプロイごとに個別の構成、Pod、および設定が必要です。
クラスター管理者は、クラスターで実行されるアプリケーションを外部トラフィックに公開し、ネットワーク接続のセキュリティーを保護するための複数のオプションがあります。
- NodePort などのサービス
-
Ingress
やRoute
などの API リソース
デフォルトで、Kubernetes は各 Pod に、Pod 内で実行しているアプリケーションの内部 IP アドレスを割り当てます。Pod とそのコンテナーの間にはトラフィックを配置できますが、NodePort などのサービスで公開されている場合を除き、クラスター外のクライアントは Pod に直接ネットワークアクセスできません。
NodePort サービスの接続問題のトラブルシューティングを行うには、リリースノートの既知の問題を読みください。
1.1. OVN-Kubernetes ネットワークプラグインについて
OVN-Kubernetes は、Red Hat build of MicroShift デプロイメントのデフォルトのネットワークソリューションです。OVN-Kubernetes は、Open Virtual Network (OVN) に基づく Pod およびサービス用の仮想化ネットワークです。OVN-Kubernetes Container Network Interface (CNI) プラグインは、クラスターのネットワークプラグインです。OVN-Kubernetes ネットワークプラグインを使用するクラスターは、ノードで Open vSwitch (OVS) も実行します。OVN は、宣言ネットワーク設定を実装するようにノードで OVS を設定します。
1.1.1. ネットワークトポロジー
OVN-Kubernetes は、オーバーレイベースのネットワーク実装を提供します。このオーバーレイには、Service および NetworkPolicy の OVS ベースの実装が含まれています。オーバーレイネットワークは、Geneve (Generic Network Virtualization Encapsulation) トンネルプロトコルを使用します。Geneve トンネルの Pod 最大送信単位 (MTU) は、ホスト上の物理インターフェイスの MTU よりも小さい値に設定されます。この小さい MTU により、送信前にトンネルヘッダーに追加される必要な情報のためのスペースが確保されます。
OVS は Red Hat build of MicroShift ノードで systemd サービスとして実行します。OVS RPM パッケージは、microshift-networking
RPM パッケージへの依存関係としてインストールされます。OVS は、microshift-networking
RPM がインストールされるとすぐに開始します。
Red Hat build of MicroShift ネットワークトポロジー
1.1.1.1. 仮想化ネットワークの OVN 論理コンポーネントの説明
- OVN ノードスイッチ
<node-name>
という名前の仮想スイッチ。OVN ノードスイッチの名前は、ノードのホスト名に基づいて付けられます。-
この例では、
node-name
はmicroshift-dev
です。
-
この例では、
- OVN クラスタールーター
ovn_cluster_router
という名前の仮想ルーター。分散ルーターとも呼ばれます。-
この例では、クラスターネットワークは
10.42.0.0/16
です。
-
この例では、クラスターネットワークは
- OVN 参加スイッチ
-
join
という名前の仮想スイッチ。 - OVN ゲートウェイルーター
-
GR_<node-name>
という名前の仮想ルーター。外部ゲートウェイルーターとも呼ばれます。 - OVN 外部スイッチ
-
ext_<node-name>
という名前の仮想スイッチ。
1.1.1.2. ネットワークトポロジー図の接続の説明
-
ネットワークサービスデバイス
enp1s0
と OVN 外部スイッチext_microshift-dev
の間の North-South トラフィックは、ゲートウェイブリッジbr-ex
によって OVS パッチポートを介して提供されます。 -
OVN ゲートウェイルーター
GR_microshift-dev
は、論理ルーターポート 4 を介して外部ネットワークスイッチext_microshift-dev
に接続しています。ポート 4 にはノード IP アドレス 192.168.122.14 が割り当てられます。 参加スイッチ
join
は、OVN ゲートウェイルーターGR_microshift-dev
を OVN クラスタールーターovn_cluster_router
に接続します。IP アドレス範囲は 100.62.0.0/16 です。-
OVN ゲートウェイルーター
GR_microshift-dev
は、論理ルーターポート 3 を介して OVN 参加スイッチjoin
に接続します。ポート 3 は内部 IP アドレス 100.64.0.2 に接続します。 -
OVN クラスタールーター
ovn_cluster_router
は、論理ルーターポート 2 を介して 参加スイッチjoin
に接続します。ポート 2 は内部 IP アドレス 100.64.0.1 に接続します。
-
OVN ゲートウェイルーター
-
OVN クラスタールーター
ovn_cluster_router
は、論理ルーターポート 1 を介してノードスイッチmicroshift-dev
に接続します。ポート 1 には、OVN クラスターネットワーク IP アドレス 10.42.0.1 が割り当てられます。 -
Pod とネットワークサービス間の East-West トラフィックは、OVN クラスタールーター
ovn_cluster_router
とノードスイッチmicroshift-dev
によって提供されます。IP アドレス範囲は 10.42.0.0/24 です。 -
Pod 間の East-West トラフィックは、ネットワークアドレス変換 (NAT) を使用せずに、ノードスイッチ
microshift-dev
によって提供されます。 -
Pod と外部ネットワーク間の North-South トラフィックは、OVN クラスタールーター
ovn_cluster_router
とホストネットワークによって提供されます。このルーターは、ovn-kubernetes
管理ポートovn-k8s-mp0
を介して、IP アドレス 10.42.0.2 で接続しています。 すべての Pod は、インターフェイスを介して OVN ノードスイッチに接続します。
-
この例では、Pod 1 と Pod 2 は、
Interface 1
とInterface 2
を介してノードスイッチに接続しています。
-
この例では、Pod 1 と Pod 2 は、
1.1.2. IP 転送
ホストネットワーク sysctl net.ipv4.ip_forward
カーネルパラメーターは、起動時に ovnkube-master
コンテナーによって自動的に有効になります。これは、着信トラフィックを CNI に転送するために必要です。たとえば、ip_forward
が無効になっている場合は、クラスターの外部から NodePort サービスにアクセスすると失敗します。
1.1.3. ネットワークパフォーマンスの最適化
デフォルトでは、リソース消費を最小限に抑えるために、OVS サービスに 3 つのパフォーマンス最適化が適用されます。
-
ovs-vswitchd.service
およびovsdb-server.service
への CPU アフィニティー -
no-mlockall
からopenvswitch.service
-
ハンドラーと
revalidator
のスレッドをovs-vswitchd.service
に限定
1.1.4. ネットワーク機能
Red Hat build of MicroShift 4.13 で利用可能なネットワーク機能には、以下があります。
- Kubernetes ネットワークポリシー
- 動的ノード IP
- 指定されたホストインターフェイス上のクラスターネットワーク
Red Hat build of MicroShift 4.13 で利用できないネットワーク機能には、以下があります。
- Egress IP/ファイアウォール/QOS: 無効
- ハイブリッドネットワーク: サポートなし
- IPsec: サポートなし
- ハードウェアオフロード: サポートなし
1.1.5. Red Hat build of MicroShift ネットワーキングコンポーネントとサービス
この簡単な概要では、Red Hat build of MicroShift でのネットワークコンポーネントとその操作を説明します。microshift-networking
RPM は、ネットワーク関連の依存関係と systemd サービスを自動的に取り込み、ネットワークを初期化するパッケージです (microshift-ovs-init
systemd サービスなど)。
- NetworkManager
-
NetworkManager は、Red Hat build of MicroShift ノードで初期ゲートウェイブリッジを設定するのに必要です。NetworkManager および
NetworkManager-ovs
RPM パッケージは、必要な設定ファイルを含むmicroshift-networking
RPM パッケージへの依存関係としてインストールされます。Red Hat build of MicroShift の NetworkManager はkeyfile
プラグインを使用し、microshift-networking
RPM パッケージのインストール後に再起動します。 - microshift-ovs-init
-
microshift-ovs-init.service
は、microshift.service に依存する systemd サービスとして、microshift-networking
RPM パッケージによりインストールされます。OVS ゲートウェイブリッジを設定します。 - OVN コンテナー
2 つの OVN-Kubernetes デーモンセットが Red Hat build of MicroShift によってレンダリングおよび適用されます。
-
ovnkube-master
northd
、nbdb
、sbdb
、およびovnkube-master
コンテナーが含まれます。 ovnkube-node ovnkube-node には、OVN-Controller コンテナーが含まれています。
Red Hat build of MicroShift の起動後、OVN-Kubernetes デーモンセットが
openshift-ovn-kubernetes
namespace にデプロイされます。
-
ovnkube-master
- パッケージ
OVN-Kubernetes マニフェストと起動ロジックは Red Hat build of MicroShift に組み込まれています。
microshift-networking
RPM に含まれる systemd サービスと設定は次のとおりです。-
NetworkManager.service の
/etc/NetworkManager/conf.d/microshift-nm.conf
-
ovs-vswitchd.service の
/etc/systemd/system/ovs-vswitchd.service.d/microshift-cpuaffinity.conf
-
/etc/systemd/system/ovsdb-server.service.d/microshift-cpuaffinity.conf
-
microshift-ovs-init.service の
/usr/bin/configure-ovs-microshift.sh
-
microshift-ovs-init.service の
/usr/bin/configure-ovs.sh
-
CRI-O サービスの
/etc/crio/crio.conf.d/microshift-ovn.conf
-
NetworkManager.service の
1.1.6. ブリッジマッピング
ブリッジマッピングにより、プロバイダーネットワークのトラフィックは、物理ネットワークに到達することが可能となります。トラフィックはプロバイダーネットワークから出て、br-int
ブリッジに到達します。br-int
と br-ex
の間のパッチポートは、トラフィックがプロバイダーネットワークとエッジネットワークを通信できるようにします。Kubernetes Pod は、仮想イーサネットペアを介して br-int
ブリッジに接続されます。仮想イーサネットペアの一端は Pod の namespace に接続され、他端は br-int
ブリッジに接続されます。
1.1.6.1. プライマリーゲートウェイインターフェイス
ovn.yaml
設定ファイルで、目的のホストインターフェイス名を gatewayInterface
として指定できます。指定されたインターフェイスは、CNI ネットワークのゲートウェイブリッジとして機能する OVS ブリッジ br-ex に追加されます。