12.4. OpenShift Container Platform 用の PXE アセットの準備
Agent-based Installer を使用して OpenShift Container Platform クラスターを PXE ブートするために必要なアセットを作成するには、以下の手順を使用します。
これらの手順で作成したアセットは、単一ノードの OpenShift Container Platform インストールをデプロイします。これらの手順を基礎として使用し、要件に応じて設定を変更できます。
Agent-based Installer で使用できるその他の設定は、Agent-based Installer を使用した OpenShift Container Platform クラスターのインストール を参照してください。
12.4.1. 前提条件
- OpenShift Container Platform のインストールおよび更新 プロセスの詳細を確認した。
12.4.2. Agent-based Installer のダウンロード
この手順を使用して、インストールに必要な Agent-based Installer と CLI をダウンロードします。
現在、Agent-based Installer のダウンロードは、IBM Z® (s390x
) アーキテクチャーではサポートされていません。推奨される方法は、PXE アセットを作成することです。
手順
- ログイン認証情報を使用して 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
上のディレクトリーに配置します。
12.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
です。 - 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 状態の例。
- オプション: 追加のマニフェストファイルの作成
12.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
と一致する必要があります。
12.4.5. IBM Z エージェントの手動追加
PXE アセットを作成した後、IBM Z® エージェントを追加できます。この手順は、IBM Z® クラスターにのみ使用してください。
現在、ISO ブートは IBM Z® (s390x
) アーキテクチャーではサポートされていません。したがって、IBM Z® でエージェントベースのインストールを実行するには、IBM Z® エージェントを手動で追加する必要があります。
IBM Z® 環境に応じて、以下の方法から選択できます。
- z/VM を使用した IBM Z® エージェントの追加
- RHEL KVM を使用した IBM Z® エージェントの追加
12.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 ドキュメント) を参照してください。
12.4.5.2. RHEL KVM を使用した IBM Z(R) エージェントの追加
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 の場所を指定します。