第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 ルールなどのネットワークポリシーを定義できます。
1.1. MicroShift ネットワークのカスタマイズ表
次の表はネットワーク機能のステータスをまとめたものです。デフォルトとして存在する機能、設定可能な機能、MicroShift サービスで使用できない機能があります。
ネットワーク機能 | 利用可能 | カスタマイズ可能 |
---|---|---|
アドレスのアドバタイズ | はい | はい [1] |
Kubernetes ネットワークポリシー | はい | はい |
Kubernetes ネットワークポリシーログ | 利用不可 | 該当なし |
負荷分散 | はい | はい |
マルチキャスト DNS | はい | はい [2] |
ネットワークプロキシー | はい [3] | CRI-O |
ネットワークパフォーマンス | はい | MTU 設定 |
Egress IP | 利用不可 | 該当なし |
Egress ファイアウォール | 利用不可 | 該当なし |
Egress ルーター | 利用不可 | 該当なし |
ファイアウォール | いいえ [4] | はい |
ハードウェアのオフロード | 利用不可 | 該当なし |
ハイブリッドネットワーク | 利用不可 | 該当なし |
クラスター内通信の IPsec 暗号化 | 利用不可 | 該当なし |
IPv6 | 利用不可 [5] | 該当なし |
-
設定されていない場合、デフォルト値はサービスネットワークのすぐ後のサブネットに設定されます。たとえば、サービスネットワークが
10.43.0.0/16
の場合、advertiseAddress
は、10.44.0.0/32
に設定されます。 -
マルチキャスト DNS プロトコル (mDNS) を使用することで、
5353/UDP
ポートで公開されているマルチキャストを使用した、ローカルエリアネットワーク (LAN) 内で名前解決とサービス検出が可能になります。 - MicroShift には、Egress トラフィックをプロキシーする、埋め込みの透過的機能はありません。Egress は手動で設定する必要があります。
- firewalld サービスのセットアップは、RHEL for Edge でサポートされています。
- IPv6 はどの設定でも使用できません。
1.1.1. デフォルトの設定
config.yaml
ファイルを作成しない場合は、デフォルト値が使用されます。次の例は、デフォルトの設定を示しています。
デフォルト値を確認するには、次のコマンドを実行します。
$ microshift show-config
YAML 形式でのデフォルト値の出力例
dns: baseDomain: microshift.example.com 1 network: clusterNetwork: - 10.42.0.0/16 2 serviceNetwork: - 10.43.0.0/16 3 serviceNodePortRange: 30000-32767 4 node: hostnameOverride: "" 5 nodeIP: "" 6 apiServer: advertiseAddress: 10.44.0.0/32 7 subjectAltNames: [] 8 debugging: logLevel: "Normal" 9
- 1
- クラスターのベースドメイン。すべての管理対象 DNS レコードは、このベースのサブドメインになります。
- 2
- Pod IP アドレスの割り当てに使用する IP アドレスのブロック。
- 3
- Kubernetes サービスの仮想 IP アドレスのブロック。
- 4
- タイプ NodePort の Kubernetes サービスに許可されるポート範囲。
- 5
- ノードの名前。デフォルト値はホスト名です。
- 6
- ノードの IP アドレス。デフォルト値は、デフォルトルートの IP アドレスです。
- 7
- API サーバーがクラスターのメンバーにアドバタイズされる IP アドレスを指定する文字列。デフォルト値は、サービスネットワークのアドレスに基づいて計算されます。
- 8
- API サーバー証明書のサブジェクト代替名。
- 9
- ログの詳細レベル。このフィールドの有効な値は、
Normal
、Debug
、Trace
、またはTraceAll
です。