11.4. OpenShift Container Platform 用の PXE アセットの準備
Agent-based Installer を使用して OpenShift Container Platform クラスターを PXE ブートするために必要なアセットを作成するには、以下の手順を使用します。
これらの手順で作成したアセットは、単一ノードの OpenShift Container Platform インストールをデプロイします。これらの手順を基礎として使用し、要件に応じて設定を変更できます。
Agent-based Installer で使用できるその他の設定は、Agent-based Installer を使用した OpenShift Container Platform クラスターのインストール を参照してください。
11.4.1. 前提条件
- OpenShift Container Platform のインストールおよび更新 プロセスの詳細を確認した。
11.4.2. Agent-based Installer のダウンロード
この手順を使用して、インストールに必要な Agent-based Installer と CLI をダウンロードします。
手順
- ログイン認証情報を使用して OpenShift Container Platform Web コンソールにログインします。
- データセンター に移動します。
- Run Agent-based Installer locally をクリックします。
- OpenShift インストーラー と コマンドラインインターフェイス のオペレーティングシステムとアーキテクチャーを選択します。
- Download Installer をクリックして、インストールプログラムをダウンロードして展開します。
- Download pull secret または Copy pull secret をクリックして、プルシークレットをダウンロードまたはコピーします。
-
Download command-line tools をクリックし、
openshift-install
バイナリーをPATH
上のディレクトリーに配置します。
11.4.3. 優先設定入力の作成
この手順を使用して、PXE ファイルの作成に使用される優先設定入力を作成します。
手順
以下のコマンドを実行して
nmstate
の依存関係をインストールします。$ sudo dnf install /usr/bin/nmstatectl -y
-
PATH にあるディレクトリーに
openshift-install
バイナリーを配置します。 次のコマンドを実行して、インストール設定を保存するディレクトリーを作成します。
$ mkdir ~/<directory_name>
注記これは、エージェントベースのインストールで推奨される方法です。GitOps ZTP マニフェストの使用はオプションです。
次のコマンドを実行して、
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
- システムアーキテクチャーを指定します。有効な値は、
amd64
、arm64
、ppc64le
、およびs390x
です。multi
ペイロードが含まれるリリースイメージを使用している場合は、arm64
、amd64
、s390x
、ppc64le
などのさまざまなアーキテクチャーにクラスターをインストールできます。それ以外の場合、クラスターは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
フィールドに追加する必要があります。次のコマンドを実行して、
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 形式で設定します。
オプション: iPXE スクリプトを作成するには、
bootArtifactsBaseURL
をagent-config.yaml
ファイルに追加します。apiVersion: v1beta1 kind: AgentConfig metadata: name: sno-cluster rendezvousIP: 192.168.111.80 bootArtifactsBaseURL: <asset_server_URL>
<asset_server_URL>
は、PXE アセットをアップロードするサーバーの URL です。
関連情報
- デュアルスタックネットワークを使用したデプロイメント。
- install-config.yaml ファイルを設定します。
- ベアメタル環境に 3 ノードクラスターをデプロイするための 3 ノードクラスターの設定 を参照してください。
- ルートデバイスヒントについて。
- NMState 状態の例。
- オプション: 追加のマニフェストファイルの作成
11.4.4. PXE アセットの作成
次の手順を使用して、PXE インフラストラクチャーに実装するアセットとオプションのスクリプトを作成します。
手順
次のコマンドを実行して、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 イメージでデフォルトで有効になっています。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® クラスターにのみ使用してください。
手順
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
アーティファクトには、起動するkernel
とinitramfs
に合った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 タイプのディスクの場合は、このエントリーを省略します。
その他のパラメーターはすべて変更しません。
z/VM ゲスト仮想マシンの仮想リーダーに対して、
kernel.img
、generic.parm
、およびinitrd.img
ファイルの punch を実行します。詳細は、PUNCH (IBM ドキュメント) を参照してください。
ヒントCP PUNCH
コマンドを使用するか、Linux を使用している場合はvmur
コマンドを使用して、2 つの z/VM ゲスト仮想マシン間でファイルを転送できます。- ブートストラップマシン上の会話型モニターシステム (CMS) にログインします。
次のコマンドを実行して、リーダーからブートストラップマシンを IPL します。
$ ipl c
詳細は、IPL (IBM ドキュメント) を参照してください。
11.4.5.2. RHEL KVM を使用した IBM Z エージェントの追加
RHEL KVM を使用して IBM Z® エージェントを手動で追加するには、次の手順を使用します。この手順は、RHEL KVM を使用する IBM Z® クラスターにのみ使用してください。
手順
- RHEL KVM マシンを起動します。
仮想サーバーをデプロイするために、次のパラメーターを指定して
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 がインストールされている。
手順
エージェントのブートパラメーターファイルを作成します。
パラメーターファイルの例
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
アーティファクトには、起動するkernel
とinitramfs
に合った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 を使用する場合は、このパラメーターを指定します。
次の Python スクリプトを実行して、
.ins
ファイルとinitrd.img.addrsize
ファイルを生成します。.ins
ファイルは、インストールデータを含む特別なファイルであり、FTP サーバー上にあります。このファイルには、HMC システムからアクセスできます。このファイルには、ディスクまたは FTP サーバー上にあるインストールデータの場所のマッピング、データがコピーされるメモリーの場所などの詳細が含まれています。注記.ins
およびinitrd.img.addrsize
ファイルは、ブートアーティファクトの一部としてインストーラーから自動的に生成されません。これらのファイルは、手動で生成する必要があります。次のスクリプトを
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
次のコマンドを実行してスクリプトを実行します。
$ python3 <file_name>.py
-
initrd
、kernel
、generic.ins
、およびinitrd.img.addrsize
パラメーターファイルをファイルサーバーに転送します。詳細は、Booting Linux in LPAR mode (IBM ドキュメント) を参照してください。 - マシンを起動します。
- クラスター内の他のマシンすべてに対してこの手順を繰り返します。