2.2. 配置公共子网
所有 OpenShift Container Platform 集群节点都必须位于公共子网中。IBM Cloud® Bare Metal (Classic) 不会在子网上提供 DHCP 服务器。在 provisioner 节点上单独设置它。
您必须重置准备 provisioner 节点时定义的 BASH 变量。在准备完置备程序节点后,重新引导置备程序节点将删除之前设置的 BASH 变量。
流程
安装
dnsmasq
:sudo dnf install dnsmasq
$ sudo dnf install dnsmasq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开
dnsmasq
配置文件:sudo vi /etc/dnsmasq.conf
$ sudo vi /etc/dnsmasq.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
dnsmasq
配置文件中添加以下配置:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 设置 DHCP 范围。将
<ip_addr>
实例替换为一个来自公共子网的未使用的 IP 地址,以便baremetal
网络的dhcp-range
并以相同的 IP 地址开始和结尾。将<pub_cidr>
替换为公共子网的 CIDR。 - 2
- 设置 DHCP 选项。将
<pub_gateway>
替换为baremetal
网络的网关 IP 地址。将<prvn_priv_ip>
替换为provisioning
网络上 provisioner 节点的专用 IP 地址的 IP 地址。将<prvn_pub_ip>
替换为baremetal
网络中 provisioner 节点的公共 IP 地址的 IP 地址。
要检索
<pub_cidr>
的值,请执行:ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .cidr
$ ibmcloud sl subnet detail <publicsubnetid> --output JSON | jq .cidr
Copy 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 -r
Copy 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 -r
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<id>
替换为 provisioner 节点的 ID。要检索
<prvn_pub_ip>
的值,请执行:ibmcloud sl hardware detail <id> --output JSON | jq .primaryIpAddress -r
$ ibmcloud sl hardware detail <id> --output JSON | jq .primaryIpAddress -r
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<id>
替换为 provisioner 节点的 ID。获取集群的硬件列表:
ibmcloud sl hardware list
$ ibmcloud sl hardware list
Copy 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 null
Copy 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 地址。将每个节点的 public
baremetal
网络的 MAC 和 IP 地址对添加到dnsmasq.hostsfile
文件中:sudo vim /var/lib/dnsmasq/dnsmasq.hostsfile
$ sudo vim /var/lib/dnsmasq/dnsmasq.hostsfile
Copy 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 dnsmasq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启用
dnsmasq
,以便在引导节点时启动:sudo systemctl enable dnsmasq
$ sudo systemctl enable dnsmasq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证
dnsmasq
是否正在运行:sudo systemctl status dnsmasq
$ sudo systemctl status dnsmasq
Copy 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 --permanent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo firewall-cmd --add-port 67/udp --permanent
$ sudo firewall-cmd --add-port 67/udp --permanent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 masquerade 为外部区添加
置备
:sudo firewall-cmd --change-zone=provisioning --zone=external --permanent
$ sudo firewall-cmd --change-zone=provisioning --zone=external --permanent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这一步可确保将 IPMI 调用的网络地址转换为管理子网。
重新载入
firewalld
配置:sudo firewall-cmd --reload
$ sudo firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow