16.3. イメージベースのインストールを使用したシングルノード OpenShift のプリインストール


openshift-install プログラムを使用して、ベアメタルホストにシングルノード OpenShift をプリインストールするためのライブインストール ISO を作成します。インストールプログラムのダウンロードの詳細は、「関連情報」セクションの「インストールプロセス」を参照してください。

インストールプログラムは、シードイメージの URL と、シードイメージのリリースバージョンやインストールプロセスに使用するディスクなどのその他の入力情報を受け取り、ライブインストール ISO を作成します。その後、ライブインストール ISO を使用してホストを起動し、プリインストールを開始できます。プリインストールが完了したら、最終的なサイト固有の設定とデプロイを行うために、ホストをリモートサイトに出荷できます。

以下は、イメージベースのインストールを使用してシングルノード OpenShift クラスターをプリインストールするための大まかな手順です。

  • シードイメージを生成します。
  • openshift-install インストールプログラムを使用してライブインストール ISO を作成します。
  • ライブインストール ISO を使用してホストを起動し、ホストをプリインストールします。

16.3.1. シングルノード OpenShift のイメージベースインストール用のライブインストール ISO を作成する

openshift-install プログラムを使用して、シングルノード OpenShift のシードイメージの URL やその他のインストールアーティファクトをライブインストール ISO に埋め込むことができます。

注記

image-based-installation-config.yaml マニフェストの仕様の詳細は、「image-based-installation-config.yaml マニフェストのリファレンス仕様」セクションを参照してください。

前提条件

  • シングルノード OpenShift のシードクラスターからシードイメージを生成した。
  • openshift-install プログラムをダウンロードした。openshift-install プログラムのバージョンが、シードイメージ内の OpenShift Container Platform のバージョンと一致している。
  • ターゲットホストが、シードイメージの URL と他のすべてのインストールアーティファクトにネットワークでアクセスできる。
  • 静的ネットワークが必要な場合は、ライブインストール ISO を作成するホストに nmstatectl ライブラリーをインストールする必要があります。

手順

  1. ライブインストール ISO を作成し、シングルノード OpenShift のシードイメージの URL とその他のインストールアーティファクトを埋め込みます。

    1. 次のコマンドを実行して作業ディレクトリーを作成します。

      $ mkdir ibi-iso-workdir 1
      1
      ibi-iso-workdir は、作業ディレクトリーの名前に置き換えます。
    2. オプション: ImageBasedInstallationConfig リソースを設定するときにリファレンスとして使用するインストール設定テンプレートを作成します。

      $ openshift-install image-based create image-config-template --dir ibi-iso-workdir 1
      1
      作業ディレクトリーを指定しなかった場合、カレントディレクトリーが使用されます。

      出力例

      INFO Image-Config-Template created in: ibi-iso-workdir

      このコマンドにより、ターゲットディレクトリーに image-based-installation-config.yaml インストール設定テンプレートが作成されます。

      #
      # Note: This is a sample ImageBasedInstallationConfig file showing
      # which fields are available to aid you in creating your
      # own image-based-installation-config.yaml file.
      #
      apiVersion: v1beta1
      kind: ImageBasedInstallationConfig
      metadata:
        name: example-image-based-installation-config
      # The following fields are required
      seedImage: quay.io/openshift-kni/seed-image:4.17.0
      seedVersion: 4.17.0
      installationDisk: /dev/vda
      pullSecret: '<your_pull_secret>'
      # networkConfig is optional and contains the network configuration for the host in NMState format.
      # See https://nmstate.io/examples.html for examples.
      # networkConfig:
      #   interfaces:
      #     - name: eth0
      #       type: ethernet
      #       state: up
      #       mac-address: 00:00:00:00:00:00
      #       ipv4:
      #         enabled: true
      #         address:
      #           - ip: 192.168.122.2
      #             prefix-length: 23
      #         dhcp: false
    3. インストール設定ファイルを編集します。

      image-based-installation-config.yaml ファイルの例

      apiVersion: v1beta1
      kind: ImageBasedInstallationConfig
      metadata:
        name: example-image-based-installation-config
      seedImage: quay.io/repo-id/seed:latest
      seedVersion: "4.17.0"
      extraPartitionStart: "-240G"
      installationDisk: /dev/disk/by-id/wwn-0x62c...
      sshKey: 'ssh-ed25519 AAAA...'
      pullSecret: '{"auths": ...}'
      networkConfig:
          interfaces:
            - name: ens1f0
              type: ethernet
              state: up
              ipv4:
                enabled: true
                dhcp: false
                auto-dns: false
                address:
                  - ip: 192.168.200.25
                    prefix-length: 24
              ipv6:
                enabled: false
          dns-resolver:
            config:
              server:
                - 192.168.15.47
                - 192.168.15.48
          routes:
            config:
            - destination: 0.0.0.0/0
              metric: 150
              next-hop-address: 192.168.200.254
              next-hop-interface: ens1f0

    4. 次のコマンドを実行してライブインストール ISO を作成します。

      $ openshift-install image-based create image --dir ibi-iso-workdir

      出力例

      INFO Consuming Image-based Installation ISO Config from target directory
      INFO Creating Image-based Installation ISO with embedded ignition

検証

  • 作業ディレクトリーで出力を確認します。

    ibi-iso-workdir/
      └── rhcos-ibi.iso

16.3.1.1. ターゲットホスト上の追加パーティションの設定

インストール ISO は、イメージベースのインストールプロセス中に、/var/lib/containers ディレクトリーのパーティションを作成します。

coreosInstallerArgs 仕様を使用すると、追加のパーティションを作成できます。たとえば、十分なストレージ容量を備えたハードディスクに、論理ボリュームマネージャー (LVM) ストレージなどのストレージオプション用の追加パーティションが必要になる場合があります。

注記

/var/lib/containers パーティションには、事前キャッシュされたイメージに十分なディスク領域を確保するために、少なくとも 500 GB が必要です。追加のパーティションを作成する際には、/var/lib/containers のパーティションよりも大きい開始位置を指定する必要があります。

手順

  1. image-based-installation-config.yaml ファイルを編集して、追加のパーティションを設定します。

    image-based-installation-config.yaml ファイルの例

    apiVersion: v1beta1
    kind: ImageBasedInstallationConfig
    metadata:
      name: example-extra-partition
    seedImage: quay.io/repo-id/seed:latest
    seedVersion: "4.17.0"
    installationDisk: /dev/sda
    pullSecret: '{"auths": ...}'
    # ...
    skipDiskCleanup: true 1
    coreosInstallerArgs:
       - "--save-partindex" 2
       - "6" 3
    ignitionConfigOverride: |
      {
        "ignition": {
          "version": "3.2.0"
        },
        "storage": {
          "disks": [
            {
              "device": "/dev/sda", 4
              "partitions": [
                {
                  "label": "storage", 5
                  "number": 6, 6
                  "sizeMiB": 380000, 7
                  "startMiB": 500000 8
                }
              ]
            }
          ]
        }
      }

    1
    インストールプロセス中にディスクのフォーマットをスキップするには、true を指定します。
    2
    パーティションを保持するには、この引数を指定します。
    3
    ライブインストール ISO には 5 つのパーティションが必要です。追加パーティションを保持するよう指定するには、5 より大きい数値を指定します。
    4
    ターゲットホスト上のインストールディスクを指定します。
    5
    パーティションのラベルを指定します。
    6
    パーティションの番号を指定します。
    7
    パーティションのサイズを MiB 単位で指定します。
    8
    追加パーティションのディスク上の開始位置を MiB 単位で指定します。var/lib/containers のパーティションよりも大きい開始位置を指定する必要があります。

検証

  • ライブインストール ISO を使用したホストのプリインストールが完了したら、ターゲットホストにログインし、次のコマンドを実行してパーティションを表示します。

    $ lsblk

    出力例

    sda    8:0    0  140G  0 disk
    ├─sda1 8:1    0    1M  0 part
    ├─sda2 8:2    0  127M  0 part
    ├─sda3 8:3    0  384M  0 part /var/mnt/boot
    ├─sda4 8:4    0  120G  0 part /var/mnt
    ├─sda5 8:5    0  500G  0 part /var/lib/containers
    └─sda6 8:6    0  380G  0 part

16.3.2. ライブインストール ISO をホストにプロビジョニングする

任意の方法を使用して、rhcos-ibi.iso ライブインストール ISO からターゲットのベアメタルホストを起動し、シングルノード OpenShift をプリインストールします。

検証

  1. ターゲットホストにログインします。
  2. 次のコマンドを実行してシステムログを表示します。

    $ journalctl -b

    出力例

    Aug 13 17:01:44 10.46.26.129 install-rhcos-and-restore-seed.sh[2876]: time="2024-08-13T17:01:44Z" level=info msg="All the precaching threads have finished."
    Aug 13 17:01:44 10.46.26.129 install-rhcos-and-restore-seed.sh[2876]: time="2024-08-13T17:01:44Z" level=info msg="Total Images: 125"
    Aug 13 17:01:44 10.46.26.129 install-rhcos-and-restore-seed.sh[2876]: time="2024-08-13T17:01:44Z" level=info msg="Images Pulled Successfully: 125"
    Aug 13 17:01:44 10.46.26.129 install-rhcos-and-restore-seed.sh[2876]: time="2024-08-13T17:01:44Z" level=info msg="Images Failed to Pull: 0"
    Aug 13 17:01:44 10.46.26.129 install-rhcos-and-restore-seed.sh[2876]: time="2024-08-13T17:01:44Z" level=info msg="Completed executing pre-caching"
    Aug 13 17:01:44 10.46.26.129 install-rhcos-and-restore-seed.sh[2876]: time="2024-08-13T17:01:44Z" level=info msg="Pre-cached images successfully."
    Aug 13 17:01:44 10.46.26.129 install-rhcos-and-restore-seed.sh[2876]: time="2024-08-13 17:01:44" level=info msg="Skipping shutdown"
    Aug 13 17:01:44 10.46.26.129 install-rhcos-and-restore-seed.sh[2876]: time="2024-08-13 17:01:44" level=info msg="IBI preparation process finished successfully!"
    Aug 13 17:01:44 10.46.26.129 systemd[1]: var-lib-containers-storage-overlay.mount: Deactivated successfully.
    Aug 13 17:01:44 10.46.26.129 systemd[1]: Finished SNO Image-based Installation.
    Aug 13 17:01:44 10.46.26.129 systemd[1]: Reached target Multi-User System.
    Aug 13 17:01:44 10.46.26.129 systemd[1]: Reached target Graphical Interface.

16.3.3. image-based-installation-config.yaml マニフェストのリファレンス仕様

以下では、image-based-installation-config.yaml マニフェストの仕様を説明します。

openshift-install プログラムは、image-based-installation-config.yaml マニフェストを使用して、シングルノード OpenShift のイメージベースインストール用のライブインストール ISO を作成します。

表16.4 必須の仕様
仕様説明

seedImage

string

ISO 生成プロセスで使用するシードイメージを指定します。

seedVersion

string

シードイメージの OpenShift Container Platform リリースバージョンを指定します。シードイメージ内のリリースバージョンが、この seedVersion フィールドで指定するリリースバージョンと一致する必要があります。

installationDisk

string

インストールプロセスに使用するディスクを指定します。

ディスクの検出順序は保証されていないため、複数のディスクを持つマシンでは、起動オプションによってディスクのカーネル名が変わる可能性があります。たとえば、/dev/sda/dev/sdb になり、その逆も同様です。この問題を回避するには、ディスクの World Wide Name (WWN) などの永続的なディスク属性を使用する必要があります (例: /dev/disk/by-id/wwn-<disk-id>)。

pullSecret

string

事前キャッシュプロセス中に使用するプルシークレットを指定します。プルシークレットには、コンテナーレジストリーからリリースペイロードイメージをプルするための認証情報を含めます。

シードイメージに個別のプライベートレジストリー認証が必要な場合は、プルシークレットに認証の詳細を追加してください。

表16.5 任意の仕様
仕様説明

shutdown

boolean

インストールプロセスの完了後にホストをシャットダウンするかどうかを指定します。デフォルト値は false です。

extraPartitionStart

string

/var/lib/containers に使用する追加パーティションの始点を指定します。デフォルト値は -40Gb です。この場合、パーティションのサイズがちょうど 40 Gb になり、ディスクの末尾から 40 Gb の領域が使用されます。正の値を指定すると、パーティションがディスクのその位置から開始し、ディスクの最後まで拡張されます。

extraPartitionLabel

string

/var/lib/containers に使用する追加パーティションのラベル。デフォルトのパーティションラベルは var-lib-containers です。

注記

インストール ISO のパーティションラベルが、シードイメージのマシン設定で設定されているパーティションラベルと一致していることを確認する必要があります。パーティションラベルが異なる場合、ホストへのインストール中にパーティションのマウントが失敗します。詳細は、「ostree stateroot 間の共有コンテナーパーティションの設定」を参照してください。

extraPartitionNumber

unsigned integer

/var/lib/containers に使用する追加パーティションの数。デフォルトの数は 5 です。

skipDiskCleanup

boolean

インストールプロセスでは、ホスト上のディスクがフォーマットされます。このステップをスキップするには、この仕様を 'true' に設定します。デフォルトは false です。

networkConfig

string

ホストのネットワーク設定を指定します。次に例を示します。

networkConfig:
    interfaces:
      - name: ens1f0
        type: ethernet
        state: up
        ...

静的ネットワークが必要な場合は、ライブインストール ISO を作成するホストに nmstatectl ライブラリーをインストールする必要があります。nmstate を使用してネットワーク設定を定義する方法の詳細は、nmstate.io を参照してください。

重要

インターフェイスの名前は、オペレーティングシステムに表示される実際の NIC 名と同じである必要があります。

proxy

string

インストール ISO 生成中に使用するプロキシー設定を指定します。次に例を示します。

proxy:
  httpProxy: "http://proxy.example.com:8080"
  httpsProxy: "http://proxy.example.com:8080"
  noProxy: "no_proxy.example.com"

imageDigestSources

string

リリースイメージコンテンツのソースまたはリポジトリーを指定します。次に例を示します。

imageDigestSources:
  - mirrors:
      - "registry.example.com:5000/ocp4/openshift4"
    source: "quay.io/openshift-release-dev/ocp-release"

additionalTrustBundle

string

PEM でエンコードされた X.509 証明書バンドルを指定します。インストールプログラムは、これをインストール ISO の /etc/pki/ca-trust/source/anchors/ ディレクトリーに追加します。

additionalTrustBundle: |
  -----BEGIN CERTIFICATE-----
  MTICLDCCAdKgAwfBAgIBAGAKBggqhkjOPQRDAjB9MQswCQYRVEQGE
  ...
  l2wOuDwKQa+upc4GftXE7C//4mKBNBC6Ty01gUaTIpo=
  -----END CERTIFICATE-----

sshKey

string

ホストへのアクセスを認証するための SSH 鍵を指定します。

ignitionConfigOverride

string

Ignition 設定のユーザーオーバーライドを含む JSON 文字列を指定します。この設定は、インストールプログラムによって生成される Ignition 設定ファイルとマージされます。この機能には、Ignition バージョン 3.2 以降が必要です。

coreosInstallerArgs

string

カーネル引数とディスクパーティションオプションを設定するために使用できる coreos-install コマンドのカスタム引数を指定します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.