Kubernetes 1.25中mysql57-1.mysql-57 Pod域名无法解析求助
Kubernetes 1.25中Pod DNS解析异常(mysql57-1.mysql-57无反向解析记录)的原因与解决方法
问题原因分析
- StatefulSet DNS注册流程异常:你应该是用StatefulSet部署的MySQL Pod,这类Pod默认会生成固定格式的DNS记录(
pod-name.service-name),但如果mysql57-1启动时,kube-controller-manager同步EndpointSlice延迟、Pod网络就绪状态未上报成功,或者CoreDNS未及时抓取到新的Endpoint数据,就会导致该Pod的DNS记录没被正确注册,反向解析自然查不到。 - Pod网络就绪状态异常:K8s 1.25里Pod的
Ready状态包含容器就绪和网络就绪两个维度,如果mysql57-1的网卡初始化失败、CNI插件配置出问题,导致网络就绪状态不达标,kube-controller-manager不会把它的IP同步到对应Service的EndpointSlice,CoreDNS也就拿不到映射关系。 - CoreDNS缓存或配置问题:CoreDNS开启缓存后可能保留了旧的Endpoint数据;或者
kubernetes插件没正确配置监听EndpointSlice(1.25默认用EndpointSlice替代Endpoint),导致新Pod的DNS记录无法加载。
修复方法
1. 检查Pod与EndpointSlice状态
先确认mysql57-1的状态和对应Service的EndpointSlice:
# 查看Pod的详细状态,重点看Conditions里的NetworkReady和Ready字段 kubectl describe pod mysql57-1 -n <你的命名空间> # 查看对应Service的EndpointSlice,确认是否包含mysql57-1的IP kubectl get endpointslices -l kubernetes.io/service-name=mysql-57 -n <你的命名空间>
如果EndpointSlice里没有mysql57-1的IP,说明Pod网络就绪有问题,去排查CNI插件(比如Calico、Flannel)的日志,或者直接重启Pod强制重新注册网络。
2. 强制重启Pod触发DNS重新注册
如果Pod状态正常但DNS记录缺失,重启mysql57-1触发重新注册流程:
kubectl delete pod mysql57-1 -n <你的命名空间> # StatefulSet会自动重建该Pod
重启后在集群内其他Pod中测试解析:
kubectl exec -it <测试Pod名称> -- nslookup mysql57-1.mysql-57
3. 清理CoreDNS缓存并检查配置
- 查看CoreDNS配置,确认
kubernetes插件支持EndpointSlice:
kubectl get configmap coredns -n kube-system -o yaml
- 清理CoreDNS缓存:
# 找到CoreDNS Pod kubectl get pods -n kube-system -l k8s-app=kube-dns # 发送缓存清理请求 kubectl exec -it <coredns-pod-name> -n kube-system -- curl http://localhost:9153/debug/flush
4. 手动添加DNS记录(临时应急方案)
如果以上方法都无效,可以通过CoreDNS的hosts插件手动添加映射(注意这是临时方案,Pod重建后IP可能变化):
- 编辑CoreDNS的ConfigMap:
kubectl edit configmap coredns -n kube-system
- 在
Corefile中添加hosts段(放在kubernetes插件之前):
.:53 { hosts { <mysql57-1的PodIP> mysql57-1.mysql-57.<你的命名空间>.svc.cluster.local mysql57-1.mysql-57 fallthrough } kubernetes cluster.local in-addr.arpa ip6.arpa { pods insecure fallthrough in-addr.arpa ip6.arpa ttl 30 } # 保留其他原有配置 }
- 重启CoreDNS Pod使配置生效:
kubectl rollout restart deployment coredns -n kube-system
内容的提问来源于stack exchange,提问作者何呵呵
相关产品推荐
相关产品推荐

