之前在建立openshift集群时,是直接修改各个节点的/etc/hosts文件,加上静态的域名解析。当节点数量很多或者后续执行集群节点扩容时,都需要修改大量的/etc/hosts文件,很麻烦。
这里选择在本地搭建一个DNS服务器。我选择将DNS服务器部署到了Master节点上。
登录Master节点执行操作。
修改/etc/hosts配置
根据自己的实际情况配置,整合之前配置的静态域名解析。
添加dnsmasq配置
添加wildcard域名指向。创建文件/etc/dnsmasq.d/openshift-cluster.conf,内容如下:
10.126.3.207是我master的ip。
local=/example.com/
address=/.apps.example.com/10.126.3.207
启动dnsmasq服务
# systemctl start dnsmasq
# systemctl enable dnsmasq
配置iptables
sed指令如下:
# sed -i '/.*--dport 22 -j ACCEPT.*/a\-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT' /etc/sysconfig/iptables
# sed -i '/.*--dport 22 -j ACCEPT.*/a\-A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT' /etc/sysconfig/iptables
重启iptables
# systemctl restart iptables
配置Master域名解析
# nmcli con mod $(nmcli con show |grep -v docker|head -2|tail -1|awk '{print $1}') ipv4.dns $(hostname -i)
# systemctl restart NetworkManager
nmcli con show |grep -v docker|head -2|tail -1|awk ‘{print $1}’是拿网卡名。
hostname -i是拿ip地址。
配置各个Node节点的域名解析
- 添加dnsmasq配置
创建文件/etc/dnsmasq.d/openshift-cluster-node.conf,内容如下:
10.126.3.207是我master的ip。
server=10.126.3.207
- 重启dnsmasq
# systemctl restart dnsmasq
# systemctl enable dnsmasq
- 配置域名解析
# nmcli con mod $(nmcli con show |grep -v docker|head -2|tail -1|awk '{print $1}') ipv4.dns $(hostname -i)
# systemctl restart NetworkManager
测试DNS解析
在node2节点上进行测试,node2的/etc/hosts文件内容如下:
可以看出我已经删除了node2的静态域名解析。
测试
# ping master.example.com -c 3
# ping node1.example.com -c 3
# ping node2.example.com -c 3
域名解析正确。