第12章 Agent-based Installer を使用したオンプレミスクラスターのインストール


12.1. Agent-based Installer を使用したインストールの準備

12.1.1. Agent-based Installer について

エージェントベースのインストール方法では、選択した任意の方法でオンプレミスサーバーを柔軟に起動できます。Assisted Installation サービスの使いやすさと、エアギャップ環境を含むオフラインでの実行機能を兼ね備えています。エージェントベースのインストールは、OpenShift Container Platform インストーラーのサブコマンドです。OpenShift Container Platform クラスターをデプロイするために必要なすべての情報を含む起動可能な ISO イメージを、利用可能なリリースイメージと共に生成します。

設定は、installer-provisioned infrastructure および user-provisioned infrastructure のインストール方法と同じ形式です。Agent-based Installer は、必要に応じてゼロタッチプロビジョニング (ZTP) カスタムリソースを生成または受け入れることもできます。ZTP を使用すると、ベアメタル機器の宣言型設定で新しいエッジサイトをプロビジョニングできます。

12.1.2. エージェントベースのインストーラーについて

OpenShift Container Platform ユーザーは、切断された環境で Assisted Installer のホストサービスの利点を活用できます。

エージェントベースのインストールは、Assisted Discovery Agent と Assisted Service を含む起動可能な ISO で構成されます。クラスターのインストールを実行するには両方が必要ですが、後者はいずれかのホストでのみ実行されます。

openshift-install agent create image サブコマンドは、指定した入力をもとに一時 ISO を生成します。以下のマニフェストで入力を指定できます。

推奨:

  • install-config.yaml
  • agent-config.yaml

または

オプション: ZTP マニフェスト

  • cluster-manifests/cluster-deployment.yaml
  • cluster-manifests/agent-cluster-install.yaml
  • cluster-manifests/pull-secret.yaml
  • cluster-manifests/infraenv.yaml
  • cluster-manifests/cluster-image-set.yaml
  • cluster-manifests/nmstateconfig.yaml
  • mirror/registries.conf
  • mirror/ca-bundle.crt

12.1.2.1. Agent-based Installer のワークフロー

コントロールプレーンホストの 1 つは、ブートプロセスの開始時に Assisted Service を実行し、最終的にブートストラップホストになります。このノードを ランデブーホスト (ノード 0) と呼びます。Assisted Service は、すべてのホストが要件を満たしていることを確認し、OpenShift Container Platform クラスターのデプロイをトリガーします。すべてのノードで Red Hat Enterprise Linux CoreOS (RHCOS) イメージがディスクに書き込まれます。ブートストラップ以外のノードは再起動し、クラスターデプロイメントを開始します。ノードが再起動されると、ランデブーホストが再起動し、クラスターに参加します。ブートストラップが完了し、クラスターがデプロイされます。

図12.1 ノードのインストールワークフロー

以下のトポロジーでは、openshift-install agent create image サブコマンドを使用して、ネットワークに接続されていない OpenShift Container Platform クラスターをインストールできます。

  • 単一ノードの OpenShift Container Platform クラスター (SNO): マスターとワーカーの両方であるノード。
  • 3 ノードの OpenShift Container Platform クラスター: ワーカーノードでもある 3 つのマスターノードを持つコンパクトなクラスター。
  • 高可用性 OpenShift Container Platform クラスター (HA): 任意の数のワーカーノードを持つ 3 つのマスターノード。

12.1.3. ネットワーキングについて

最初の起動時にすべてのホストが支援サービスにチェックインできるように、ランデブー IP はエージェント ISO の生成時に認識されている必要があります。IP アドレスが動的ホスト設定プロトコル (DHCP) サーバーを使用して割り当てられている場合、rendezvousIP フィールドは、デプロイメントされたコントロールプレーンの一部になるホストの 1 つの IP アドレスに設定する必要があります。DHCP サーバーがない環境では、IP アドレスを静的に定義できます。

静的 IP アドレスに加えて、NMState 形式の任意のネットワーク設定を適用できます。これには、VLAN と NIC ボンディングが含まれます。

12.1.3.1. DHCP

推奨される方法: install-config.yaml および agent-config.yaml

rendezvousIP フィールドの値を指定する必要があります。networkConfig フィールドは空白のままにすることができます。

agent-config.yaml.file のサンプル

apiVersion: v1alpha1
kind: AgentConfig
metadata:
  name: sno-cluster
rendezvousIP: 192.168.111.80 
1
Copy to Clipboard Toggle word wrap

1
ランデブーホストの IP アドレス。

12.1.3.2. 静的ネットワーキング

  1. 推奨される方法: install-config.yaml および agent-config.yaml

    agent-config.yaml.file のサンプル

      cat > agent-config.yaml << EOF
      apiVersion: v1alpha1
      kind: AgentConfig
      metadata:
        name: sno-cluster
      rendezvousIP: 192.168.111.80 
    1
    
      hosts:
        - hostname: master-0
          interfaces:
            - name: eno1
              macAddress: 00:ef:44:21:e6:a5 
    2
    
          networkConfig:
            interfaces:
              - name: eno1
                type: ethernet
                state: up
                mac-address: 00:ef:44:21:e6:a5
                ipv4:
                  enabled: true
                  address:
                    - ip: 192.168.111.80 
    3
    
                      prefix-length: 23 
    4
    
                  dhcp: false
            dns-resolver:
              config:
                server:
                  - 192.168.111.1 
    5
    
            routes:
              config:
                - destination: 0.0.0.0/0
                  next-hop-address: 192.168.111.1 
    6
    
                  next-hop-interface: eno1
                  table-id: 254
      EOF
    Copy to Clipboard Toggle word wrap

    1
    rendezvousIP フィールドに値が指定されていない場合、networkConfig フィールドで指定された静的 IP アドレスから 1 つのアドレスが選択されます。
    2
    設定を適用するホストを決定するために使用される、ホスト上のインターフェイスの MAC アドレス。
    3
    ターゲットのベアメタルホストの静的 IP アドレス。
    4
    ターゲットのベアメタルホストの静的 IP アドレスのサブネット接頭辞。
    5
    ターゲットのベアメタルホストの DNS サーバー。
    6
    ノードトラフィックのネクストホップアドレス。これは、指定されたインターフェイスに設定される IP アドレスと同じサブネットにある必要があります。
  2. オプションの方法: GitOps ZTP マニフェスト

    GitOps ZTP カスタムリソースのオプションの方法は、6 つのカスタムリソースで構成されます。静的 IP は nmstateconfig.yaml で設定できます。

    apiVersion: agent-install.openshift.io/v1beta1
    kind: NMStateConfig
    metadata:
      name: master-0
      namespace: openshift-machine-api
      labels:
        cluster0-nmstate-label-name: cluster0-nmstate-label-value
    spec:
      config:
        interfaces:
          - name: eth0
            type: ethernet
            state: up
            mac-address: 52:54:01:aa:aa:a1
            ipv4:
              enabled: true
              address:
                - ip: 192.168.122.2 
    1
    
                  prefix-length: 23 
    2
    
              dhcp: false
        dns-resolver:
          config:
            server:
              - 192.168.122.1 
    3
    
        routes:
          config:
            - destination: 0.0.0.0/0
              next-hop-address: 192.168.122.1 
    4
    
              next-hop-interface: eth0
              table-id: 254
      interfaces:
        - name: eth0
          macAddress: 52:54:01:aa:aa:a1 
    5
    Copy to Clipboard Toggle word wrap
    1
    ターゲットのベアメタルホストの静的 IP アドレス。
    2
    ターゲットのベアメタルホストの静的 IP アドレスのサブネット接頭辞。
    3
    ターゲットのベアメタルホストの DNS サーバー。
    4
    ノードトラフィックのネクストホップアドレス。これは、指定されたインターフェイスに設定される IP アドレスと同じサブネットにある必要があります。
    5
    設定を適用するホストを決定するために使用される、ホスト上のインターフェイスの MAC アドレス。

ランデブー IP は、config フィールドで指定された静的 IP アドレスから選択されます。

12.1.4. 例: ボンディングと VLAN インターフェイスノードのネットワーク設定

次の agent-config.yaml ファイルは、ボンディングおよび VLAN インターフェイスのマニフェストの例です。

  apiVersion: v1alpha1
  kind: AgentConfig
  rendezvousIP: 10.10.10.14
  hosts:
    - hostname: master0
      role: master
      interfaces:
       - name: enp0s4
         macAddress: 00:21:50:90:c0:10
       - name: enp0s5
         macAddress: 00:21:50:90:c0:20
      networkConfig:
        interfaces:
          - name: bond0.300 
1

            type: vlan 
2

            state: up
            vlan:
              base-iface: bond0
              id: 300
            ipv4:
              enabled: true
              address:
                - ip: 10.10.10.14
                  prefix-length: 24
              dhcp: false
          - name: bond0 
3

            type: bond 
4

            state: up
            mac-address: 00:21:50:90:c0:10 
5

            ipv4:
              enabled: false
            ipv6:
              enabled: false
            link-aggregation:
              mode: active-backup 
6

              options:
                miimon: "150" 
7

              port:
               - enp0s4
               - enp0s5
        dns-resolver: 
8

          config:
            server:
              - 10.10.10.11
              - 10.10.10.12
        routes:
          config:
            - destination: 0.0.0.0/0
              next-hop-address: 10.10.10.10 
9

              next-hop-interface: bond0.300 
10

              table-id: 254
Copy to Clipboard Toggle word wrap
1 3
インターフェイスの名前。
2
インターフェイスのタイプ。以下の例では VLAN を作成します。
4
インターフェイスのタイプ。この例では、ボンドを作成します。
5
インターフェイスの MAC アドレス。
6
mode 属性は、ボンドモードを指定します。
7
MII リンクの監視頻度をミリ秒単位で指定します。この例では、ボンディングリンクを 150 ミリ秒ごとに検査します。
8
オプション:DNS サーバーの検索およびサーバー設定を指定します。
9
ノードトラフィックのネクストホップアドレス。これは、指定されたインターフェイスに設定される IP アドレスと同じサブネットにある必要があります。
10
ノードトラフィックのネクストホップインターフェイス。

12.1.5. 例: ボンディングと SR-IOV デュアル NIC ノードのネットワーク設定

重要

SR-IOV デバイスの NIC パーティショニングの有効化に関連する Day 1 操作のサポートは、テクノロジープレビュー機能のみです。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

次の agent-config.yaml ファイルは、ボンドと SR-IOV インターフェイスを備えたデュアルポート NIC のマニフェストの例です。

apiVersion: v1alpha1
kind: AgentConfig
rendezvousIP: 10.10.10.14
hosts:
  - hostname: worker-1
    interfaces:
      - name: eno1
        macAddress: 0c:42:a1:55:f3:06
      - name: eno2
        macAddress: 0c:42:a1:55:f3:07
    networkConfig: 
1

      interfaces: 
2

        - name: eno1 
3

          type: ethernet 
4

          state: up
          mac-address: 0c:42:a1:55:f3:06
          ipv4:
            enabled: true
            dhcp: false 
5

          ethernet:
            sr-iov:
              total-vfs: 2 
6

          ipv6:
            enabled: false
        - name: sriov:eno1:0
          type: ethernet
          state: up 
7

          ipv4:
            enabled: false 
8

          ipv6:
            enabled: false
            dhcp: false
        - name: sriov:eno1:1
          type: ethernet
          state: down
        - name: eno2
          type: ethernet
          state: up
          mac-address: 0c:42:a1:55:f3:07
          ipv4:
            enabled: true
          ethernet:
            sr-iov:
              total-vfs: 2
          ipv6:
            enabled: false
        - name: sriov:eno2:0
          type: ethernet
          state: up
          ipv4:
            enabled: false
          ipv6:
            enabled: false
        - name: sriov:eno2:1
          type: ethernet
          state: down
        - name: bond0
          type: bond
          state: up
          min-tx-rate: 100 
9

          max-tx-rate: 200 
10

          link-aggregation:
            mode: active-backup 
11

            options:
              primary: sriov:eno1:0 
12

            port:
              - sriov:eno1:0
              - sriov:eno2:0
          ipv4:
            address:
              - ip: 10.19.16.57 
13

                prefix-length: 23
            dhcp: false
            enabled: true
          ipv6:
            enabled: false
          dns-resolver:
            config:
              server:
                - 10.11.5.160
                - 10.2.70.215
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 10.19.17.254
                next-hop-interface: bond0 
14

                table-id: 254
Copy to Clipboard Toggle word wrap
1
networkConfig フィールドには、ホストのネットワーク設定に関する情報が含まれ、サブフィールドには、interfacesdns-resolver、および routes が含まれます。
2
interfaces フィールドは、ホスト用に定義されたネットワークインターフェイスの配列です。
3
インターフェイスの名前。
4
インターフェイスのタイプ。この例では、イーサネットインターフェイスを作成します。
5
厳密に必要ではない場合、物理機能 (PF) の DHCP を無効にするには、これを false に設定します。
6
これを、インスタンス化する SR-IOV 仮想機能 (VF) の数に設定します。
7
これを up に設定します。
8
ボンドに接続された VF の IPv4 アドレス指定を無効にするには、これを false に設定します。
9
VF の最小伝送速度 (Mbps) を設定します。このサンプル値は、100 Mbps のレートを設定します。
  • この値は、最大伝送レート以下である必要があります。
  • Intel NIC は min-tx-rate パラメーターをサポートしていません。詳細は、BZ#1772847 を参照してください。
10
VF の最大伝送速度 (Mbps) を設定します。このサンプル値は、200 Mbps のレートを設定します。
11
目的のボンディングモードを設定します。
12
ボンディングインターフェイスの優先ポートを設定します。プライマリーデバイスは、最初に使用されるボンディングインターフェイスであり、障害が発生しないかぎり、破棄されません。この設定が特に役立つのは、ボンディングインターフェイスの NIC の 1 つが高速なため、大規模な負荷に対応できる場合です。この設定は、ボンディングインターフェイスが active-backup モード (モード 1) および balance-tlb (モード 5) の場合のみに有効です。
13
ボンドインターフェイスの静的 IP アドレスを設定します。これはノードの IP アドレスです。
14
デフォルトルートのゲートウェイとして bond0 を設定します。

12.1.6. ベアメタルのサンプル install-config.yaml ファイル

install-config.yaml ファイルをカスタマイズして、OpenShift Container Platform クラスターのプラットフォームに関する詳細を指定するか、必要なパラメーターの値を変更することができます。

apiVersion: v1
baseDomain: example.com 
1

compute: 
2

- name: worker
  replicas: 0 
3

controlPlane: 
4

  name: master
  replicas: 1 
5

metadata:
  name: sno-cluster 
6

networking:
  clusterNetwork:
  - cidr: 10.128.0.0/14 
7

    hostPrefix: 23 
8

  networkType: OVNKubernetes 
9

  serviceNetwork: 
10

  - 172.30.0.0/16
platform:
  none: {} 
11

fips: false 
12

pullSecret: '{"auths": ...}' 
13

sshKey: 'ssh-ed25519 AAAA...' 
14
Copy to Clipboard Toggle word wrap
1
クラスターのベースドメイン。すべての DNS レコードはこのベースのサブドメインである必要があり、クラスター名が含まれる必要があります。
2 4
controlPlane セクションは単一マッピングですが、compute セクションはマッピングのシーケンスになります。複数の異なるデータ構造の要件を満たすには、compute セクションの最初の行はハイフン - で始め、controlPlane セクションの最初の行はハイフンで始めることができません。1 つのコントロールプレーンプールのみが使用されます。
3
このパラメーターは、インストールプロセスをトリガーする前に、エージェントベースのインストールが検出を待機するコンピュートマシンの数を制御します。これは、生成された ISO で起動する必要があるコンピューティングマシンの数です。
注記

3 ノードクラスターをインストールする場合は、Red Hat Enterprise Linux CoreOS (RHCOS) マシンをインストールする際にコンピュートマシンをデプロイしないでください。

5
クラスターに追加するコントロールプレーンマシンの数。クラスターをこれらの値をクラスターの etcd エンドポイント数として使用するため、値はデプロイするコントロールプレーンマシンの数に一致する必要があります。
6
DNS レコードに指定したクラスター名。
7
Pod IP アドレスの割り当てに使用する IP アドレスのブロック。このブロックは既存の物理ネットワークと重複できません。これらの IP アドレスは Pod ネットワークに使用されます。外部ネットワークから Pod にアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定する必要があります。
注記

クラス E の CIDR 範囲は、将来の使用のために予約されています。クラス E CIDR 範囲を使用するには、ネットワーク環境がクラス E CIDR 範囲内の IP アドレスを受け入れるようにする必要があります。

8
それぞれの個別ノードに割り当てるサブネット接頭辞長。たとえば、hostPrefix23 に設定されている場合、各ノードに指定の cidr から /23 サブネットが割り当てられます。これにより、510 (2^(32 - 23) - 2) Pod IP アドレスが許可されます。外部ネットワークからのノードへのアクセスを提供する必要がある場合には、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
9
インストールするクラスターネットワークプラグイン。サポートされている値は OVNKubernetes (デフォルト値) と OpenShiftSDN です。
10
サービス IP アドレスに使用する IP アドレスプール。1 つの IP アドレスプールのみを入力できます。このブロックは既存の物理ネットワークと重複できません。外部ネットワークからサービスにアクセスする必要がある場合、ロードバランサーおよびルーターを、トラフィックを管理するように設定します。
11
単一ノードクラスターの場合は、プラットフォームを none に設定しなくてはなりません。プラットフォーム vspherebaremetal は、マルチノードクラスターの場合に設定可能です。
注記

プラットフォームを vsphere または baremetal に設定すると、次の 3 つの方法でクラスターノードの IP アドレスエンドポイントを設定できます。

  • IPv4
  • IPv6
  • IPv4 と IPv6 の並列 (デュアルスタック)

デュアルスタックネットワーキングの例

networking:
  clusterNetwork:
    - cidr: 172.21.0.0/16
      hostPrefix: 23
    - cidr: fd02::/48
      hostPrefix: 64
  machineNetwork:
    - cidr: 192.168.11.0/16
    - cidr: 2001:DB8::/32
  serviceNetwork:
    - 172.22.0.0/16
    - fd03::/112
  networkType: OVNKubernetes
platform:
  baremetal:
    apiVIPs:
    - 192.168.11.3
    - 2001:DB8::4
    ingressVIPs:
    - 192.168.11.4
    - 2001:DB8::5
Copy to Clipboard Toggle word wrap

12
FIPS モードを有効または無効にするかどうか。デフォルトでは、FIPS モードは有効にされません。
重要

OpenShift Container Platform 4.13 は Red Hat Enterprise Linux (RHEL) 9.2 をベースにしています。FIPS 検証用に RHEL 9.2 暗号化モジュールがまだ送信されていません。詳細は、4.13 OpenShift Container Platform リリースノート の "About this release" を参照してください。

13
このプルシークレットを使用し、OpenShift Container Platform コンポーネントのコンテナーイメージを提供する Quay.io など、組み込まれた各種の認証局によって提供されるサービスで認証できます。
14
Red Hat Enterprise Linux CoreOS (RHCOS) の core ユーザーの SSH 公開鍵。
注記

インストールのデバッグまたは障害復旧を実行する必要のある実稼働用の OpenShift Container Platform クラスターでは、ssh-agent プロセスが使用する SSH キーを指定します。

12.1.7. agent.ISO の作成前の検証チェック

Agent-based Installer は、ISO が作成される前に、ユーザー定義の YAML ファイルに対して検証チェックを実行します。検証に成功すると、agent.ISO が作成されます。

install-config.yaml

  • baremetalvsphere、および none プラットフォームがサポートされています。
  • プラットフォームに none が使用されている場合には、コントロールプレーンレプリカの数は 1 で、ワーカーレプリカの合計数は 0 である必要があります。
  • none プラットフォームの場合、networkType パラメーターは OVNKubernetes である必要があります。
  • apiVIPs および ingressVIPs パラメーターは、ベアメタルおよび vSphere プラットフォームに設定する必要があります。
  • agent-config.yaml ファイルに相当するベアメタルプラットフォーム設定の一部のホスト固有フィールドは無視されます。これらのフィールドが設定されている場合、警告メッセージがログに記録されます。

agent-config.yaml

  • 各インターフェイスには、定義された MAC アドレスが必要です。また、すべてのインターフェイスに異なる MAC アドレスが必要です。
  • ホストごとに少なくとも 1 つのインターフェイスを定義する必要があります。
  • World Wide Name (WWN) ベンダーエクステンションは、ルートデバイスのヒントではサポートされません。
  • host オブジェクトの role パラメーターの値は master または worker のいずれかである必要があります。

12.1.7.1. ZTP マニフェスト

agent-cluster-install.yaml

  • IPv6 の場合、networkType パラメーターでサポートされる唯一の値は OVNKubernetes です。OpenShiftSDN 値は、IPv4 にのみ使用できます。

cluster-image-set.yaml

  • ReleaseImage パラメーターは、インストーラーで定義されるリリースと一致する必要があります。

12.1.8. ルートデバイスヒントについて

rootDeviceHints パラメーターは、インストーラーが Red Hat Enterprise Linux CoreOS (RHCOS) イメージを特定のデバイスにプロビジョニングできるようにします。インストーラーは、検出順にデバイスを検査し、検出された値をヒントの値と比較します。インストーラーは、ヒント値に一致する最初に検出されたデバイスを使用します。この設定は複数のヒントを組み合わせることができますが、デバイスは、インストーラーがこれを選択できるようにすべてのヒントに一致する必要があります。

Expand
表12.2 サブフィールド
サブフィールド説明

deviceName

/dev/vda/dev/disk/by-path/ などの Linux デバイス名を含む文字列。ストレージの場所への /dev/disk/by-path/<device_path> リンクを使用することを推奨します。ヒントは、実際の値と完全に一致する必要があります。

hctl

0:0:0:0 などの SCSI バスアドレスを含む文字列。ヒントは、実際の値と完全に一致する必要があります。

model

ベンダー固有のデバイス識別子を含む文字列。ヒントは、実際の値のサブ文字列になります。

vendor

デバイスのベンダーまたは製造元の名前が含まれる文字列。ヒントは、実際の値のサブ文字列になります。

serialNumber

デバイスのシリアル番号を含む文字列。ヒントは、実際の値と完全に一致する必要があります。

minSizeGigabytes

デバイスの最小サイズ (ギガバイト単位) を表す整数。

wwn

一意のストレージ ID を含む文字列。ヒントは、実際の値と完全に一致する必要があります。

rotational

デバイスがローテーションするディスクである (true) か、そうでないか (false) を示すブール値。

使用例

     - name: master-0
       role: master
       rootDeviceHints:
         deviceName: "/dev/sda"
Copy to Clipboard Toggle word wrap

12.1.9. 次のステップ

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat