IBM Cloud Bare Metal (Classic) のインストール
IBM Cloud Bare Metal (Classic) への OpenShift Container Platform のインストール
概要
第1章 前提条件
installer-provisioned installation を使用して、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 の installer-provisioned installation を開始する前に、以下の前提条件および要件に対応します。
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>
以下に例を示します。
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 アドレスに一致する必要はありません。
詳細は、「パブリックサブネットの設定」セクションを参照してください。
BMC アクセス権限の確認
ダッシュボードの各ノードの "Remote management" ページには、ノードのインテリジェントなプラットフォーム管理インターフェイス (IPMI) 認証情報が含まれます。デフォルトの IPMI 権限により、ユーザーが特定のブートターゲットの変更を阻止します。Ironic が変更を加えることができるように、特権レベルを OPERATOR
に変更する必要があります。
install-config.yaml
ファイルで、各 BMC の設定に使用される URL に privilegelevel
パラメーターを追加します。詳細は、「install-config.yaml ファイルの設定」セクションを参照してください。以下に例を示します。
ipmi://<IP>:<port>?privilegelevel=OPERATOR
または、IBM Cloud® サポートに連絡し、各ノードの ADMINISTRATOR
に対する IPMI 特権を増やすように要求します。
ベアメタルサーバーの作成
Create resource → Bare Metal Servers for Classic に移動して、IBM Cloud® ダッシュボード にベアメタルサーバーを作成します。
または、ibmcloud
CLI ユーティリティーを使用してベアメタルサーバーを作成できます。以下に例を示します。
$ ibmcloud sl hardware create --hostname <SERVERNAME> \ --domain <DOMAIN> \ --size <SIZE> \ --os <OS-TYPE> \ --datacenter <DC-NAME> \ --port-speed <SPEED> \ --billing <BILLING>
IBM Cloud® CLI のインストールに関する詳細は、Installing the stand-alone IBM Cloud® CLI を参照してください。
IBM Cloud® Server が利用可能な状態になるまで 3-5 時間かかる場合があります。
第2章 OpenShift Container Platform インストールの環境の設定
2.1. IBM Cloud(R) Bare Metal (Classic) インフラストラクチャー上でプロビジョナーノードを準備する
provisioner ノードを準備するには、以下の手順を実行します。
手順
-
ssh
でプロビジョナーノードにログインします。 root 以外のユーザー (
kni
) を作成し、そのユーザーにsudo
権限を付与します。# useradd kni
# passwd kni
# echo "kni ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/kni
# chmod 0440 /etc/sudoers.d/kni
新規ユーザーの
ssh
キーを作成します。# su - kni -c "ssh-keygen -f /home/kni/.ssh/id_rsa -N ''"
プロビジョナーノードで新規ユーザーとしてログインします。
# su - kni
Red Hat Subscription Manager を使用してプロビジョナーノードを登録します。
$ sudo subscription-manager register --username=<user> --password=<pass> --auto-attach
$ sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms \ --enable=rhel-8-for-x86_64-baseos-rpms
注記Red Hat Subscription Manager の詳細は、Using and Configuring Red Hat Subscription Manager を参照してください。
以下のパッケージをインストールします。
$ sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
ユーザーを変更して、新たに作成したユーザーに
libvirt
グループを追加します。$ sudo usermod --append --groups libvirt kni
firewalld
を起動します。$ sudo systemctl start firewalld
firewalld
を有効にします。$ sudo systemctl enable firewalld
http
サービスを起動します。$ sudo firewall-cmd --zone=public --add-service=http --permanent
$ sudo firewall-cmd --reload
libvirtd
サービスを開始して、これを有効にします。$ sudo systemctl enable libvirtd --now
プロビジョナーノードの ID を設定します。
$ PRVN_HOST_ID=<ID>
以下の
ibmcloud
コマンドで ID を表示できます。$ ibmcloud sl hardware list
パブリックサブネットの ID を設定します。
$ PUBLICSUBNETID=<ID>
以下の
ibmcloud
コマンドで ID を表示できます。$ ibmcloud sl subnet list
プライベートサブネットの ID を設定します。
$ PRIVSUBNETID=<ID>
以下の
ibmcloud
コマンドで ID を表示できます。$ ibmcloud sl subnet list
provisioner ノードのパブリック IP アドレスを設定します。
$ PRVN_PUB_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | jq .primaryIpAddress -r)
パブリックネットワークの CIDR を設定します。
$ PUBLICCIDR=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .cidr)
パブリックネットワークの IP アドレスおよび CIDR を設定します。
$ PUB_IP_CIDR=$PRVN_PUB_IP/$PUBLICCIDR
パブリックネットワークのゲートウェイを設定します。
$ PUB_GATEWAY=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .gateway -r)
プロビジョナーノードのプライベート IP アドレスを設定します。
$ PRVN_PRIV_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | \ jq .primaryBackendIpAddress -r)
プライベートネットワークの CIDR を設定します。
$ PRIVCIDR=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .cidr)
プライベートネットワークの IP アドレスおよび CIDR を設定します。
$ PRIV_IP_CIDR=$PRVN_PRIV_IP/$PRIVCIDR
プライベートネットワークのゲートウェイを設定します。
$ PRIV_GATEWAY=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .gateway -r)
baremetal
およびprovisioning
ネットワークのブリッジを設定します。$ sudo nohup bash -c " nmcli --get-values UUID con show | xargs -n 1 nmcli con delete nmcli connection add ifname provisioning type bridge con-name provisioning nmcli con add type bridge-slave ifname eth1 master provisioning nmcli connection add ifname baremetal type bridge con-name baremetal nmcli con add type bridge-slave ifname eth2 master baremetal nmcli connection modify baremetal ipv4.addresses $PUB_IP_CIDR ipv4.method manual ipv4.gateway $PUB_GATEWAY nmcli connection modify provisioning ipv4.addresses 172.22.0.1/24,$PRIV_IP_CIDR ipv4.method manual nmcli connection modify provisioning +ipv4.routes \"10.0.0.0/8 $PRIV_GATEWAY\" nmcli con down baremetal nmcli con up baremetal nmcli con down provisioning nmcli con up provisioning init 6 "
注記eth1
およびeth2
の場合は、必要に応じて適切なインターフェイス名を置き換えます。必要な場合は、
provisioner
ノードに対して再度 SSH を実行します。# ssh kni@provisioner.<cluster-name>.<domain>
接続ブリッジが適切に作成されていることを確認します。
$ sudo nmcli con show
出力例
NAME UUID TYPE DEVICE baremetal 4d5133a5-8351-4bb9-bfd4-3af264801530 bridge baremetal provisioning 43942805-017f-4d7d-a2c2-7cb3324482ed bridge provisioning virbr0 d9bca40f-eee1-410b-8879-a2d4bb0465e7 bridge virbr0 bridge-slave-eth1 76a8ed50-c7e5-4999-b4f6-6d9014dd0812 ethernet eth1 bridge-slave-eth2 f31c3353-54b7-48de-893a-02d2b34c4736 ethernet eth2
pull-secret.txt
ファイルを作成します。$ vim pull-secret.txt
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
dnsmasq
設定ファイルを開きます。$ sudo vi /etc/dnsmasq.conf
以下の設定を
dnsmasq
設定ファイルに追加します。interface=baremetal except-interface=lo bind-dynamic log-dhcp dhcp-range=<ip_addr>,<ip_addr>,<pub_cidr> 1 dhcp-option=baremetal,121,0.0.0.0/0,<pub_gateway>,<prvn_priv_ip>,<prvn_pub_ip> 2 dhcp-hostsfile=/var/lib/dnsmasq/dnsmasq.hostsfile
- 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
<publicsubnetid>
をパブリックサブネットの ID に置き換えます。<pub_gateway>
の値を取得するには、以下を実行します。$ ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .gateway -r
<publicsubnetid>
をパブリックサブネットの ID に置き換えます。<prvn_priv_ip>
の値を取得するには、以下を実行します。$ ibmcloud sl hardware detail <id> --output JSON | \ jq .primaryBackendIpAddress -r
<id>
をプロビジョナーノードの ID に置き換えます。<prvn_pub_ip>
の値を取得するには、以下を実行します。$ ibmcloud sl hardware detail <id> --output JSON | jq .primaryIpAddress -r
<id>
をプロビジョナーノードの ID に置き換えます。クラスターのハードウェアのリストを取得します。
$ ibmcloud sl hardware list
各ノードの MAC アドレスおよび IP アドレスを取得します。
$ ibmcloud sl hardware detail <id> --output JSON | \ jq '.networkComponents[] | \ "\(.primaryIpAddress) \(.macAddress)"' | grep -v null
<id>
をノードの ID に置き換えてください。出力例
"10.196.130.144 00:e0:ed:6a:ca:b4" "141.125.65.215 00:e0:ed:6a:ca:b5"
パブリックネットワークの MAC アドレスと IP アドレスを書き留めておきます。プライベートネットワークの MAC アドレスを別々に書留ておきます。これは、後に
install-config.yaml
ファイルで使用します。各ノードにパブリックbaremetal
ネットワークのパブリック MAC アドレスと IP アドレスがすべてあり、プライベートのprovisioning
の MAC アドレスになるまで、この手順を繰り返します。各ノードのパブリック
baremetal
ネットワークの MAC アドレスと IP アドレスペアをdnsmasq.hostsfile
ファイルに追加します。$ sudo vim /var/lib/dnsmasq/dnsmasq.hostsfile
入力の例
00:e0:ed:6a:ca:b5,141.125.65.215,master-0 <mac>,<ip>,master-1 <mac>,<ip>,master-2 <mac>,<ip>,worker-0 <mac>,<ip>,worker-1 ...
<mac>,<ip>
を、対応するノード名のパブリック MAC アドレスとパブリック IP アドレスに置き換えます。dnsmasq
を開始します。$ sudo systemctl start dnsmasq
dnsmasq
を有効にして、ノードのブート時に起動できるようにします。$ sudo systemctl enable dnsmasq
dnsmasq
が実行中であることを確認します。$ sudo systemctl status dnsmasq
出力例
● dnsmasq.service - DNS caching server. Loaded: loaded (/usr/lib/systemd/system/dnsmasq.service; enabled; vendor preset: disabled) Active: active (running) since Tue 2021-10-05 05:04:14 CDT; 49s ago Main PID: 3101 (dnsmasq) Tasks: 1 (limit: 204038) Memory: 732.0K CGroup: /system.slice/dnsmasq.service └─3101 /usr/sbin/dnsmasq -k
UDP プロトコルでポート
53
および67
を開きます。$ sudo firewall-cmd --add-port 53/udp --permanent
$ sudo firewall-cmd --add-port 67/udp --permanent
masquerade を使用して、外部ゾーンに
provisioning
を追加します。$ sudo firewall-cmd --change-zone=provisioning --zone=external --permanent
このステップにより、管理サブネットへの IPMI 呼び出しのネットワークアドレス変換が確保されます。
firewalld
設定を再読み込みします。$ sudo firewall-cmd --reload
2.3. OpenShift Container Platform インストーラーの取得
インストールプログラムの stable-4.x
バージョンと選択したアーキテクチャーを使用して、OpenShift Container Platform の一般公開の安定バージョンをデプロイします。
$ export VERSION=stable-4.15
$ 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}')
2.4. OpenShift Container Platform インストールのデプロイメント
インストーラーを取得したら、インストーラーを展開します。
手順
環境変数を設定します。
$ export cmd=openshift-baremetal-install
$ export pullsecret_file=~/pull-secret.txt
$ export extract_dir=$(pwd)
oc
バイナリーを取得します。$ curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux.tar.gz | tar zxvf - oc
インストーラーを実行します。
$ sudo cp oc /usr/local/bin
$ oc adm release extract --registry-config "${pullsecret_file}" --command=$cmd --to "${extract_dir}" ${RELEASE_IMAGE}
$ sudo cp openshift-baremetal-install /usr/local/bin
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
など、環境に合わせて適切な変数を変更します。apiVersion: v1 baseDomain: <domain> metadata: name: <cluster_name> networking: machineNetwork: - cidr: <public-cidr> networkType: OVNKubernetes compute: - name: worker replicas: 2 controlPlane: name: master replicas: 3 platform: baremetal: {} platform: baremetal: apiVIP: <api_ip> ingressVIP: <wildcard_ip> provisioningNetworkInterface: <NIC1> provisioningNetworkCIDR: <CIDR> hosts: - name: openshift-master-0 role: master bmc: address: ipmi://10.196.130.145?privilegelevel=OPERATOR 1 username: root password: <password> bootMACAddress: 00:e0:ed:6a:ca:b4 2 rootDeviceHints: deviceName: "/dev/sda" - name: openshift-worker-0 role: worker bmc: address: ipmi://<out-of-band-ip>?privilegelevel=OPERATOR 3 username: <user> password: <password> bootMACAddress: <NIC1_mac_address> 4 rootDeviceHints: deviceName: "/dev/sda" pullSecret: '<pull_secret>' sshKey: '<ssh_pub_key>'
注記ibmcloud
コマンドラインユーティリティーを使用して、パスワードを取得できます。$ ibmcloud sl hardware detail <id> --output JSON | \ jq '"(.networkManagementIpAddress) (.remoteManagementAccounts[0].password)"'
<id>
をノードの ID に置き換えてください。クラスター設定を保存するディレクトリーを作成します。
$ mkdir ~/clusterconfigs
install-config.yaml
ファイルをディレクトリーにコピーします。$ cp install-config.yaml ~/clusterconfigs
OpenShift Container Platform クラスターをインストールする前に、すべてのベアメタルノードの電源がオフになっていることを確認します。
$ ipmitool -I lanplus -U <user> -P <password> -H <management_server_ip> power off
以前に試行したデプロイメントにより古いブートストラップリソースが残っている場合は、これを削除します。
for i in $(sudo virsh list | tail -n +3 | grep bootstrap | awk {'print $2'}); do sudo virsh destroy $i; sudo virsh undefine $i; sudo virsh vol-delete $i --pool $i; sudo virsh vol-delete $i.ign --pool $i; sudo virsh pool-destroy $i; sudo virsh pool-undefine $i; done
2.6. 追加の install-config
パラメーター
install-config.yaml
ファイルに必要なパラメーター hosts
パラメーターおよび bmc
パラメーターについては、以下の表を参照してください。
パラメーター | デフォルト | 説明 |
---|---|---|
|
クラスターのドメイン名。例: | |
|
|
ノードのブートモード。オプションは、 |
|
ブートストラップノードの静的ネットワーク DNS。ベアメタルネットワークに Dynamic Host Configuration Protocol (DHCP) サーバーがない場合に、静的 IP アドレスを使用してクラスターをデプロイする場合は、この値を設定する必要があります。この値を設定しないと、インストールプログラムが | |
| ブートストラップ 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) を示すブール値。 |
使用例
- name: master-0 role: master bmc: address: ipmi://10.10.0.3:6203 username: admin password: redhat bootMACAddress: de:ad:be:ef:00:40 rootDeviceHints: deviceName: "/dev/sda"
2.8. OpenShift Container Platform マニフェストの作成
OpenShift Container Platform マニフェストを作成します。
$ ./openshift-baremetal-install --dir ~/clusterconfigs create manifests
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
2.9. OpenShift Container Platform インストーラーを使用したクラスターのデプロイ
OpenShift Container Platform インストーラーを実行します。
$ ./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
Legal Notice
Copyright © 2024 Red Hat, Inc.
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.