3.11. マニフェスト設定ファイル


3.11.1. OpenShift Container Platform マニフェストの作成

  1. OpenShift Container Platform マニフェストを作成します。

    $ ./openshift-baremetal-install --dir ~/clusterconfigs create manifests
    Copy to Clipboard
    INFO 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
    Copy to Clipboard

3.11.2. オプション: 非接続クラスターの NTP 設定

OpenShift Container Platform は、クラスターノードに chrony Network Time Protocol (NTP) サービスをインストールします。

非接続クラスター向けの NTP 設定

OpenShift Container Platform ノードは、正しく実行するために日時について合意する必要があります。ワーカーノードがコントロールプレーンノードの NTP サーバーから日付と時刻を取得すると、ルーティング可能なネットワークに接続されていないクラスターのインストールおよび操作が有効になるため、上位の stratum の NTP サーバーにアクセスできなくなります。

手順

  1. 次のコマンドを使用して、インストールホストに Butane をインストールします。

    $ sudo dnf -y install butane
    Copy to Clipboard
  2. コントロールプレーンノードの chrony.conf ファイルのコンテンツを含む Butane 設定 (99-master-chrony-conf-override.bu) を作成します。

    注記

    Butane の詳細は、「Butane を使用したマシン設定の作成」を参照してください。

    Butane 設定例

    variant: openshift
    version: 4.14.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> iburst 
    1
    
              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 worker 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
    Copy to Clipboard

    1
    <cluster-name> はクラスターの名前に置き換え、<domain> は完全修飾ドメイン名に置き換える必要があります。
  3. Butane を使用して、コントロールプレーンノードに配信される設定が含まれる MachineConfig オブジェクトファイル (99-master-chrony-conf-override.yaml) を生成します。

    $ butane 99-master-chrony-conf-override.bu -o 99-master-chrony-conf-override.yaml
    Copy to Clipboard
  4. コントロールプレーンノードの NTP サーバーを参照するワーカーノードの chrony.conf ファイルのコンテンツを含む Butane 設定 (99-worker-chrony-conf-override.bu) を作成します。

    Butane 設定例

    variant: openshift
    version: 4.14.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> iburst 
    1
    
              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
    Copy to Clipboard

    1
    <cluster-name> はクラスターの名前に置き換え、<domain> は完全修飾ドメイン名に置き換える必要があります。
  5. Butane を使用して、ワーカーノードに配信される設定が含まれる MachineConfig オブジェクトファイル (99-worker-chrony-conf-override.yaml) を生成します。

    $ butane 99-worker-chrony-conf-override.bu -o 99-worker-chrony-conf-override.yaml
    Copy to Clipboard

3.11.3. コントロールプレーンで実行されるネットワークコンポーネントの設定

ネットワークコンポーネントは、コントロールプレーンノードでのみ実行するように設定できます。デフォルトで、OpenShift Container Platform はマシン設定プールの任意のノードが ingressVIP 仮想 IP アドレスをホストできるようにします。ただし、環境によっては、ワーカーノードをコントロールプレーンノードとは別のサブネットにデプロイするため、コントロールプレーンノードで実行する ingressVIP 仮想 IP アドレスを設定する必要があります。

重要

リモートワーカーを別々のサブネットにデプロイする場合は、コントロールプレーンノード専用に ingressVIP 仮想 IP アドレスを配置する必要があります。

インストーラーがプロビジョニングしたネットワーク

手順

  1. install-config.yaml ファイルを保存するディレクトリーに移動します。

    $ cd ~/clusterconfigs
    Copy to Clipboard
  2. manifests サブディレクトリーに切り替えます。

    $ cd manifests
    Copy to Clipboard
  3. cluster-network-avoid-workers-99-config.yaml という名前のファイルを作成します。

    $ touch cluster-network-avoid-workers-99-config.yaml
    Copy to Clipboard
  4. エディターで 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:,
    Copy to Clipboard

    このマニフェストは、ingressVIP 仮想 IP アドレスをコントロールプレーンノードに配置します。また、このマニフェストは、コントロールプレーンノードにのみ以下のプロセスをデプロイします。

    • openshift-ingress-operator
    • keepalived
  5. cluster-network-avoid-workers-99-config.yaml ファイルを保存します。
  6. 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: ""
    Copy to Clipboard
  7. manifests ディレクトリーのバックアップの作成を検討してください。インストーラーは、クラスターの作成時に manifests/ ディレクトリーを削除します。
  8. cluster-scheduler-02-config.yml マニフェストを変更し、mastersSchedulable フィールドを true に設定して、コントロールプレーンノードをスケジュール対象にします。デフォルトでは、コントロールプレーンノードはスケジュール対象ではありません。以下に例を示します。

    $ sed -i "s;mastersSchedulable: false;mastersSchedulable: true;g" clusterconfigs/manifests/cluster-scheduler-02-config.yml
    Copy to Clipboard
    注記

    この手順の完了後にコントロールプレーンノードをスケジュールできない場合には、クラスターのデプロイに失敗します。

3.11.4. オプション: ワーカーノードへのルーターのデプロイ

インストール時に、インストーラーはルーター Pod をワーカーノードにデプロイします。デフォルトで、インストーラーは 2 つのルーター Pod をインストールします。デプロイされたクラスターが、OpenShift Container Platform クラスター内のサービスに対して予定される外部トラフィック負荷を処理するために追加のルーターを必要とする場合、yaml ファイルを作成して適切なルーターレプリカ数を設定できます。

重要

ワーカーノードが 1 つだけのクラスターのデプロイはサポートされていません。ルーターのレプリカを変更することで、1 つのワーカーでデプロイする場合の degraded 状態の問題は対処されますが、クラスターは Ingress API の高可用性を失うため、これは実稼働環境には適しません。

注記

デフォルトで、インストーラーは 2 つのルーターをデプロイします。クラスターにワーカーノードがない場合、インストーラーはデフォルトで 2 つのルーターをコントロールプレーンノードにデプロイします。

手順

  1. 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: ""
    Copy to Clipboard
    注記

    <num-of-router-pods> を適切な値に置き換えます。1 つのワーカーノードのみを使用している場合、replicas:1 に設定します。4 つ以上のワーカーノードを使用している場合、replicas: のデフォルトの値 2 を随時増やすことができます。

  2. router-replicas.yaml ファイルを保存し、これを clusterconfigs/openshift ディレクトリーにコピーします。

    $ cp ~/router-replicas.yaml clusterconfigs/openshift/99_router-replicas.yaml
    Copy to Clipboard

3.11.5. オプション: BIOS の設定

次の手順では、インストールプロセス中に BIOS を設定します。

手順

  1. マニフェストを作成します。
  2. ノードに対応する BareMetalHost リソースファイルを変更します。

    $ vim clusterconfigs/openshift/99_openshift-cluster-api_hosts-*.yaml
    Copy to Clipboard
  3. BIOS 設定を BareMetalHost リソースの spec セクションに追加します。

    spec:
      firmware:
        simultaneousMultithreadingEnabled: true
        sriovEnabled: true
        virtualizationEnabled: true
    Copy to Clipboard
    注記

    Red Hat は 3 つの BIOS 設定をサポートしています。BMC タイプirmcのサーバーのみがサポートされます。他のタイプのサーバーは現在サポートされていません。

  4. クラスターを作成します。

3.11.6. 必要に応じて RAID の設定

次の手順では、インストールプロセス中に RAID (Redundant Array of Independent Disks) を設定します。

注記
  1. OpenShift Container Platform は、iRMC プロトコルのみを使用してベースボード管理コントローラー (BMC) のハードウェア RAID をサポートします。OpenShift Container Platform 4.14 は、ソフトウェア RAID をサポートしていません。
  2. ノードにハードウェア RAID を設定する場合は、ノードに RAID コントローラーがあることを確認します。

手順

  1. マニフェストを作成します。
  2. ノードに対応する BareMetalHost リソースを変更します。

    $ vim clusterconfigs/openshift/99_openshift-cluster-api_hosts-*.yaml
    Copy to Clipboard
    注記

    OpenShift Container Platform 4.14 はソフトウェア RAID をサポートしていないため、以下の例ではハードウェア RAID 設定を使用します。

    1. 特定の RAID 設定を spec セクションに追加した場合、これが原因でノードは preparing フェーズで元の RAID 設定を削除し、RAID で指定された設定を実行します。以下に例を示します。

      spec:
        raid:
          hardwareRAIDVolumes:
          - level: "0" 
      1
      
            name: "sda"
            numberOfPhysicalDisks: 1
            rotational: true
            sizeGibibytes: 0
      Copy to Clipboard
      1
      levelは必須フィールドであり、その他はオプションのフィールドです。
    2. spec セクションに空の RAID 設定を追加した場合、空の設定が原因で、ノードは preparing フェーズで元の RAID 設定を削除しますが、新しい設定は実行しません。以下に例を示します。

      spec:
        raid:
          hardwareRAIDVolumes: []
      Copy to Clipboard
    3. spec セクションに raid フィールドを追加しない場合、元の RAID 設定は削除されず、新しい設定は実行されません。
  3. クラスターを作成します。

3.11.7. オプション: ノード上のストレージの設定

Machine Config Operator (MCO) によって管理される MachineConfig オブジェクトを作成することにより、OpenShift Container Platform ノード上のオペレーティングシステムに変更を加えることができます。

MachineConfig 仕様には、最初の起動時にマシンを設定するための点火設定が含まれています。この設定オブジェクトを使用して、OpenShift Container Platform マシン上で実行されているファイル、systemd サービス、およびその他のオペレーティングシステム機能を変更できます。

手順

ignition config を使用して、ノード上のストレージを設定します。次の MachineSet マニフェストの例は、プライマリーノード上のデバイスにパーティションを追加する方法を示しています。この例では、インストール前にマニフェストを適用して、プライマリーノードでサイズが 16 GiB の recovery という名前のパーティションを設定します。

  1. 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: xfs
    Copy to Clipboard
  2. custom-partitions.yaml ファイルを保存して、clusterconfigs/openshift ディレクトリーにコピーします。

    $ cp ~/<MachineConfig_manifest> ~/clusterconfigs/openshift
    Copy to Clipboard
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat