2.4. カスタマイズした br-ex ブリッジを含むマニフェストオブジェクトの作成
configure-ovs.sh シェルスクリプトを使用してベアメタルプラットフォームで br-ex ブリッジを設定する代わりに、NMState 設定ファイルを含む MachineConfig オブジェクトを作成できます。ホスト nmstate-configuration.service および nmstate.service により、クラスター内で実行される各ノードに NMState 設定ファイルが適用されます。
configure-ovs.sh シェルスクリプトを使用してベアメタルプラットフォームで br-ex ブリッジを設定する代わりに、NMState 設定ファイルを含む NodeNetworkConfigurationPolicy (NNCP) カスタムリソース (CR) を作成することもできます。
Kubernetes NMState Operator がその NMState 設定ファイルを使用して、カスタマイズされた br-ex ブリッジネットワーク設定をクラスター内の各ノードに作成します。
NodeNetworkConfigurationPolicy CR を作成したら、クラスターのインストール中に作成された NMState 設定ファイルの内容を NNCP CR にコピーしてください。NNCP CR のファイルが不完全な場合、ファイルに記述されているネットワークポリシーをクラスター内のノードに適用できません。
この機能は、次のタスクをサポートします。
- クラスターの最大転送単位 (MTU) を変更します。
- MIImon (Media Independent Interface Monitor)、ボンディングモード、Quality of Service (QoS) などのさまざまなボンディングインターフェイスの属性を変更します。
- DNS 値を更新しています。
カスタマイズした br-ex ブリッジを含むマニフェストオブジェクトを作成する場合は、次のユースケースを検討してください。
-
Open vSwitch (OVS) または OVN-Kubernetes
br-exブリッジネットワークの変更など、ブリッジにインストール後の変更を加えたい場合。configure-ovs.shシェルスクリプトは、ブリッジへのインストール後の変更をサポートしていません。 - ホストまたはサーバーの IP アドレスで使用可能なインターフェイスとは異なるインターフェイスにブリッジをデプロイします。
-
configure-ovs.shシェルスクリプトでは不可能な、ブリッジの高度な設定を実行したいと考えています。これらの設定にスクリプトを使用すると、ブリッジが複数のネットワークインターフェイスに接続できず、インターフェイス間のデータ転送が促進されない可能性があります。
単一のネットワークインターフェイスコントローラー (NIC) とデフォルトのネットワーク設定を備えた環境が必要な場合は、configure-ovs.sh シェルスクリプトを使用します。
Red Hat Enterprise Linux CoreOS (RHCOS) をインストールしてシステムを再起動すると、Machine Config Operator がクラスター内の各ノードに Ignition 設定ファイルを挿入し、各ノードが br-ex ブリッジネットワーク設定を受け取るようになります。設定の競合を防ぐために、configure-ovs.sh シェルスクリプトは、br-ex ブリッジを設定しない信号を受け取ります。
前提条件
-
オプション: NMState 設定を検証できるように、
nmstateAPI をインストールしました。
手順
カスタマイズされた
br-exブリッジネットワークの base64 情報をデコードした NMState 設定ファイルを作成します。カスタマイズされた
br-exブリッジネットワークの NMState 設定の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
interfaces.name- インターフェイスの名前。
interfaces.type- イーサネットのタイプ。
interfaces.state- 作成後のインターフェイスの要求された状態。
ipv4.enabled- この例では、IPv4 と IPv6 を無効にします。
port.name- ブリッジが接続されるノードの NIC。
auto-route-metric-
br-exデフォルトルートに常に最高の優先度 (最も低いメトリック値) を付与するには、パラメーターを48に設定します。この設定により、NetworkManagerサービスによって自動的に設定される他のインターフェイスとのルーティングの競合が防止されます。
catコマンドを使用して、NMState 設定の内容を base64 でエンコードします。cat <nmstate_configuration>.yml | base64
$ cat <nmstate_configuration>.yml | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
<nmstate_configuration>-
<nmstate_configuration>を NMState リソース YAML ファイルの名前に置き換えます。
MachineConfigマニフェストファイルを作成し、次の例に類似したカスタマイズされたbr-exブリッジネットワーク設定を定義します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ここでは、以下のようになります。
metadata.name- ポリシーの名前。
contents.source- エンコードされた base64 情報を指定されたパスに書き込みます。
pathクラスター内の各ノードに対して、ノードへのホスト名パスと、マシンタイプに応じた base-64 でエンコードされた Ignition 設定ファイルデータを指定します。
workerロールは、クラスター内のノードのデフォルトロールです。各ノードまたはMachineConfigマニフェストファイルのすべてのノードに短いホスト名パスを指定する場合は、$(hostname -s)などの設定ファイルに .yml 拡張を使用する必要があります。.ymlクラスター内のすべてのノードに適用する単一のグローバル設定が
/etc/nmstate/openshift/cluster.yml設定ファイルで指定されている場合は、各ノードの短いホスト名パス (例:/etc/nmstate/openshift/<node_hostname>.yml) を指定する必要はありません。以下に例を示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを入力して、
MachineConfigオブジェクトの更新をクラスターに適用します。oc apply -f <machine_config>.yml
$ oc apply -f <machine_config>.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のステップ
-
コンピュートノードをスケーリングして、クラスター内に存在する各コンピュートノードに、カスタマイズされた
br-exブリッジを含むマニフェストオブジェクトを適用します。詳細は、関連情報 セクションの「クラスターの拡張」を参照してください。
2.4.1. オプション: 各マシンセットをコンピュートノードにスケーリングする リンクのコピーリンクがクリップボードにコピーされました!
カスタマイズされた br-ex ブリッジ設定を OpenShift Container Platform クラスター内のすべてのコンピュートノードに適用するには、MachineConfig カスタムリソース (CR) を編集し、そのロールを変更する必要があります。さらに、ホスト名、認証情報など、ベアメタルマシンの情報を定義する BareMetalHost CR を作成する必要があります。
これらのリソースを設定した後、マシンセットをスケーリングして、マシンセットが各コンピュートノードにリソース設定を適用し、ノードを再起動できるようにする必要があります。
前提条件
-
カスタマイズされた
br-exブリッジ設定を含むMachineConfigマニフェストオブジェクトを作成しました。
手順
次のコマンドを入力して
MachineConfigCR を編集します。oc edit mc <machineconfig_custom_resource_name>
$ oc edit mc <machineconfig_custom_resource_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 各コンピュートノード設定を CR に追加して、CR がクラスター内の定義済みコンピュートノードごとにロールを管理できるようにします。
-
最小限の静的 IP 設定を持つ
extraworker-secretという名前のSecretオブジェクトを作成します。 次のコマンドを入力して、クラスター内の各ノードに
extraworker-secretシークレットを適用します。このステップでは、各コンピュートノードに Ignition 設定ファイルへのアクセスを提供します。oc apply -f ./extraworker-secret.yaml
$ oc apply -f ./extraworker-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow BareMetalHostリソースを作成し、preprovisioningNetworkDataNameパラメーターでネットワークシークレットを指定します。ネットワークシークレットが添付された
BareMetalHostリソースの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターの
openshift-machine-apinamespace 内でBareMetalHostオブジェクトを管理するために、次のコマンドを入力して namespace に変更します。oc project openshift-machine-api
$ oc project openshift-machine-apiCopy to Clipboard Copied! Toggle word wrap Toggle overflow マシンセットを取得します。
oc get machinesets
$ oc get machinesetsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを入力して、各マシンセットをスケールします。このコマンドはマシンセットごとに実行する必要があります。
oc scale machineset <machineset_name> --replicas=<n>
$ oc scale machineset <machineset_name> --replicas=<n>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<machineset_name>はマシンセットの名前です。<n>はコンピュートノードの数です。