k3s树莓派4集群主节点重装后Pod通过ClusterIP访问服务连通性异常
故障根因分析
- DNS解析异常根因:主节点重装系统后,本地
/etc/resolv.conf默认配置错误,如指向不可达的本地回环地址或无效DNS服务器,CoreDNS默认将集群内部域名解析请求转发到节点本地resolv.conf,导致跨节点DNS请求失败。你手动修改CoreDNS转发规则到主节点物理IP属于临时绕路方案,并未解决根本问题。 - ClusterIP访问丢包根因:主节点重装系统后重置了内核参数、防火墙规则或CNI插件的转发规则,导致Kubernetes服务转发链路断裂,无法将ClusterIP的流量路由到对应后端Pod。
解决方案
第一步:修复DNS解析默认配置
- 登录主节点查看本地
/etc/resolv.conf,将其中无效的nameserver替换为可用的上游DNS(如公共DNS 114.114.114.114或内网路由器地址192.168.1.1)。 - 重置CoreDNS配置,将之前修改的
forward . 192.168.1.101改回默认配置forward . /etc/resolv.conf,执行以下命令重启CoreDNS Pod:
kubectl rollout restart deployment coredns -n kube-system
- 后续验证DNS解析是否正常,无需手动指定转发到主节点物理IP。
第二步:修正主节点内核参数
登录主节点执行以下命令检查并开启必要内核转发参数:
# 检查IP转发是否开启 sysctl net.ipv4.ip_forward # 如果返回值不为1则执行以下命令永久开启 echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf # 检查网桥过滤规则是否开启 sysctl net.bridge.bridge-nf-call-iptables sysctl net.bridge.bridge-nf-call-ip6tables # 如返回值不为1则执行以下命令永久开启 echo "net.bridge.bridge-nf-call-iptables=1" >> /etc/sysctl.conf echo "net.bridge.bridge-nf-call-ip6tables=1" >> /etc/sysctl.conf # 加载配置生效 sysctl -p
第三步:放行集群必要端口和流量规则
如果主节点开启了ufw防火墙,执行以下命令放行集群所需端口和内部网段流量:
# 放行flannel VXLAN通信端口 ufw allow 8472/udp # 放行kube-apiserver、kubelet端口 ufw allow 6443/tcp ufw allow 10250/tcp # 放行Pod和ClusterIP网段内部流量 ufw allow in on cni0 from 10.42.0.0/16 to any ufw allow in on flannel.1 from 10.42.0.0/16 to any ufw allow from 10.43.0.0/16 to any
如果未启用ufw,检查主节点iptables默认规则,删除拒绝内部网段流量的DROP规则,也可直接执行以下命令清空原有iptables规则:
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X
第四步:重置集群转发规则同步
- 停止所有节点的k3s服务:
主节点执行:
systemctl stop k3s
所有工作节点执行:
systemctl stop k3s-agent
- 所有节点执行第三步中的清空iptables规则命令。
- 先启动主节点k3s服务:
systemctl start k3s
待主节点状态恢复Ready后,再启动所有工作节点k3s-agent服务:
systemctl start k3s-agent
等待3-5分钟让kube-proxy和flannel完成规则同步。
第五步:验证故障恢复
执行你之前的测试命令验证是否恢复:
- DNS解析测试:
kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- nslookup redis-master.database.svc.cluster.local
- ClusterIP连通性测试:
kubectl run -it --rm --restart=Never busybox --image=busybox:1.28 -- ping 10.43.115.159
内容的提问来源于stack exchange,提问作者psalkowski
相关产品推荐
相关产品推荐

