MicroShift is Developer Preview software only.
For more information about the support scope of Red Hat Developer Preview software, see Developer 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 に直接ネットワークアクセスできません。
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 トンネルを使用するため、Pod の最大転送単位 (MTU) はホスト上の物理インターフェイスの MTU よりも小さく設定され、トンネルヘッダーが削除されます。
OVS は Red Hat build of MicroShift ノードで systemd サービスとして実行します。OVS RPM パッケージは、microshift-networking RPM パッケージへの依存関係としてインストールされます。OVS は、microshift-networking RPM がインストールされるとすぐに開始します。
1.1.1.1. IP 転送 リンクのコピーリンクがクリップボードにコピーされました!
ホストネットワーク sysctl net.ipv4.ip_forward カーネルパラメーターは、起動時に ovnkube-master コンテナーによって自動的に有効になります。これは、着信トラフィックを CNI に転送するために必要です。たとえば、ip_forward が無効になっている場合は、クラスターの外部から NodePort サービスにアクセスすると失敗します。
1.1.2. ネットワークパフォーマンスの最適化 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、リソース消費を最小限に抑えるために、OVS サービスに 3 つのパフォーマンス最適化が適用されます。
-
ovs-vswitchd.serviceおよびovsdb-server.serviceへの CPU アフィニティー -
no-mlockallからopenvswitch.service -
ハンドラーと
revalidatorのスレッドをovs-vswitchd.serviceに限定
1.1.3. ネットワーク機能 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat build of MicroShift 4.12 で利用可能なネットワーク機能には、以下があります。
- Kubernetes ネットワークポリシー
- 動的ノード IP
- 指定されたホストインターフェイス上のクラスターネットワーク
- セカンダリーゲートウェイインターフェイス
- デュアルスタック
Red Hat build of MicroShift 4.12 で利用できないネットワーク機能には、以下があります。
- Egress IP/ファイアウォール/QOS: 無効
- ハイブリッドネットワーク: サポートなし
- IPsec: サポートなし
- ハードウェアオフロード: サポートなし
1.1.4. 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-ovsRPM パッケージは、必要な設定ファイルを含むmicroshift-networkingRPM パッケージへの依存関係としてインストールされます。Red Hat build of MicroShift の NetworkManager はkeyfileプラグインを使用し、microshift-networkingRPM パッケージのインストール後に再起動します。 - microshift-ovs-init
-
microshift-ovs-init.serviceは、microshift.service に依存する systemd サービスとして、microshift-networkingRPM パッケージによりインストールされます。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-kubernetesnamespace にデプロイされます。
-
ovnkube-master
- パッケージ
OVN-Kubernetes マニフェストと起動ロジックは Red Hat build of MicroShift に組み込まれています。
microshift-networkingRPM に含まれる 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.5. ブリッジマッピング リンクのコピーリンクがクリップボードにコピーされました!
ブリッジマッピングにより、プロバイダーネットワークのトラフィックは、物理ネットワークに到達することが可能となります。トラフィックはプロバイダーネットワークから出て、br-int ブリッジに到達します。br-int と br-ex の間のパッチポートは、トラフィックがプロバイダーネットワークとエッジネットワークを通信できるようにします。Kubernetes Pod は、仮想イーサネットペアを介して br-int ブリッジに接続されます。仮想イーサネットペアの一端は Pod の namespace に接続され、他端は br-int ブリッジに接続されます。
1.1.5.1. プライマリーゲートウェイインターフェイス リンクのコピーリンクがクリップボードにコピーされました!
ovn.yaml 設定ファイルで、目的のホストインターフェイス名を gatewayInterface として指定できます。指定されたインターフェイスは、CNI ネットワークのゲートウェイブリッジとして機能する OVS ブリッジ br-ex に追加されます。
1.1.5.2. セカンダリーゲートウェイインターフェイス リンクのコピーリンクがクリップボードにコピーされました!
ovn.yaml 設定ファイルで、クラスターの ingress および egress 用に 1 つの追加のホストインターフェイスを設定できます。追加のインターフェイスは、2 番目の OVS ブリッジ br-ex1 に追加されます。追加のホストサブネットに向けられたクラスター Pod トラフィックは、br-ex1 を介して宛先 IP に基づいて自動的にルーティングされます。
CNI 設定に基づいて、2 つまたは 3 つの OVS ブリッジが作成されます。
- デフォルトのデプロイメント
-
ovn.yaml設定ファイルでexternalGatewayInterfaceが指定されていません。 -
2 つの OVS ブリッジ
br-exとbr-intが作成されます。
-
- カスタマイズされたデプロイメント
-
externalGatewayInterfaceは、ovn.yaml設定ファイルでユーザーが指定します。 -
br-ex、br-ex1、br-intの 3 つの OVS ブリッジが作成されます。
-
br-ex ブリッジは、microshift-ovs-init.service または手動で作成されます。br-ex ブリッジには、ホストネットワーク (アンダーレイ) と OVN ネットワーク (オーバーレイ) との間のトラフィックを区別する、静的にプログラムされた openflow ルールが含まれています。
br-int ブリッジは ovnkube-master コンテナーによって作成されます。br-int ブリッジには、クラスターネットワークトラフィックを処理する動的にプログラムされた openflow ルールが含まれています。