IBM Cloud Bare Metal (Classic)へのインストール
IBM Cloud Bare Metal (Classic) への OpenShift Container Platform のインストール
概要
第1章 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
インストーラーによってプロビジョニングされたインストールを使用して、OpenShift Container Platform を IBM Cloud® Bare Metal (Classic) ノードにインストールできます。本書では、IBM Cloud ノードに OpenShift Container Platform をインストールする際の前提条件および手順を説明します。
Red Hat は、プロビジョニングネットワークでのみ IPMI および PXE をサポートします。Red Hat は、IBM Cloud デプロイメントで Secure Boot などの Red Hat Fish、仮想メディア、またはその他の補完テクノロジーをテストしていません。プロビジョニングネットワークが必要です。
OpenShift Container Platform の installer-provisioned installation には、以下が必要です。
- プロビジョナーを実行するための、Red Hat Enterprise Linux CoreOS (RHCOS) 8.x がインストールされた 1 つのノード
- 3 つのコントロールプレーンノード
- 1 つのルーティング可能なネットワーク
- 1 つのプロビジョニングネットワーク
IBM Cloud Bare Metal (Classic) に、インストーラーでプロビジョニングされる OpenShift Container Platform のインストールを開始する前に、以下の前提条件および要件に対応します。
1.1. IBM Cloud Bare Metal (Classic) インフラストラクチャーのセットアップ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform クラスターを IBM Cloud® Bare Metal (Classic) にデプロイするには、最初に IBM Cloud ノードをプロビジョニングする必要があります。
Red Hat は、provisioning ネットワークでのみ IPMI および PXE をサポートします。Red Hat は、IBM Cloud デプロイメントで Secure Boot などの Red Hat Fish、仮想メディア、またはその他の補完テクノロジーをテストしていません。provisioning ネットワークが必要です。
IBM Cloud API を使用して IBM Cloud ノードをカスタマイズできます。IBM Cloud ノードを作成する場合は、以下の要件を考慮する必要があります。
クラスターごとにデータセンターを 1 つ使用します。
OpenShift Container Platform クラスターのすべてのノードは、同じ IBM Cloud データセンターで実行する必要があります。
パブリックおよびプライベート VLAN を作成します。
1 つのパブリック VLAN と単一のプライベート VLAN を持つすべてのノードを作成します。
サブネットに十分な IP アドレスがあることを確認します。
IBM Cloud パブリック VLAN サブネットは、デフォルトで /28 接頭辞を使用し、16 個の IP アドレスを提供します。これは、3 つのコントロールプレーンノード、4 つのワーカーノード、および baremetal ネットワーク上 2 つの IP アドレス (API VIP および Ingress VIP) で設定されるクラスターには十分です。大規模なクラスターの場合は、接頭辞が小さい可能性があります。
IBM Cloud private VLAN サブネットは、デフォルトで /26 接頭辞を使用し、64 個の IP アドレスを提供します。IIBM Cloud Bare Metal (Classic) はプライベートネットワーク IP アドレスを使用して、各ノードの Baseboard Management Controller (BMC) にアクセスします。OpenShift Container Platform は、provisioning ネットワークの追加サブネットを作成します。プライベート VLAN を使用した provisioning ネットワークのサブネットのルートに対するネットワークトラフィックです。大規模なクラスターの場合は、接頭辞が小さい可能性があります。
| IP アドレス | 接頭辞 |
|---|---|
| 32 |
|
| 64 |
|
| 128 |
|
| 256 |
|
NIC の設定
OpenShift Container Platform は、2 つのネットワークを使用してデプロイします。
-
provisioning:provisioningネットワークは、OpenShift Container Platform クラスターの一部である、基礎となるオペレーティングシステムを各ノードにプロビジョニングするために使用されるルーティング不可能なネットワークです。 -
baremetal:baremetalネットワークはルーティング可能なネットワークです。任意の NIC 順序を使用してbaremetalネットワークと対話できます。ただし、provisioningネットワーク用のprovisioningNetworkInterface設定で指定される NIC ではなく、ノードのbootMACAddress設定に関連する NIC であることが条件となります。
クラスターノードには 3 つ以上の NIC を追加できますが、インストールプロセスでは最初の 2 つの NIC のみに焦点が当てられます。以下に例を示します。
| NIC | ネットワーク | VLAN |
|---|---|---|
| NIC1 |
| <provisioning_vlan> |
| NIC2 |
| <baremetal_vlan> |
上記の例では、すべてのコントロールプレーンおよびワーカーノードの NIC1 は、OpenShift Container Platform クラスターのインストールにのみ使用されるルーティング不可能なネットワーク (provisioning) に接続します。すべてのコントロールプレーンおよびワーカーノードの NIC2 は、ルーティング可能な baremetal ネットワークに接続されます。
| PXE | ブート順序 |
|---|---|
|
NIC1 PXE 対応の | 1 |
|
NIC2 | 2 |
PXE が provisioning ネットワークに使用する NIC で有効になっており、他のすべての NIC で無効になっていることを確認します。
正規名の設定
クライアントは、baremetal ネットワークで OpenShift Container Platform クラスターにアクセスします。正規名の拡張がクラスター名である IBM Cloud サブドメインまたはサブゾーンを設定します。
<cluster_name>.<domain>
<cluster_name>.<domain>
以下に例を示します。
test-cluster.example.com
test-cluster.example.com
DNS エントリーの作成
以下について、パブリックサブネットで未使用の IP アドレスを解決する DNS A レコードエントリーを作成する必要があります。
| 使用法 | ホスト名 | IP |
|---|---|---|
| API | api.<cluster_name>.<domain> | <ip> |
| Ingress LB (アプリケーション) | *.apps.<cluster_name>.<domain> | <ip> |
コントロールプレーンおよびワーカーノードには、プロビジョニング後にすでに DNS エントリーがあります。
以下の表は、完全修飾ドメイン名の例を示しています。API および Nameserver アドレスは、正式名の拡張子で始まります。コントロールプレーンおよびワーカーノードのホスト名は例であるため、任意のホストの命名規則を使用できます。
| 使用法 | ホスト名 | IP |
|---|---|---|
| API | api.<cluster_name>.<domain> | <ip> |
| Ingress LB (アプリケーション) | *.apps.<cluster_name>.<domain> | <ip> |
| プロビジョナーノード | provisioner.<cluster_name>.<domain> | <ip> |
| Master-0 | openshift-master-0.<cluster_name>.<domain> | <ip> |
| Master-1 | openshift-master-1.<cluster_name>.<domain> | <ip> |
| Master-2 | openshift-master-2.<cluster_name>.<domain> | <ip> |
| Worker-0 | openshift-worker-0.<cluster_name>.<domain> | <ip> |
| Worker-1 | openshift-worker-1.<cluster_name>.<domain> | <ip> |
| Worker-n | openshift-worker-n.<cluster_name>.<domain> | <ip> |
OpenShift Container Platform には、クラスターメンバーシップ情報を使用して A レコードを生成する機能が含まれます。これにより、ノード名が IP アドレスに解決されます。ノードが API に登録されると、クラスターは CoreDNS-mDNS を使用せずにこれらのノード情報を分散できます。これにより、マルチキャスト DNS に関連付けられたネットワークトラフィックがなくなります。
IBM Cloud ノードのプロビジョニング後に、CoreDNS を削除するとローカルエントリーが非表示になるので、api.<cluster_name>.<domain> ドメイン名の DNS エントリーを作成する必要があります。外部 DNS サーバーで api.<cluster_name>.<domain> ドメイン名の DNS レコードの作成に失敗すると、ワーカーノードがクラスターに参加できなくなります。
ネットワークタイムプロトコル (NTP)
クラスター内の各 OpenShift Container Platform ノードは NTP サーバーにアクセスできる必要があります。OpenShift Container Platform ノードは NTP を使用してクロックを同期します。たとえば、クラスターノードは、検証を必要とする SSL 証明書を使用します。これは、ノード間の日付と時刻が同期していない場合に失敗する可能性があります。
各クラスターノードの BIOS 設定で一貫性のあるクロックの日付と時刻の形式を定義してください。そうしないと、インストールが失敗する可能性があります。
DHCP サーバーの設定
IBM Cloud Bare Metal (Classic) は、パブリックまたはプライベートの VLAN で DHCP を実行しません。IBM Cloud ノードのプロビジョニング後に、OpenShift Container Platform の baremetal ネットワークに対応するパブリック VLAN の DHCP サーバーを設定する必要があります。
各ノードに割り当てられる IP アドレスは、IBM Cloud Bare Metal (Classic) プロビジョニングシステムによって割り当てられる IP アドレスに一致する必要はありません。
詳細は、Configuring the public subnet セクションを参照してください。
BMC アクセス権限の確認
ダッシュボードの各ノードの "Remote management" ページには、ノードのインテリジェントなプラットフォーム管理インターフェイス (IPMI) 認証情報が含まれます。デフォルトの IPMI 権限により、ユーザーが特定のブートターゲットの変更を阻止します。Ironic が変更を加えることができるように、特権レベルを OPERATOR に変更する必要があります。
install-config.yaml ファイルで、各 BMC の設定に使用される URL に privilegelevel パラメーターを追加します。詳細は、「install-config.yaml ファイルの設定」セクションを参照してください。以下に例を示します。
ipmi://<IP>:<port>?privilegelevel=OPERATOR
ipmi://<IP>:<port>?privilegelevel=OPERATOR
または、IBM Cloud サポートに連絡し、各ノードの ADMINISTRATOR に対する IPMI 特権を増やすように要求します。
ベアメタルサーバーの作成
Create resource → Bare Metal Servers for Classic に移動して、IBM Cloud ダッシュボード にベアメタルサーバーを作成します。
または、ibmcloud CLI ユーティリティーを使用してベアメタルサーバーを作成できます。以下に例を示します。
IBM Cloud CLI のインストールに関する詳細は、Installing the stand-alone IBM Cloud CLI を参照してください。
IBM Cloud Server が利用可能な状態になるまで 3-5 時間かかる場合があります。
第2章 OpenShift Container Platform インストールの環境の設定 リンクのコピーリンクがクリップボードにコピーされました!
2.1. IBM Cloud Bare Metal (Classic) インフラストラクチャー上でプロビジョナーノードを準備する リンクのコピーリンクがクリップボードにコピーされました!
provisioner ノードを準備するには、以下の手順を実行します。
手順
-
sshでプロビジョナーノードにログインします。 root 以外のユーザー (
kni) を作成し、そのユーザーにsudo権限を付与します。useradd kni
# useradd kniCopy to Clipboard Copied! Toggle word wrap Toggle overflow passwd kni
# passwd kniCopy to Clipboard Copied! Toggle word wrap Toggle overflow echo "kni ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/kni
# echo "kni ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/kniCopy to Clipboard Copied! Toggle word wrap Toggle overflow chmod 0440 /etc/sudoers.d/kni
# chmod 0440 /etc/sudoers.d/kniCopy to Clipboard Copied! Toggle word wrap Toggle overflow 新規ユーザーの
sshキーを作成します。su - kni -c "ssh-keygen -f /home/kni/.ssh/id_rsa -N ''"
# su - kni -c "ssh-keygen -f /home/kni/.ssh/id_rsa -N ''"Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロビジョナーノードで新規ユーザーとしてログインします。
su - kni
# su - kniCopy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Subscription Manager を使用してプロビジョナーノードを登録します。
sudo subscription-manager register --username=<user> --password=<pass> --auto-attach
$ sudo subscription-manager register --username=<user> --password=<pass> --auto-attachCopy to Clipboard Copied! Toggle word wrap Toggle overflow sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms \ --enable=rhel-8-for-x86_64-baseos-rpms$ sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms \ --enable=rhel-8-for-x86_64-baseos-rpmsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記Red Hat Subscription Manager の詳細は、Using and Configuring Red Hat Subscription Manager を参照してください。
以下のパッケージをインストールします。
sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
$ sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitoolCopy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーを変更して、新たに作成したユーザーに
libvirtグループを追加します。sudo usermod --append --groups libvirt kni
$ sudo usermod --append --groups libvirt kniCopy to Clipboard Copied! Toggle word wrap Toggle overflow firewalldを起動します。sudo systemctl start firewalld
$ sudo systemctl start firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow firewalldを有効にします。sudo systemctl enable firewalld
$ sudo systemctl enable firewalldCopy to Clipboard Copied! Toggle word wrap Toggle overflow httpサービスを起動します。sudo firewall-cmd --zone=public --add-service=http --permanent
$ sudo firewall-cmd --zone=public --add-service=http --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow sudo firewall-cmd --reload
$ sudo firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow libvirtdサービスを開始して、これを有効にします。sudo systemctl enable libvirtd --now
$ sudo systemctl enable libvirtd --nowCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロビジョナーノードの ID を設定します。
PRVN_HOST_ID=<ID>
$ PRVN_HOST_ID=<ID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
ibmcloudコマンドで ID を表示できます。ibmcloud sl hardware list
$ ibmcloud sl hardware listCopy to Clipboard Copied! Toggle word wrap Toggle overflow パブリックサブネットの ID を設定します。
PUBLICSUBNETID=<ID>
$ PUBLICSUBNETID=<ID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
ibmcloudコマンドで ID を表示できます。ibmcloud sl subnet list
$ ibmcloud sl subnet listCopy to Clipboard Copied! Toggle word wrap Toggle overflow プライベートサブネットの ID を設定します。
PRIVSUBNETID=<ID>
$ PRIVSUBNETID=<ID>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の
ibmcloudコマンドで ID を表示できます。ibmcloud sl subnet list
$ ibmcloud sl subnet listCopy to Clipboard Copied! Toggle word wrap Toggle overflow provisioner ノードのパブリック IP アドレスを設定します。
PRVN_PUB_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | jq .primaryIpAddress -r)
$ PRVN_PUB_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | jq .primaryIpAddress -r)Copy to Clipboard Copied! Toggle word wrap Toggle overflow パブリックネットワークの CIDR を設定します。
PUBLICCIDR=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .cidr)
$ PUBLICCIDR=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .cidr)Copy to Clipboard Copied! Toggle word wrap Toggle overflow パブリックネットワークの IP アドレスおよび CIDR を設定します。
PUB_IP_CIDR=$PRVN_PUB_IP/$PUBLICCIDR
$ PUB_IP_CIDR=$PRVN_PUB_IP/$PUBLICCIDRCopy to Clipboard Copied! Toggle word wrap Toggle overflow パブリックネットワークのゲートウェイを設定します。
PUB_GATEWAY=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .gateway -r)
$ PUB_GATEWAY=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .gateway -r)Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロビジョナーノードのプライベート IP アドレスを設定します。
PRVN_PRIV_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | \ jq .primaryBackendIpAddress -r)$ PRVN_PRIV_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | \ jq .primaryBackendIpAddress -r)Copy to Clipboard Copied! Toggle word wrap Toggle overflow プライベートネットワークの CIDR を設定します。
PRIVCIDR=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .cidr)
$ PRIVCIDR=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .cidr)Copy to Clipboard Copied! Toggle word wrap Toggle overflow プライベートネットワークの IP アドレスおよび CIDR を設定します。
PRIV_IP_CIDR=$PRVN_PRIV_IP/$PRIVCIDR
$ PRIV_IP_CIDR=$PRVN_PRIV_IP/$PRIVCIDRCopy to Clipboard Copied! Toggle word wrap Toggle overflow プライベートネットワークのゲートウェイを設定します。
PRIV_GATEWAY=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .gateway -r)
$ PRIV_GATEWAY=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .gateway -r)Copy to Clipboard Copied! Toggle word wrap Toggle overflow baremetalおよびprovisioningネットワークのブリッジを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記eth1およびeth2の場合は、必要に応じて適切なインターフェイス名を置き換えます。必要な場合は、
provisionerノードに対して再度 SSH を実行します。ssh kni@provisioner.<cluster-name>.<domain>
# ssh kni@provisioner.<cluster-name>.<domain>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 接続ブリッジが適切に作成されていることを確認します。
sudo nmcli con show
$ sudo nmcli con showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pull-secret.txtファイルを作成します。vim pull-secret.txt
$ vim pull-secret.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow Web ブラウザーで、Install on Bare Metal with user-provisioned infrastructure に移動します。ステップ 1 で、Download pull secret をクリックします。
pull-secret.txtファイルにコンテンツを貼り付け、そのコンテンツをkniユーザーのホームディレクトリーに保存します。
2.2. パブリックサブネットの設定 リンクのコピーリンクがクリップボードにコピーされました!
すべての OpenShift Container Platform クラスターノードはパブリックサブネット上になければなりません。IBM Cloud® Bare Metal (Classic) は、サブネット上に DHCP サーバーを提供しません。プロビジョナーノードで個別に設定します。
プロビジョナーノードの準備時に定義された BASH 変数をリセットする必要があります。準備後にプロビジョナーノードを再起動すると、BASH 変数が以前に設定された変数が削除されます。
手順
dnsmasqをインストールします。sudo dnf install dnsmasq
$ sudo dnf install dnsmasqCopy to Clipboard Copied! Toggle word wrap Toggle overflow dnsmasq設定ファイルを開きます。sudo vi /etc/dnsmasq.conf
$ sudo vi /etc/dnsmasq.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の設定を
dnsmasq設定ファイルに追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- DHCP 範囲を設定します。
<ip_addr>の両方のインスタンスをパブリックサブネットから 1 つの未使用の IP アドレスに置き換え、baremetalネットワークのdhcp-rangeが開始し、IP アドレスで終了するようにします。<pub_cidr>をパブリックサブネットの CIDR に置き換えます。 - 2
- DHCP オプションを設定します。
<pub_gateway>を、baremetalネットワークのゲートウェイの IP アドレスに置き換えます。<prvn_priv_ip>を、provisioningネットワーク上にあるプロビジョナーノードのプライベート IP アドレスの IP アドレスに置き換えます。<prvn_pub_ip>を、baremetalネットワーク上にあるプロビジョナーノードのパブリック IP アドレスの IP アドレスに置き換えます。
<pub_cidr>の値を取得するには、以下を実行します。ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .cidr
$ ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .cidrCopy to Clipboard Copied! Toggle word wrap Toggle overflow <publicsubnetid>をパブリックサブネットの ID に置き換えます。<pub_gateway>の値を取得するには、以下を実行します。ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .gateway -r
$ ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .gateway -rCopy to Clipboard Copied! Toggle word wrap Toggle overflow <publicsubnetid>をパブリックサブネットの ID に置き換えます。<prvn_priv_ip>の値を取得するには、以下を実行します。ibmcloud sl hardware detail <id> --output JSON | \ jq .primaryBackendIpAddress -r$ ibmcloud sl hardware detail <id> --output JSON | \ jq .primaryBackendIpAddress -rCopy to Clipboard Copied! Toggle word wrap Toggle overflow <id>をプロビジョナーノードの ID に置き換えます。<prvn_pub_ip>の値を取得するには、以下を実行します。ibmcloud sl hardware detail <id> --output JSON | jq .primaryIpAddress -r
$ ibmcloud sl hardware detail <id> --output JSON | jq .primaryIpAddress -rCopy to Clipboard Copied! Toggle word wrap Toggle overflow <id>をプロビジョナーノードの ID に置き換えます。クラスターのハードウェアのリストを取得します。
ibmcloud sl hardware list
$ ibmcloud sl hardware listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 各ノードの MAC アドレスおよび IP アドレスを取得します。
ibmcloud sl hardware detail <id> --output JSON | \ jq '.networkComponents[] | \ "\(.primaryIpAddress) \(.macAddress)"' | grep -v null
$ ibmcloud sl hardware detail <id> --output JSON | \ jq '.networkComponents[] | \ "\(.primaryIpAddress) \(.macAddress)"' | grep -v nullCopy to Clipboard Copied! Toggle word wrap Toggle overflow <id>をノードの ID に置き換えてください。出力例
"10.196.130.144 00:e0:ed:6a:ca:b4" "141.125.65.215 00:e0:ed:6a:ca:b5"
"10.196.130.144 00:e0:ed:6a:ca:b4" "141.125.65.215 00:e0:ed:6a:ca:b5"Copy to Clipboard Copied! Toggle word wrap Toggle overflow パブリックネットワークの MAC アドレスと IP アドレスを書き留めておきます。プライベートネットワークの MAC アドレスを別々に書き留めておきます。これは、後に
install-config.yamlファイルで使用します。各ノードにパブリックbaremetalネットワークのパブリック MAC アドレスと IP アドレスがすべてあり、プライベートのprovisioningの MAC アドレスになるまで、この手順を繰り返します。各ノードのパブリック
baremetalネットワークの MAC アドレスと IP アドレスペアをdnsmasq.hostsfileファイルに追加します。sudo vim /var/lib/dnsmasq/dnsmasq.hostsfile
$ sudo vim /var/lib/dnsmasq/dnsmasq.hostsfileCopy to Clipboard Copied! Toggle word wrap Toggle overflow 入力の例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <mac>,<ip>を、対応するノード名のパブリック MAC アドレスとパブリック IP アドレスに置き換えます。dnsmasqを開始します。sudo systemctl start dnsmasq
$ sudo systemctl start dnsmasqCopy to Clipboard Copied! Toggle word wrap Toggle overflow dnsmasqを有効にして、ノードのブート時に起動できるようにします。sudo systemctl enable dnsmasq
$ sudo systemctl enable dnsmasqCopy to Clipboard Copied! Toggle word wrap Toggle overflow dnsmasqが実行中であることを確認します。sudo systemctl status dnsmasq
$ sudo systemctl status dnsmasqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow UDP プロトコルでポート
53および67を開きます。sudo firewall-cmd --add-port 53/udp --permanent
$ sudo firewall-cmd --add-port 53/udp --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow sudo firewall-cmd --add-port 67/udp --permanent
$ sudo firewall-cmd --add-port 67/udp --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow masquerade を使用して、外部ゾーンに
provisioningを追加します。sudo firewall-cmd --change-zone=provisioning --zone=external --permanent
$ sudo firewall-cmd --change-zone=provisioning --zone=external --permanentCopy to Clipboard Copied! Toggle word wrap Toggle overflow このステップにより、管理サブネットへの IPMI 呼び出しのネットワークアドレス変換が確保されます。
firewalld設定を再読み込みします。sudo firewall-cmd --reload
$ sudo firewall-cmd --reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. OpenShift Container Platform インストーラーの取得 リンクのコピーリンクがクリップボードにコピーされました!
インストールプログラムの stable-4.x バージョンと選択したアーキテクチャーを使用して、OpenShift Container Platform の一般公開の安定バージョンをデプロイします。
export VERSION=stable-4.12
$ export VERSION=stable-4.12
export RELEASE_ARCH=<architecture>
$ export RELEASE_ARCH=<architecture>
export RELEASE_IMAGE=$(curl -s https://mirror.openshift.com/pub/openshift-v4/$RELEASE_ARCH/clients/ocp/$VERSION/release.txt | grep 'Pull From: quay.io' | awk -F ' ' '{print $3}')
$ export RELEASE_IMAGE=$(curl -s https://mirror.openshift.com/pub/openshift-v4/$RELEASE_ARCH/clients/ocp/$VERSION/release.txt | grep 'Pull From: quay.io' | awk -F ' ' '{print $3}')
2.4. OpenShift Container Platform インストールのデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
インストーラーを取得したら、インストーラーを展開します。
手順
環境変数を設定します。
export cmd=openshift-baremetal-install
$ export cmd=openshift-baremetal-installCopy to Clipboard Copied! Toggle word wrap Toggle overflow export pullsecret_file=~/pull-secret.txt
$ export pullsecret_file=~/pull-secret.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow export extract_dir=$(pwd)
$ export extract_dir=$(pwd)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ocバイナリーを取得します。curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux.tar.gz | tar zxvf - oc
$ curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux.tar.gz | tar zxvf - ocCopy to Clipboard Copied! Toggle word wrap Toggle overflow インストーラーを実行します。
sudo cp oc /usr/local/bin
$ sudo cp oc /usr/local/binCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc adm release extract --registry-config "${pullsecret_file}" --command=$cmd --to "${extract_dir}" ${RELEASE_IMAGE}$ oc adm release extract --registry-config "${pullsecret_file}" --command=$cmd --to "${extract_dir}" ${RELEASE_IMAGE}Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo cp openshift-baremetal-install /usr/local/bin
$ sudo cp openshift-baremetal-install /usr/local/binCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5. install-config.yaml ファイルの設定 リンクのコピーリンクがクリップボードにコピーされました!
install-config.yaml ファイルには、追加の詳細情報が必要です。それらの情報のほとんどは、インストーラーおよび結果として作成されるクラスターが利用可能な IBM Cloud® Bare Metal (Classic) ハードウェアを完全に管理するのに必要な利用可能なハードウェアについての十分な情報として提供されます。ベアメタルへのインストールと IBM Cloud® Bare Metal (Classic) へのインストールの相違点は install-config.yaml ファイルの BMC セクションで IPMI の特権レベルを明示的に設定する必要があることです。
手順
install-config.yamlを設定します。pullSecretおよびsshKeyなど、環境に合わせて適切な変数を変更します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ibmcloudコマンドラインユーティリティーを使用して、パスワードを取得できます。ibmcloud sl hardware detail <id> --output JSON | \ jq '"(.networkManagementIpAddress) (.remoteManagementAccounts[0].password)"'
$ ibmcloud sl hardware detail <id> --output JSON | \ jq '"(.networkManagementIpAddress) (.remoteManagementAccounts[0].password)"'Copy to Clipboard Copied! Toggle word wrap Toggle overflow <id>をノードの ID に置き換えてください。クラスター設定を保存するディレクトリーを作成します。
mkdir ~/clusterconfigs
$ mkdir ~/clusterconfigsCopy to Clipboard Copied! Toggle word wrap Toggle overflow install-config.yamlファイルをディレクトリーにコピーします。cp install-config.yaml ~/clusterconfigs
$ cp install-config.yaml ~/clusterconfigsCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform クラスターをインストールする前に、すべてのベアメタルノードの電源がオフになっていることを確認します。
ipmitool -I lanplus -U <user> -P <password> -H <management_server_ip> power off
$ ipmitool -I lanplus -U <user> -P <password> -H <management_server_ip> power offCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以前に試行したデプロイメントにより古いブートストラップリソースが残っている場合は、これを削除します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.6. 追加の install-config パラメーター リンクのコピーリンクがクリップボードにコピーされました!
install-config.yaml ファイルに必要なパラメーター hosts パラメーターおよび bmc パラメーターは、以下の表を参照してください。
| パラメーター | デフォルト | 説明 |
|---|---|---|
|
|
クラスターのドメイン名。たとえば、 | |
|
|
|
ノードのブートモード。オプションは、 |
|
| ブートストラップ VM の静的 IP アドレス。ベアメタルネットワークに DHCP サーバーがない場合に、静的 IP アドレスを使用してクラスターをデプロイする場合は、この値を設定する必要があります。 | |
|
| ブートストラップ VM のゲートウェイの静的 IP アドレス。ベアメタルネットワークに DHCP サーバーがない場合に、静的 IP アドレスを使用してクラスターをデプロイする場合は、この値を設定する必要があります。 | |
|
|
| |
|
|
| |
metadata:
name:
|
OpenShift Container Platform クラスターに指定される名前。たとえば、 | |
networking:
machineNetwork:
- cidr:
|
外部ネットワークの公開 CIDR (Classless Inter-Domain Routing)。例: | |
compute: - name: worker
| OpenShift Container Platform クラスターでは、ノードがゼロであってもワーカー (またはコンピュート) ノードの名前を指定する必要があります。 | |
compute:
replicas: 2
| レプリカは、OpenShift Container Platform クラスターのワーカー (またはコンピュート) ノードの数を設定します。 | |
controlPlane:
name: master
| OpenShift Container Platform クラスターには、コントロールプレーン (マスター) ノードの名前が必要です。 | |
controlPlane:
replicas: 3
| レプリカは、OpenShift Container Platform クラスターの一部として含まれるコントロールプレーン (マスター) ノードの数を設定します。 | |
|
|
ベアメタルネットワークに接続されたノード上のネットワークインターフェイス名。OpenShift Container Platform 4.9 以降のリリースのために、NIC の名前を識別するために | |
|
| プラットフォーム設定なしでマシンプールに使用されるデフォルト設定。 | |
|
| (オプション) Kubernetes API 通信の仮想 IP アドレス。
この設定は、MachineNetwork からの予約済み IP として 注記
OpenShift Container Platform 4.12 より前では、クラスターのインストールプログラムは | |
|
|
|
|
|
| (オプション) Ingress トラフィックの仮想 IP アドレス。
この設定は、MachineNetwork からの予約済み IP として 注記
OpenShift Container Platform 4.12 より前では、クラスターのインストールプログラムは |
| パラメーター | デフォルト | 説明 |
|---|---|---|
|
|
| プロビジョニングネットワークでノードの IP 範囲を定義します。 |
|
|
| プロビジョニングに使用するネットワークの CIDR。このオプションは、プロビジョニングネットワークでデフォルトのアドレス範囲を使用しない場合に必要です。 |
|
|
|
プロビジョニングサービスが実行されるクラスター内の IP アドレス。デフォルトは、プロビジョニングサブネットの 3 番目の IP アドレスに設定されます。たとえば、 |
|
|
|
インストーラーがコントロールプレーン (マスター) ノードをデプロイしている間にプロビジョニングサービスが実行されるブートストラップ仮想マシンの IP アドレス。デフォルトは、プロビジョニングサブネットの 2 番目の IP アドレスに設定されます。たとえば、 |
|
|
| ベアメタルネットワークに接続されたハイパーバイザーのベアメタルブリッジの名前。 |
|
|
|
プロビジョニングネットワークに接続されている |
|
|
クラスターのホストアーキテクチャーを定義します。有効な値は | |
|
| プラットフォーム設定なしでマシンプールに使用されるデフォルト設定。 | |
|
|
ブートストラップノードのデフォルトのオペレーティングシステムイメージを上書きするための URL。URL にはイメージの SHA-256 ハッシュが含まれている必要があります。たとえば、 | |
|
|
| |
|
| このパラメーターを、環境内で使用する適切な HTTP プロキシーに設定します。 | |
|
| このパラメーターを、環境内で使用する適切な HTTPS プロキシーに設定します。 | |
|
| このパラメーターを、環境内のプロキシーの使用に対する例外のリストに設定します。 |
ホスト
hosts パラメーターは、クラスターのビルドに使用される個別のベアメタルアセットのリストです。
| 名前 | デフォルト | 説明 |
|---|---|---|
|
|
詳細情報に関連付ける | |
|
|
ベアメタルノードのロール。 | |
|
| ベースボード管理コントローラーの接続詳細。詳細は、BMC アドレス指定のセクションを参照してください。 | |
|
|
ホストがプロビジョニングネットワークに使用する NIC の MAC アドレス。Ironic は、 注記 プロビジョニングネットワークを無効にした場合は、ホストから有効な MAC アドレスを提供する必要があります。 | |
|
| このオプションのパラメーターを設定して、ホストのネットワークインターフェイスを設定します。詳細は、「(オプション) ホストネットワークインターフェイスの設定」を参照してください。 |
2.7. ルートデバイスのヒント リンクのコピーリンクがクリップボードにコピーされました!
rootDeviceHints パラメーターは、インストーラーが Red Hat Enterprise Linux CoreOS (RHCOS) イメージを特定のデバイスにプロビジョニングできるようにします。インストーラーは、検出順にデバイスを検査し、検出された値をヒントの値と比較します。インストーラーは、ヒント値に一致する最初に検出されたデバイスを使用します。この設定は複数のヒントを組み合わせることができますが、デバイスは、インストーラーがこれを選択できるようにすべてのヒントに一致する必要があります。
| サブフィールド | 説明 |
|---|---|
|
|
|
|
|
|
|
| ベンダー固有のデバイス識別子を含む文字列。ヒントは、実際の値のサブ文字列になります。 |
|
| デバイスのベンダーまたは製造元の名前が含まれる文字列。ヒントは、実際の値のサブ文字列になります。 |
|
| デバイスのシリアル番号を含む文字列。ヒントは、実際の値と完全に一致する必要があります。 |
|
| デバイスの最小サイズ (ギガバイト単位) を表す整数。 |
|
| 一意のストレージ ID を含む文字列。ヒントは、実際の値と完全に一致する必要があります。 |
|
| ベンダー拡張が追加された一意のストレージ ID を含む文字列。ヒントは、実際の値と完全に一致する必要があります。 |
|
| 一意のベンダーストレージ ID を含む文字列。ヒントは、実際の値と完全に一致する必要があります。 |
|
| デバイスがローテーションするディスクである (true) か、そうでないか (false) を示すブール値。 |
使用例
2.8. OpenShift Container Platform マニフェストの作成 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform マニフェストを作成します。
./openshift-baremetal-install --dir ~/clusterconfigs create manifests
$ ./openshift-baremetal-install --dir ~/clusterconfigs create manifestsCopy to Clipboard Copied! Toggle word wrap Toggle overflow INFO Consuming Install Config from target directory WARNING Making control-plane schedulable by setting MastersSchedulable to true for Scheduler cluster settings WARNING Discarding the OpenShift Manifest that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
INFO Consuming Install Config from target directory WARNING Making control-plane schedulable by setting MastersSchedulable to true for Scheduler cluster settings WARNING Discarding the OpenShift Manifest that was provided in the target directory because its dependencies are dirty and it needs to be regeneratedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
2.9. OpenShift Container Platform インストーラーを使用したクラスターのデプロイ リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform インストーラーを実行します。
./openshift-baremetal-install --dir ~/clusterconfigs --log-level debug create cluster
$ ./openshift-baremetal-install --dir ~/clusterconfigs --log-level debug create cluster
2.10. インストールの進行状況を追跡 リンクのコピーリンクがクリップボードにコピーされました!
デプロイメントプロセスで、tail コマンドを install ディレクトリーフォルダーの .openshift_install.log ログファイルに対して実行して、インストールの全体のステータスを確認できます。
tail -f /path/to/install-dir/.openshift_install.log
$ tail -f /path/to/install-dir/.openshift_install.log
Legal Notice
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.