今日在测试pod内部通信外部网络时发现无法ping通
测试访问www.baidu.com发现还是ping不通, 排查coredns是否有问题
[root@devops ~]# kubectl edit cm coredns -n kube-system
发现cm配置正常,排查coredns日志
[root@devops ~]# kubectl logs -n kube-system coredns-66f779496c-2tjgf
显示找不到地址通信,而不是连接超时,这时候就想到可能是防火墙未放开,一检查果然如此。
由于我是测试环境,偷懒直接把防火墙关闭。再次测试,连接恢复正常!!
顺带提一下字段dnsPolicy
Pod的DNS策略
- Default: 继承节点的DNS配置;
- ClusterFirst: 使用coredns作为DNS配置;
-
ClusterFirstWithHostNet:
- 当Pod.spec.hostNetwork=true时,Pod的DNS策略被强制转换为Default,即继承节点的DNS配置;
- 若Pod要使用coredns作为DNS配置,则需配置pod.spec.dnsPolicy=ClusterFirstWithHostNet;
- None: 没有DNS配置;
若未指定dnsPolicy,则默认=ClusterFirst。