3.14. マニフェスト設定ファイル
3.14.1. OpenShift Container Platform マニフェストの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform マニフェストを作成します。
$ ./openshift-baremetal-install --dir ~/clusterconfigs create manifestsINFO Consuming Install Config from target directory WARNING Making control-plane schedulable by setting MastersSchedulable to true for Scheduler cluster settings WARNING Discarding the OpenShift Manifest that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
3.14.2. 非接続クラスター向けの NTP 設定 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、クラスターノードに chrony Network Time Protocol (NTP) サービスをインストールします。
OpenShift Container Platform のノードは、適切に実行するために日付と時刻が一致している必要があります。コンピュートノードがコントロールプレーンノード上の NTP サーバーから日付と時刻を取得すると、ルーティング可能なネットワークに接続していないために上位層の NTP サーバーにアクセスできないクラスターのインストールと操作が可能になります。
手順
次のコマンドを使用して、インストールホストに Butane をインストールします。
$ sudo dnf -y install butaneコントロールプレーンノードの
chrony.confファイルのコンテンツを含む Butane 設定 (99-master-chrony-conf-override.bu) を作成します。注記Butane の詳細は、「Butane を使用したマシン設定の作成」を参照してください。
Butane 設定例
variant: openshift version: 4.17.0 metadata: name: 99-master-chrony-conf-override labels: machineconfiguration.openshift.io/role: master storage: files: - path: /etc/chrony.conf mode: 0644 overwrite: true contents: inline: | # Use public servers from the pool.ntp.org project. # Please consider joining the pool (https://www.pool.ntp.org/join.html). # The Machine Config Operator manages this file server openshift-master-0.<cluster-name>.<domain> iburst1 server openshift-master-1.<cluster-name>.<domain> iburst server openshift-master-2.<cluster-name>.<domain> iburst stratumweight 0 driftfile /var/lib/chrony/drift rtcsync makestep 10 3 bindcmdaddress 127.0.0.1 bindcmdaddress ::1 keyfile /etc/chrony.keys commandkey 1 generatecommandkey noclientlog logchange 0.5 logdir /var/log/chrony # Configure the control plane nodes to serve as local NTP servers # for all compute nodes, even if they are not in sync with an # upstream NTP server. # Allow NTP client access from the local network. allow all # Serve time even if not synchronized to a time source. local stratum 3 orphan- 1
<cluster-name>はクラスターの名前に置き換え、<domain>は完全修飾ドメイン名に置き換える必要があります。
Butane を使用して、コントロールプレーンノードに配信される設定が含まれる
MachineConfigオブジェクトファイル (99-master-chrony-conf-override.yaml) を生成します。$ butane 99-master-chrony-conf-override.bu -o 99-master-chrony-conf-override.yamlコントロールプレーンノード上の NTP サーバーを参照するコンピュートノードの
chrony.confファイルの内容を含む Butane 設定99-worker-chrony-conf-override.buを作成します。Butane 設定例
variant: openshift version: 4.17.0 metadata: name: 99-worker-chrony-conf-override labels: machineconfiguration.openshift.io/role: worker storage: files: - path: /etc/chrony.conf mode: 0644 overwrite: true contents: inline: | # The Machine Config Operator manages this file. server openshift-master-0.<cluster-name>.<domain> iburst1 server openshift-master-1.<cluster-name>.<domain> iburst server openshift-master-2.<cluster-name>.<domain> iburst stratumweight 0 driftfile /var/lib/chrony/drift rtcsync makestep 10 3 bindcmdaddress 127.0.0.1 bindcmdaddress ::1 keyfile /etc/chrony.keys commandkey 1 generatecommandkey noclientlog logchange 0.5 logdir /var/log/chrony- 1
<cluster-name>はクラスターの名前に置き換え、<domain>は完全修飾ドメイン名に置き換える必要があります。
Butane を使用して、ワーカーノードに配信される設定が含まれる
MachineConfigオブジェクトファイル (99-worker-chrony-conf-override.yaml) を生成します。$ butane 99-worker-chrony-conf-override.bu -o 99-worker-chrony-conf-override.yaml
3.14.3. コントロールプレーンで実行されるネットワークコンポーネントの設定 リンクのコピーリンクがクリップボードにコピーされました!
ネットワークコンポーネントは、コントロールプレーンノードでのみ実行するように設定できます。デフォルトで、OpenShift Container Platform はマシン設定プールの任意のノードが ingressVIP 仮想 IP アドレスをホストできるようにします。ただし、環境によっては、コントロールプレーンノードとは別のサブネットにコンピュートノードがデプロイされるため、コントロールプレーンノードで実行するために ingressVIP 仮想 IP アドレスを設定する必要があります。
リモートノードを別々のサブネットにデプロイする場合は、コントロールプレーンノード専用に ingressVIP 仮想 IP アドレスを配置する必要があります。
手順
install-config.yamlファイルを保存するディレクトリーに移動します。$ cd ~/clusterconfigsmanifestsサブディレクトリーに切り替えます。$ cd manifestscluster-network-avoid-workers-99-config.yamlという名前のファイルを作成します。$ touch cluster-network-avoid-workers-99-config.yamlエディターで
cluster-network-avoid-workers-99-config.yamlファイルを開き、Operator 設定を記述するカスタムリソース (CR) を入力します。apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: name: 50-worker-fix-ipi-rwn labels: machineconfiguration.openshift.io/role: worker spec: config: ignition: version: 3.2.0 storage: files: - path: /etc/kubernetes/manifests/keepalived.yaml mode: 0644 contents: source: data:,このマニフェストは、
ingressVIP仮想 IP アドレスをコントロールプレーンノードに配置します。また、このマニフェストは、コントロールプレーンノードにのみ以下のプロセスをデプロイします。-
openshift-ingress-operator -
keepalived
-
-
cluster-network-avoid-workers-99-config.yamlファイルを保存します。 manifests/cluster-ingress-default-ingresscontroller.yamlファイルを作成します。apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: default namespace: openshift-ingress-operator spec: nodePlacement: nodeSelector: matchLabels: node-role.kubernetes.io/master: ""-
manifestsディレクトリーのバックアップの作成を検討してください。インストーラーは、クラスターの作成時にmanifests/ディレクトリーを削除します。 cluster-scheduler-02-config.ymlマニフェストを変更し、mastersSchedulableフィールドをtrueに設定して、コントロールプレーンノードをスケジュール対象にします。デフォルトでは、コントロールプレーンノードはスケジュール対象ではありません。以下に例を示します。$ sed -i "s;mastersSchedulable: false;mastersSchedulable: true;g" clusterconfigs/manifests/cluster-scheduler-02-config.yml注記この手順の完了後にコントロールプレーンノードをスケジュールできない場合には、クラスターのデプロイに失敗します。
3.14.4. コンピュートノードへのルーターのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
インストール時に、インストールプログラムはルーター Pod をコンピュートノードにデプロイします。デフォルトでは、インストールプログラムは 2 つのルーター Pod をインストールします。デプロイされたクラスターが、OpenShift Container Platform クラスター内のサービスに対して予定される外部トラフィック負荷を処理するために追加のルーターを必要とする場合、yaml ファイルを作成して適切なルーターレプリカ数を設定できます。
コンピュートノードが 1 つだけのクラスターのデプロイはサポートされていません。ルーターのレプリカを変更すると、1 つのコンピュートノードでデプロイする場合の degraded 状態の問題が解決されますが、クラスターで Ingress API の高可用性が失われるため、実稼働環境には適していません。
デフォルトでは、インストールプログラムは 2 つのルーターをデプロイします。クラスターにコンピュートノードがない場合、インストールプログラムはデフォルトで 2 つのルーターをコントロールプレーンノードにデプロイします。
手順
router-replicas.yamlファイルを作成します。apiVersion: operator.openshift.io/v1 kind: IngressController metadata: name: default namespace: openshift-ingress-operator spec: replicas: <num-of-router-pods> endpointPublishingStrategy: type: HostNetwork nodePlacement: nodeSelector: matchLabels: node-role.kubernetes.io/worker: ""注記<num-of-router-pods>を適切な値に置き換えます。1 つのコンピュートノードのみを使用する場合は、replicas:を1に設定します。3 つ以上のコンピュートノードを使用する場合は、必要に応じて、replicas:をデフォルト値2から増やすことができます。router-replicas.yamlファイルを保存し、これをclusterconfigs/openshiftディレクトリーにコピーします。$ cp ~/router-replicas.yaml clusterconfigs/openshift/99_router-replicas.yaml
3.14.5. BIOS の設定 リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、インストールプロセス中に BIOS を設定します。
手順
- マニフェストを作成します。
ノードに対応する
BareMetalHostリソースファイルを変更します。$ vim clusterconfigs/openshift/99_openshift-cluster-api_hosts-*.yamlBIOS 設定を
BareMetalHostリソースのspecセクションに追加します。spec: firmware: simultaneousMultithreadingEnabled: true sriovEnabled: true virtualizationEnabled: true注記Red Hat は 3 つの BIOS 設定をサポートしています。BMC タイプ
irmcのサーバーのみがサポートされます。他のタイプのサーバーは現在サポートされていません。- クラスターを作成します。
3.14.6. RAID の設定 リンクのコピーリンクがクリップボードにコピーされました!
次の手順では、インストールプロセス中にベースボード管理コントローラー (BMC) を使用して Redundant Array of Independent Disks (RAID) を構成します。
ノードにハードウェア RAID を設定する場合は、ノードにサポートされている RAID コントローラーがあることを確認してください。OpenShift Container Platform 4.17 は、ソフトウェア RAID をサポートしていません。
| ベンター | BMC とプロトコル | ファームウェアのバージョン | RAID レベル |
|---|---|---|---|
| Fujitsu | iRMC | 該当なし | 0、1、5、6、10 |
| Dell | iDRAC と Redfish | バージョン 6.10.30.20 以降 | 0、1、5 |
手順
- マニフェストを作成します。
ノードに対応する
BareMetalHostリソースを変更します。$ vim clusterconfigs/openshift/99_openshift-cluster-api_hosts-*.yaml注記OpenShift Container Platform 4.17 はソフトウェア RAID をサポートしていないため、次の例ではハードウェア RAID 設定を使用します。
特定の RAID 設定を
specセクションに追加した場合、これが原因でノードはpreparingフェーズで元の RAID 設定を削除し、RAID で指定された設定を実行します。以下に例を示します。spec: raid: hardwareRAIDVolumes: - level: "0"1 name: "sda" numberOfPhysicalDisks: 1 rotational: true sizeGibibytes: 0- 1
levelは必須フィールドであり、その他はオプションのフィールドです。
specセクションに空の RAID 設定を追加した場合、空の設定が原因で、ノードはpreparingフェーズで元の RAID 設定を削除しますが、新しい設定は実行しません。以下に例を示します。spec: raid: hardwareRAIDVolumes: []-
specセクションにraidフィールドを追加しない場合、元の RAID 設定は削除されず、新しい設定は実行されません。
- クラスターを作成します。
3.14.7. ノード上のストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
Machine Config Operator (MCO) によって管理される MachineConfig オブジェクトを作成することにより、OpenShift Container Platform ノード上のオペレーティングシステムに変更を加えることができます。
MachineConfig 仕様には、最初の起動時にマシンを設定するための点火設定が含まれています。この設定オブジェクトを使用して、OpenShift Container Platform マシン上で実行されているファイル、systemd サービス、およびその他のオペレーティングシステム機能を変更できます。
手順
ignition config を使用して、ノード上のストレージを設定します。次の MachineSet マニフェストの例は、プライマリーノード上のデバイスにパーティションを追加する方法を示しています。この例では、インストール前にマニフェストを適用して、プライマリーノードでサイズが 16 GiB の recovery という名前のパーティションを設定します。
custom-partitions.yamlファイルを作成し、パーティションレイアウトを含むMachineConfigオブジェクトを含めます。apiVersion: machineconfiguration.openshift.io/v1 kind: MachineConfig metadata: labels: machineconfiguration.openshift.io/role: primary name: 10_primary_storage_config spec: config: ignition: version: 3.2.0 storage: disks: - device: </dev/xxyN> partitions: - label: recovery startMiB: 32768 sizeMiB: 16384 filesystems: - device: /dev/disk/by-partlabel/recovery label: recovery format: xfscustom-partitions.yamlファイルを保存して、clusterconfigs/openshiftディレクトリーにコピーします。$ cp ~/<MachineConfig_manifest> ~/clusterconfigs/openshift