2.2. 配置公共子网
所有 OpenShift Container Platform 集群节点都必须位于公共子网中。{ibmcloudBMRegProductName} 不在子网上提供 DHCP 服务器。在 provisioner 节点上单独设置它。
您必须重置准备 provisioner 节点时定义的 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>
实例替换为一个来自公共子网的未使用的 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
将
<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>
替换为 provisioner 节点的 ID。要检索
<prvn_pub_ip>
的值,请执行:$ ibmcloud sl hardware detail <id> --output JSON | jq .primaryIpAddress -r
将
<id>
替换为 provisioner 节点的 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 地址。将每个节点的 public
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 为外部区添加
置备
:$ sudo firewall-cmd --change-zone=provisioning --zone=external --permanent
这一步可确保将 IPMI 调用的网络地址转换为管理子网。
重新载入
firewalld
配置:$ sudo firewall-cmd --reload