検索

11.4. OpenShift Container Platform 用の PXE アセットの準備

download PDF

Agent-based Installer を使用して OpenShift Container Platform クラスターを PXE ブートするために必要なアセットを作成するには、以下の手順を使用します。

これらの手順で作成したアセットは、単一ノードの OpenShift Container Platform インストールをデプロイします。これらの手順を基礎として使用し、要件に応じて設定を変更できます。

Agent-based Installer で使用できるその他の設定は、Agent-based Installer を使用した OpenShift Container Platform クラスターのインストール を参照してください。

11.4.1. 前提条件

11.4.2. Agent-based Installer のダウンロード

この手順を使用して、インストールに必要な Agent-based Installer と CLI をダウンロードします。

手順

  1. ログイン認証情報を使用して OpenShift Container Platform Web コンソールにログインします。
  2. データセンター に移動します。
  3. Run Agent-based Installer locally をクリックします。
  4. OpenShift インストーラーコマンドラインインターフェイス のオペレーティングシステムとアーキテクチャーを選択します。
  5. Download Installer をクリックして、インストールプログラムをダウンロードして展開します。
  6. Download pull secret または Copy pull secret をクリックして、プルシークレットをダウンロードまたはコピーします。
  7. Download command-line tools をクリックし、openshift-install バイナリーを PATH 上のディレクトリーに配置します。

11.4.3. 優先設定入力の作成

この手順を使用して、PXE ファイルの作成に使用される優先設定入力を作成します。

手順

  1. 以下のコマンドを実行して nmstate の依存関係をインストールします。

    $ sudo dnf install /usr/bin/nmstatectl -y
  2. PATH にあるディレクトリーに openshift-install バイナリーを配置します。
  3. 次のコマンドを実行して、インストール設定を保存するディレクトリーを作成します。

    $ mkdir ~/<directory_name>
    注記

    これは、エージェントベースのインストールで推奨される方法です。GitOps ZTP マニフェストの使用はオプションです。

  4. 次のコマンドを実行して、install-config.yaml ファイルを作成します。

    $ cat << EOF > ./my-cluster/install-config.yaml
    apiVersion: v1
    baseDomain: test.example.com
    compute:
    - architecture: amd64 1
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64
      hyperthreading: Enabled
      name: master
      replicas: 1
    metadata:
      name: sno-cluster 2
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      machineNetwork:
      - cidr: 192.168.0.0/16
      networkType: OVNKubernetes 3
      serviceNetwork:
      - 172.30.0.0/16
    platform: 4
      none: {}
    pullSecret: '<pull_secret>' 5
    sshKey: '<ssh_pub_key>' 6
    EOF
    1
    システムアーキテクチャーを指定します。有効な値は、amd64arm64ppc64le、および s390x です。

    multi ペイロードが含まれるリリースイメージを使用している場合は、arm64amd64s390xppc64le などのさまざまなアーキテクチャーにクラスターをインストールできます。それ以外の場合、クラスターは openshift-install version コマンドの出力に表示される release architecture にのみインストールできます。詳細は、「Agent-based Installer クラスターをインストールするためのサポート対象アーキテクチャーを確認する」を参照してください。

    2
    必須。クラスター名を指定します。
    3
    インストールするクラスターネットワークプラグイン。サポートされる値はデフォルト値の OVNKubernetes のみです。
    4
    プラットフォームを指定します。
    注記

    ベアメタルプラットフォームの場合、agent-config.yaml ファイル上での設定でオーバーライドされない限り、install-config.yaml ファイルのプラットフォームセクションでのホスト設定がデフォルトで使用されます。

    5
    プルシークレットを指定します。
    6
    SSH 公開鍵を指定します。
    注記

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

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

    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

    注記

    非接続ミラーレジストリーを使用する場合は、作成済みのミラーレジストリー用の証明書ファイルを install-config.yaml ファイルの additionalTrustBundle フィールドに追加する必要があります。

  5. 次のコマンドを実行して、agent-config.yaml ファイルを作成します。

    $ cat > agent-config.yaml << EOF
    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80 1
    hosts: 2
      - hostname: master-0 3
        interfaces:
          - name: eno1
            macAddress: 00:ef:44:21:e6:a5
        rootDeviceHints: 4
          deviceName: /dev/sdb
        networkConfig: 5
          interfaces:
            - name: eno1
              type: ethernet
              state: up
              mac-address: 00:ef:44:21:e6:a5
              ipv4:
                enabled: true
                address:
                  - ip: 192.168.111.80
                    prefix-length: 23
                dhcp: false
          dns-resolver:
            config:
              server:
                - 192.168.111.1
          routes:
            config:
              - destination: 0.0.0.0/0
                next-hop-address: 192.168.111.2
                next-hop-interface: eno1
                table-id: 254
    EOF
    1
    この IP アドレスは、ブートストラッププロセスを実行するノードや、assisted-service コンポーネントを実行するノードを判別するために使用されます。networkConfig パラメーターで少なくとも 1 つのホストの IP アドレスを指定しない場合は、ランデブー IP アドレスを指定する必要があります。このアドレスが指定されていない場合、指定されたホストの networkConfig から 1 つの IP アドレスが選択されます。
    2
    オプション: ホスト設定。定義されたホストの数は、install-config.yaml ファイルで定義されたホストの総数 (compute.replicas および controlPlane.replicas パラメーターの値の合計) を超えてはなりません。
    3
    オプション: 動的ホスト設定プロトコル (DHCP) または逆引き DNS ルックアップから取得したホスト名をオーバーライドします。各ホストには、これらの方法のいずれかによって提供される一意のホスト名が必要です。
    4
    特定デバイスへの Red Hat Enterprise Linux CoreOS (RHCOS) イメージのプロビジョニングを有効にします。インストールプログラムは、検出順にデバイスを検査し、検出された値をヒントの値と比較します。ヒントの値と一致する最初に検出されたデバイスが使用されます。
    5
    オプション: ホストのネットワークインターフェイスを NMState 形式で設定します。
  6. オプション: iPXE スクリプトを作成するには、bootArtifactsBaseURLagent-config.yaml ファイルに追加します。

    apiVersion: v1beta1
    kind: AgentConfig
    metadata:
      name: sno-cluster
    rendezvousIP: 192.168.111.80
    bootArtifactsBaseURL: <asset_server_URL>

    <asset_server_URL> は、PXE アセットをアップロードするサーバーの URL です。

11.4.4. PXE アセットの作成

次の手順を使用して、PXE インフラストラクチャーに実装するアセットとオプションのスクリプトを作成します。

手順

  1. 次のコマンドを実行して、PXE アセットを作成します。

    $ openshift-install agent create pxe-files

    生成された PXE アセットと任意の iPXE スクリプトは、boot-artifacts ディレクトリーにあります。

    PXE アセットとオプションの iPXE スクリプトを含むファイルシステムの例

    boot-artifacts
        ├─ agent.x86_64-initrd.img
        ├─ agent.x86_64.ipxe
        ├─ agent.x86_64-rootfs.img
        └─ agent.x86_64-vmlinuz

    重要

    boot-artifacts ディレクトリーの内容は、指定したアーキテクチャーによって異なります。

    注記

    Red Hat Enterprise Linux CoreOS (RHCOS) はプライマリーディスクでのマルチパスをサポートするようになり、ハードウェア障害に対する対障害性が強化され、ホストの可用性を強化できるようになりました。マルチパス化は、デフォルトの /etc/multipath.conf 設定を使用して、agent ISO イメージでデフォルトで有効になっています。

  2. PXE アセットと任意のスクリプトをインフラストラクチャーにアップロードし、ブートプロセス中にアクセスできるようにします。

    注記

    iPXE スクリプトを生成した場合、アセットの場所は、agent-config.yaml ファイルに追加した bootArtifactsBaseURL と一致する必要があります。

11.4.5. IBM Z エージェントの手動追加

PXE アセットを作成した後、IBM Z® エージェントを追加できます。この手順は、IBM Z® クラスターにのみ使用してください。

IBM Z® 環境に応じて、以下の方法から選択できます。

  • z/VM を使用した IBM Z® エージェントの追加
  • RHEL KVM を使用した IBM Z® エージェントの追加
  • 論理パーティション (LPAR) を使用した IBM Z® エージェントの追加
注記

現在、IBM Z® (s390x`) 上の ISO ブートサポートは Red Hat Enterprise Linux (RHEL) KVM でのみ利用できます。RHEL KVM では、PXE ベースのインストールか ISO ベースのインストールのどちらかを柔軟に選択できます。z/VM および論理パーティション (LPAR) を使用したインストールでは、PXE ブートのみがサポートされます。

11.4.5.1. z/VM を使用した IBM Z エージェントの追加

z/VM を使用して IBM Z® エージェントを手動で追加するには、次の手順を使用します。この手順は、z/VM を使用する IBM Z® クラスターにのみ使用してください。

手順

  1. z/VM ゲストのパラメーターファイルを作成します。

    パラメーターファイルの例

    rd.neednet=1 \
    console=ttysclp0 \
    coreos.live.rootfs_url=<rootfs_url> \ 1
    ip=172.18.78.2::172.18.78.1:255.255.255.0:::none nameserver=172.18.78.1 \ 2
    zfcp.allow_lun_scan=0 \ 3
    rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
    rd.dasd=0.0.4411 \ 4
    rd.zfcp=0.0.8001,0x50050763040051e3,0x4000406300000000 \ 5
    random.trust_cpu=on rd.luks.options=discard \
    ignition.firstboot ignition.platform.id=metal \
    console=tty1 console=ttyS1,115200n8 \
    coreos.inst.persistent-kargs="console=tty1 console=ttyS1,115200n8"

    1
    coreos.live.rootfs_url アーティファクトには、起動する kernelinitramfs に合った rootfs アーティファクトを指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    2
    ip= パラメーターには、DHCP を使用して自動的に IP アドレスを割り当てるか、「z/VM を使用したクラスターの IBM Z® および IBM® LinuxONE へのインストール」の説明に従って手動で割り当てます。
    3
    デフォルトは 1 です。OSA ネットワークアダプターを使用する場合は、このエントリーを省略してください。
    4
    DASD タイプのディスクにインストールする場合は、rd.dasd を使用して、Red Hat Enterprise Linux CoreOS (RHCOS) をインストールする DASD を指定します。FCP タイプのディスクの場合は、このエントリーを省略します。
    5
    FCP タイプのディスクにインストールする場合は、rd.zfcp=<adapter>,<wwpn>,<lun> を使用して、RHCOS がインストールされる FCP ディスクを指定します。DASD タイプのディスクの場合は、このエントリーを省略します。

    その他のパラメーターはすべて変更しません。

  2. z/VM ゲスト仮想マシンの仮想リーダーに対して、kernel.imggeneric.parm、および initrd.img ファイルの punch を実行します。

    詳細は、PUNCH (IBM ドキュメント) を参照してください。

    ヒント

    CP PUNCH コマンドを使用するか、Linux を使用している場合は vmur コマンドを使用して、2 つの z/VM ゲスト仮想マシン間でファイルを転送できます。

  3. ブートストラップマシン上の会話型モニターシステム (CMS) にログインします。
  4. 次のコマンドを実行して、リーダーからブートストラップマシンを IPL します。

    $ ipl c

    詳細は、IPL (IBM ドキュメント) を参照してください。

11.4.5.2. RHEL KVM を使用した IBM Z エージェントの追加

RHEL KVM を使用して IBM Z® エージェントを手動で追加するには、次の手順を使用します。この手順は、RHEL KVM を使用する IBM Z® クラスターにのみ使用してください。

手順

  1. RHEL KVM マシンを起動します。
  2. 仮想サーバーをデプロイするために、次のパラメーターを指定して virt-install コマンドを実行します。

    $ virt-install \
       --name <vm_name> \
       --autostart \
       --ram=16384 \
       --cpu host \
       --vcpus=8 \
       --location <path_to_kernel_initrd_image>,kernel=kernel.img,initrd=initrd.img \1
       --disk <qcow_image_path> \
       --network network:macvtap ,mac=<mac_address> \
       --graphics none \
       --noautoconsole \
       --wait=-1 \
       --extra-args "rd.neednet=1 nameserver=<nameserver>" \
       --extra-args "ip=<IP>::<nameserver>::<hostname>:enc1:none" \
       --extra-args "coreos.live.rootfs_url=http://<http_server>:8080/agent.s390x-rootfs.img" \
       --extra-args "random.trust_cpu=on rd.luks.options=discard" \
       --extra-args "ignition.firstboot ignition.platform.id=metal" \
       --extra-args "console=tty1 console=ttyS1,115200n8" \
       --extra-args "coreos.inst.persistent-kargs=console=tty1 console=ttyS1,115200n8" \
       --osinfo detect=on,require=off
    1
    --location パラメーターには、HTTP または HTTPS サーバー上の kernel/initrd の場所を指定します。

11.4.5.3. 論理パーティション (LPAR) への IBM Z エージェントの追加

LPAR 環境で実行されるクラスターに IBM Z® エージェントを手動で追加するには、次の手順に従います。この手順は、LPAR で実行される IBM Z® クラスターに対してのみ使用してください。

前提条件

  • Python 3 がインストールされている。

手順

  1. エージェントのブートパラメーターファイルを作成します。

    パラメーターファイルの例

    rd.neednet=1 cio_ignore=all,!condev \
    console=ttysclp0 \
    ignition.firstboot ignition.platform.id=metal
    coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \1
    coreos.inst.persistent-kargs=console=ttysclp0
    ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \2
    rd.znet=qeth,<network_adaptor_range>,layer2=1
    rd.<disk_type>=<adapter> \3
    zfcp.allow_lun_scan=0
    ai.ip_cfg_override=1 \4
    random.trust_cpu=on rd.luks.options=discard

    1
    coreos.live.rootfs_url アーティファクトには、起動する kernelinitramfs に合った rootfs アーティファクトを指定します。HTTP プロトコルおよび HTTPS プロトコルのみがサポートされます。
    2
    ip パラメーターについては、z/VM を使用したクラスターの IBM Z および IBM IBM® LinuxONE へのインストール の説明に従って、IP アドレスを手動で割り当てます。
    3
    DASD タイプのディスクにインストールする場合は、rd.dasd を使用して、Red Hat Enterprise Linux CoreOS (RHCOS) をインストールする DASD を指定します。FCP タイプのディスクにインストールする場合は、rd.zfcp=<adapter>,<wwpn>,<lun> を使用して、RHCOS がインストールされる FCP ディスクを指定します。
    4
    Open Systems Adapter (OSA) または HiperSockets を使用する場合は、このパラメーターを指定します。
  2. 次の Python スクリプトを実行して、.ins ファイルと initrd.img.addrsize ファイルを生成します。

    .ins ファイルは、インストールデータを含む特別なファイルであり、FTP サーバー上にあります。このファイルには、HMC システムからアクセスできます。このファイルには、ディスクまたは FTP サーバー上にあるインストールデータの場所のマッピング、データがコピーされるメモリーの場所などの詳細が含まれています。

    注記

    .ins および initrd.img.addrsize ファイルは、ブートアーティファクトの一部としてインストーラーから自動的に生成されません。これらのファイルは、手動で生成する必要があります。

    1. 次のスクリプトを generate-files.py などのファイルに保存します。

      generate-files.py という名前の Python ファイルの例

      # The following commands retrieve the size of the `kernel` and `initrd`:
      KERNEL_IMG_PATH='./kernel.img'
      INITRD_IMG_PATH='./initrd.img'
      CMDLINE_PATH='./generic.prm'
      kernel_size=(stat -c%s KERNEL_IMG_PATH)
      initrd_size=(stat -c%s INITRD_IMG_PATH)
      # The following command rounds the `kernel` size up to the next megabytes (MB) boundary.
      # This value is the starting address of `initrd.img`.
      offset=(( (kernel_size + 1048575) / 1048576 * 1048576 ))
      INITRD_IMG_NAME=(echo INITRD_IMG_PATH | rev | cut -d '/' -f 1 | rev)
      # The following commands create the kernel binary patch file that contains the `initrd` address and size:
      KERNEL_OFFSET=0x00000000
      KERNEL_CMDLINE_OFFSET=0x00010480
      INITRD_ADDR_SIZE_OFFSET=0x00010408
      OFFSET_HEX=(printf '0x%08x\n' offset)
      # The following command converts the address and size to binary format:
      printf "(printf '%016x\n' $initrd_size)" | xxd -r -p > temp_size.bin
      # The following command concatenates the address and size binaries:
      cat temp_address.bin temp_size.bin > "$INITRD_IMG_NAME.addrsize"
      # The following command deletes temporary files:
      rm -rf temp_address.bin temp_size.bin
      # The following commands create the `.ins` file.
      # The file is based on the paths of the `kernel.img`, `initrd.img`, `initrd.img.addrsize`, and `cmdline` files and the memory locations where the data is to be copied.
      KERNEL_IMG_PATH KERNEL_OFFSET
      INITRD_IMG_PATH OFFSET_HEX
      INITRD_IMG_NAME.addrsize INITRD_ADDR_SIZE_OFFSET
      CMDLINE_PATH KERNEL_CMDLINE_OFFSET

    2. 次のコマンドを実行してスクリプトを実行します。

      $ python3 <file_name>.py
  3. initrdkernelgeneric.ins、および initrd.img.addrsize パラメーターファイルをファイルサーバーに転送します。詳細は、Booting Linux in LPAR mode (IBM ドキュメント) を参照してください。
  4. マシンを起動します。
  5. クラスター内の他のマシンすべてに対してこの手順を繰り返します。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.