2.2. 配置公共子网
所有 OpenShift Container Platform 集群节点都必须位于公共子网中。IBM Cloud® Bare Metal (Classic) 不会在子网上提供 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