2.2. パブリックサブネットの設定
すべての OpenShift Container Platform クラスターノードはパブリックサブネット上になければなりません。IBM Cloud® Bare Metal (Classic) は、サブネット上に DHCP サーバーを提供しません。プロビジョナーノードで個別に設定します。
プロビジョナーノードの準備時に定義された BASH 変数をリセットする必要があります。準備後にプロビジョナーノードを再起動すると、BASH 変数が以前に設定された変数が削除されます。
手順
dnsmasqをインストールします。$ sudo dnf install dnsmasqdnsmasq設定ファイルを開きます。$ 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 dnsmasqdnsmasqを有効にして、ノードのブート時に起動できるようにします。$ sudo systemctl enable dnsmasqdnsmasqが実行中であることを確認します。$ 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 -kUDP プロトコルでポート
53および67を開きます。$ sudo firewall-cmd --add-port 53/udp --permanent$ sudo firewall-cmd --add-port 67/udp --permanentmasquerade を使用して、外部ゾーンに
provisioningを追加します。$ sudo firewall-cmd --change-zone=provisioning --zone=external --permanentこのステップにより、管理サブネットへの IPMI 呼び出しのネットワークアドレス変換が確保されます。
firewalld設定を再読み込みします。$ sudo firewall-cmd --reload