第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 | 利用不可 [5] | 該当なし |
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 はサポートされていません。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 2 maxFileSize: 200 3 maxFiles: 10 4 profile: Default 5 namedCertificates: - certPath: "" keyPath: "" names: - "" subjectAltNames: [] 6 debugging: logLevel: "Normal" 7 dns: baseDomain: microshift.example.com 8 etcd: memoryLimitMB: 0 9 ingress: listenAddress: - "" 10 ports: 11 http: 80 https: 443 routeAdmissionPolicy: namespaceOwnership: InterNamespaceAllowed 12 status: Managed 13 manifests: 14 kustomizePaths: - /usr/lib/microshift/manifests - /usr/lib/microshift/manifests.d/* - /etc/microshift/manifests - /etc/microshift/manifests.d/* network: clusterNetwork: - 10.42.0.0/16 15 serviceNetwork: - 10.43.0.0/16 16 serviceNodePortRange: 30000-32767 17 node: hostnameOverride: "" 18 nodeIP: "" 19
- 1
- API サーバーがクラスターのメンバーにアドバタイズされる IP アドレスを指定する文字列。デフォルト値は、サービスネットワークのアドレスに基づいて計算されます。
- 2
- ログファイルが自動的に削除されるまでの保存期間。
maxFileAge
パラメーターのデフォルト値0
に設定すると、ログファイルが経過時間をベースに削除されなくなります。この値は設定可能です。 - 3
- デフォルトでは、
audit.log
ファイルがmaxFileSize
の制限に達すると、audit.log
ファイルがローテーションされ、MicroShift は新しいaudit.log
ファイルへの書き込みを開始します。この値は設定可能です。 - 4
- 保存されるログファイルの合計数。デフォルトでは、MicroShift は 10 個のログファイルを保持します。余分なファイルが作成されると、最も古いものが削除されます。この値は設定可能です。
- 5
- 読み取りおよび書き込み要求のメタデータのみをログに記録します。OAuth アクセストークン要求を除く要求の本文はログに記録されません。このフィールドを指定しない場合は、
Default
プロファイルが使用されます。 - 6
- API サーバー証明書のサブジェクト代替名 (SAN)。
- 7
- ログの詳細レベル。このフィールドの有効な値は、
Normal
、Debug
、Trace
、またはTraceAll
です。 - 8
- デフォルトでは、
etcd
はシステムの負荷を処理するために必要な量のメモリーを使用します。ただし、メモリー制約のあるシステムでは、etcd
が特定の時点で使用できるメモリーの量を制限することが望ましいか、または制限する必要がある場合があります。 - 9
- クラスターのベースドメイン。管理されるすべての DNS レコードはこのベースのサブドメインです。
- 10
ingress.listenAddress
の値は、デフォルトでホストのネットワーク全体に設定されます。有効な設定可能な値は、単一の IP アドレスまたは NIC 名、あるいは複数の IP アドレスと NIC 名のリストです。- 11
- デフォルトのポートが表示されます。設定可能です。両方のポートエントリーの有効な値は、1 - 65535 の範囲にある単一の一意のポートです。
ports.http
およびports.https
フィールドの値は、同じにすることはできません。 - 12
- 複数の namespace のホスト名要求の処理方法を記述します。デフォルトでは、ルートが、複数の namespace においてホストが同じ名前でパスが異なる要求を許可します。有効な値は
Strict
およびInterNamespaceAllowed
です。Strict
を指定すると、namespace が異なるルートが、同じホスト名を要求しなくなります。カスタマイズされた MicroShift のconfig.yaml
で値が削除されると、InterNamespaceAllowed
値が自動的に設定されます。 - 13
- デフォルトのルーターステータスは、
Managed
またはRemoved
のいずれかになります。 - 14
- マニフェストをロードするために使用する
kustomization
ファイルをスキャンするファイルシステム上の場所。パスのリストを設定すると、それらのパスのみをスキャンします。マニフェストの読み込みを無効にするには、空のリストに設定します。リスト内のエントリーは、複数のサブディレクトリーに一致する glob パターンに指定できます。 - 15
- Pod IP アドレスの割り当てに使用する IP アドレスのブロック。このフィールドは、インストール後は不変です。
- 16
- Kubernetes サービスの仮想 IP アドレスのブロック。サービスの IP アドレスプール。単一のエントリーがサポートされます。このフィールドは、インストール後は不変です。
- 17
NodePort
タイプの Kubernetes サービスに許可されるポート範囲。指定しない場合、デフォルトの範囲の 30000-32767 が使用されます。NodePort
が指定されていないサービスは、この範囲から自動的に割り当てられます。このパラメーターは、クラスターのインストール後に更新できます。- 18
- ノードの名前。デフォルト値はホスト名です。空でない場合、この文字列はホスト名ではなく、ノードを識別するために使用されます。MicroShift の初回起動後に、この不変設定を変更することはできません。
- 19
- ノードの IP アドレス。デフォルト値は、デフォルトルートの IP アドレスです。