首页 > 其他 > 详细

踩坑记:k8s的pod无法通过域名访问外网

时间:2020-04-29 11:22:05      阅读:447      评论:0      收藏:0      [点我收藏+]

通过kubeoperator安装k8s集群,因把集群的主域名和在用的公共域名设为相同,导致无法通过域名访问外网

在用的公共域名再DNS提供商设置泛域名,把找不到的子域名重定向到固定页面

集群的主域名写入宿主机的/etc/resolve.conf的search域

pod继承宿主机的/etc/resolve.conf,其中nameserver为k8s的dns服务(coredns),使得访问任何域名都会先被coredns解析,检查是否为集群内部服务,若不是,再使用宿主机的dns解析

在pod内访问任何外网域名都会被先加上主域名后缀去解析,结果都被DNS重定向

解决方式:

  1. 集群的主域名不要和在用的公共域名重合
  2. 将deployment的dnsPolicy设为Default,使得pod的dns直接为宿主机的dns,而不是集群coredns
  3. 调整dnsConfig中的ndots,将其调为1或o,使得访问的域名只有点数小于1或无时,才会先加上search域去解析

以上第2和3种方法会导致访问集群内部域名时又出现问题,只能用于临时规避,最好时更改集群的主域名

踩坑记:k8s的pod无法通过域名访问外网

原文:https://www.cnblogs.com/woncode/p/12800757.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!