第1章 OVN-Kubernetes ネットワークプラグインについて
OVN-Kubernetes Container Network Interface (CNI) プラグインは、MicroShift クラスターのデフォルトのネットワークソリューションです。OVN-Kubernetes は、Open Virtual Network (OVN) に基づく Pod およびサービス用の仮想化ネットワークです。
-
デフォルトのネットワーク設定と接続は、インストール中に
microshift-networking
RPM を使用して MicroShift に自動的に適用されます。 - OVN-Kubernetes ネットワークプラグインを使用するクラスターは、ノードで Open vSwitch (OVS) も実行します。
- OVN-K は、宣言されたネットワーク設定を実装するようにノードの OVS を設定します。
-
ホストの物理インターフェイスは、デフォルトでは OVN-K ゲートウェイブリッジ
br-ex
にバインドされません。Network Manager CLI (nmcli
) など、ホスト上の標準ツールを使用してデフォルトゲートウェイを管理できます。 - CNI の変更は MicroShift ではサポートされていません。
設定ファイルまたはカスタムスクリプトを使用して、次のネットワーク設定を設定できます。
- サブネットの CIDR 範囲を使用して、Pod に IP アドレスを割り当てることができます。
- 最大伝送単位 (MTU) 値を変更できます。
- ファイアウォールの Ingress と Egress を設定できます。
- MicroShift クラスターでは、Ingress ルールや Egress ルールなどのネットワークポリシーを定義できます。
- MicroShift Multus プラグインを使用して、他の CNI プラグインをチェーンできます。
- Ingress ルーターを設定または削除できます。
1.1. MicroShift ネットワーク設定マトリックス
次の表はネットワーク機能のステータスをまとめたものです。デフォルトとして存在する機能、設定可能な機能、MicroShift サービスで使用できない機能があります。
ネットワーク機能 | 可用性 | 設定のサポート |
---|---|---|
アドレスのアドバタイズ | はい | はい [1] |
Kubernetes ネットワークポリシー | はい | はい |
Kubernetes ネットワークポリシーログ | 利用不可 | 該当なし |
負荷分散 | はい | はい |
マルチキャスト DNS | はい | はい [2] |
ネットワークプロキシー | はい [3] | CRI-O |
ネットワークパフォーマンス | はい | MTU 設定 |
Egress IP | 利用不可 | 該当なし |
Egress ファイアウォール | 利用不可 | 該当なし |
Egress ルーター | 利用不可 | 該当なし |
ファイアウォール | いいえ [4] | はい |
ハードウェアのオフロード | 利用不可 | 該当なし |
ハイブリッドネットワーク | 利用不可 | 該当なし |
クラスター内通信の IPsec 暗号化 | 利用不可 | 該当なし |
IPv6 | サポート対象 [4] | 該当なし |
Ingress ルーター | はい | はい [6] |
複数のネットワークプラグイン | はい | はい |
-
設定されていない場合、デフォルト値はサービスネットワークのすぐ後のサブネットに設定されます。たとえば、サービスネットワークが
10.43.0.0/16
の場合、advertiseAddress
は、10.44.0.0/32
に設定されます。 -
マルチキャスト DNS プロトコル (mDNS) を使用することで、
5353/UDP
ポートで公開されているマルチキャストを使用した、ローカルエリアネットワーク (LAN) 内で名前解決とサービス検出が可能になります。 - MicroShift には、Egress トラフィックをプロキシーする、埋め込みの透過的機能はありません。Egress は手動で設定する必要があります。
- firewalld サービスのセットアップは、RHEL for Edge でサポートされています。
- IPv6 は、OVN-Kubernetes ネットワークプラグインを使用するシングルスタックおよびデュアルスタックネットワークの両方でサポートされています。IPv6 は、MicroShift Multus CNI プラグインを使用して他のネットワークに接続することでのみ使用できます。
-
MicroShift の
config.yaml
ファイルを使用して設定します。
1.1.1. デフォルトの設定
config.yaml
ファイルを作成しない場合は、デフォルト値が使用されます。次の例は、デフォルトの設定を示しています。
デフォルト値を確認するには、次のコマンドを実行します。
$ microshift show-config
YAML 形式でのデフォルト値の出力例
apiServer: advertiseAddress: 10.44.0.0/32 1 auditLog: maxFileAge: 0 maxFileSize: 200 maxFiles: 10 profile: Default namedCertificates: - certPath: "" keyPath: "" names: - "" subjectAltNames: [] debugging: logLevel: "Normal" dns: baseDomain: microshift.example.com etcd: memoryLimitMB: 0 ingress: listenAddress: - "" ports: http: 80 https: 443 routeAdmissionPolicy: namespaceOwnership: InterNamespaceAllowed status: Managed kubelet: manifests: kustomizePaths: - /usr/lib/microshift/manifests - /usr/lib/microshift/manifests.d/* - /etc/microshift/manifests - /etc/microshift/manifests.d/* network: clusterNetwork: - 10.42.0.0/16 serviceNetwork: - 10.43.0.0/16 serviceNodePortRange: 30000-32767 node: hostnameOverride: "" nodeIP: "" 2 nodeIPv6: "" storage: driver: "" 3 optionalCsiComponents: 4 - ""