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