You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级至Ubuntu 20.04后MicroK8s本地DNS解析失效,UFW规则异常导致Pod无法访问本地DNS服务器

升级至Ubuntu 20.04后MicroK8s本地DNS解析失效,UFW规则异常导致Pod无法访问本地DNS服务器

我碰到过不少类似的情况,Ubuntu 20.04的UFW默认规则确实比之前的版本更严格,而且升级过程中很可能把MicroK8s之前配置的网络规则给冲掉了。咱们一步步来排查和解决:

1. 先确认UFW的转发策略与当前规则

首先查看UFW的详细状态,重点看转发策略和现有规则:

sudo ufw status verbose

如果看到Forwarding: deny,这大概率是问题根源——Ubuntu 20.04默认会阻止跨网络接口的转发,而MicroK8s的Pod运行在独立的虚拟子网(比如cbr0接口),无法直接访问主机的DNS服务。

2. 定位MicroK8s的容器子网

你需要先确定MicroK8s给Pod分配的IP范围,执行以下命令查看节点的PodCIDR:

microk8s kubectl get nodes -o wide

输出里的PodCIDR字段就是容器子网,比如常见的10.1.0.0/16或者10.152.183.0/24。

3. 添加精准的UFW规则允许DNS访问

针对容器子网和主机DNS端口(53,UDP和TCP都要覆盖)添加规则,假设你的容器子网是10.1.0.0/16,主机IP是192.168.0.50:

# 允许容器子网访问主机UDP 53端口(DNS主要用UDP)
sudo ufw allow from 10.1.0.0/16 to 192.168.0.50 port 53 proto udp
# 允许容器子网访问主机TCP 53端口(用于大尺寸DNS响应)
sudo ufw allow from 10.1.0.0/16 to 192.168.0.50 port 53 proto tcp

如果知道MicroK8s的虚拟网卡(通常是cbr0),也可以用网卡来限定规则,更安全:

sudo ufw allow in on cbr0 to 192.168.0.50 port 53 proto udp
sudo ufw allow in on cbr0 to 192.168.0.50 port 53 proto tcp

4. 验证规则是否生效

添加规则后,重启UFW确保生效:

sudo ufw disable && sudo ufw enable

然后进入一个测试Pod验证DNS解析:

microk8s kubectl run -it --rm busybox --image=busybox:1.35 -- nslookup your-local-service-domain

如果能正常返回IP,说明问题解决。

5. 备选方案:调整UFW全局转发策略(更开放)

如果上面的精准规则没起作用,你可以临时放宽UFW的全局转发策略来排查:
编辑/etc/default/ufw文件,找到以下行:

DEFAULT_FORWARD_POLICY="DENY"

修改为:

DEFAULT_FORWARD_POLICY="ACCEPT"

保存后重启UFW:

sudo ufw disable && sudo ufw enable

注意:这种方式会允许所有转发流量,排查完成后建议换回精准规则,保证安全性。

6. 特殊情况:UFW与nftables冲突

Ubuntu 20.04默认可能用nftables代替了传统iptables,而MicroK8s依赖iptables规则,可能导致冲突。你可以切换回iptables-legacy:

update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy

然后重启UFW和MicroK8s:

sudo systemctl restart ufw
sudo microk8s stop && sudo microk8s start

备注:内容来源于stack exchange,提问作者irwinr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:45:29