k8s中的pod域名解析失败定位案例

问题描述

我在k8s中启动了一个Host网络模式的pod,这个pod的域名解析失败了。

定位步骤

  • kubectl exec -it [pod_name] -- bash进入pod后台,查看/etc/resolv.conf,发现nameserver配的有问题。这里我预期的nameserver应该使用宿主机的,但实际上用的是coredns的。
    在这里插入图片描述
  • 再查看pod的dnsPolicy,发现dns策略为ClusterFirstWithHostNet,这个策略使得Host模式的Pod仍然使用k8s的dns;我需要使用宿主机的dns,所以需要把这个dns策略改为’Default’
kubectl -n sg-fps get deploy -o yaml | grep dnsPolicy
        dnsPolicy: ClusterFirstWithHostNet
  • 通过kubectl -n kube-system get cm/coredns -o yaml查看coredns配置,发现coredns里配置的dnsserver 为10.204.16.1,这个IP我也配错了,再加上之前pod里配的策略是ClusterFirstWithHostNet,这两个错误同时出现,导致pod域名解析失败。
    在这里插入图片描述

解决方法

把Pod的dnsPolicy改成’Default’,k8s的四种DNS策略参考:link

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pcj_888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值