1. 给主机添加 DNS
1.1 CentOS
第一种方法: /etc/resolv.conf
管理 DNS
禁用 NetworkManager
如果不禁用 NetworkManager
,在重启 NetworkManager
组件之后,直接在 /etc/resolv.conf
中添加的 DNS 记录会丢失。
|
| vim /etc/NetworkManager/NetworkManager.conf | | | | [main] | | dns=none |
|
在 [main]
部分添加 dns=none
。
此时重启 NetworkManager
,对已经添加到 /etc/resolv.conf
的记录无影响
1
|
systemctl restart network
|
第二种方式: NetworkManager
管理 DNS
查看本地网络
|
| nmcli connection show | | | | NAME UUID TYPE DEVICE | | ens192 03da7500-2101-c722-2438-d0d006c28c73 ethernet ens192 | | br-006fb59057ed 07e61d55-0c2e-4d63-bba9-52854cf9ad75 bridge br-006fb59057ed | | virbr0 ff8cf6fe-0613-4ba8-ac32-0afd2c6044b6 bridge virbr0 |
|
修改 NetworkManager 网卡配置文件
获取到本地网卡名为 ens192
之后,即可编辑该网卡的配置文件,添加 DNS。
|
| vim /etc/sysconfig/network-scripts/ifcfg-ens192 | | | | | | DNS1=119.29.29.29 | | DNS2=2114.114.114.114 |
|
重启 NetworkManager 生成配置文件
需要注意的是,此时在 /etc/resolv.conf
文件中的 DNS 记录会被清理掉,请注意备份。
1
|
cp /etc/resolv.conf /etc/resolv.conf.backup-$(date +%Y%m%d-%H%M%S)
|
1
|
systemctl restart network
|
查看生成的 /etc/resolv.conf
文件
|
| cat /etc/resolv.conf | | | | | | nameserver 119.29.29.29 | | nameserver 114.114.114.114 |
|
1.2 Ubuntu
由于 resolv.conf
是自动生成的,需要改 resolved.conf
才行。
|
| vim /etc/systemd/resolved.conf | | | | [Resolve] | | DNS=114.114.114.114 | | DNS=8.8.8.8 |
|
接着重启 resolve 服务。
1
|
systemctl restart systemd-resolved.service
|
最后,还可以确认下配置是否生效。
2. 重启 Nodelocaldns
在 Pod 中发起外部请求时,解析逻辑是 nodelocaldns -> 节点配置的 DNS -> 返回 IP。
1
|
kubectl -n kube-system rollout restart ds nodelocaldns
|
3. 参考