我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

背景

我们公司采用的是混合云,云环境k8s中处理数据的pod无法正常解析公司内部存储的DNS域名,导致数据处理程序失败。但是core-dns所在的pod可以解析该域名。

分析

1. 域名根本无法解析

查看的配置文件如下

apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health {
           lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        prometheus :9153
        forward . /etc/resolv.conf {
           max_concurrent 1000
        }
        cache 30
        loop
        reload
        loadbalance
    }
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system

/etc/.conf配置表示当内部解析失败时,将DNS解析请求转发到主机上.conf文件中配置的DNS解析请求。当主机上有多个DNS解析请求时,默认方式是随机转发请求,如果请求失败则返回错误。

检查数据处理容器中的.conf文件,确认指向的是core-dns,对应的core-dns日志正常显示,无任何异常信息。可以推断是启动节点时,节点上的文件无法解析指定的存储域名,应该是后期手动添加的。跟相关运维人员确认后,确实是后期添加的。所以解决办法是删除pod,在节点上重建。DNS解析正常,但是尝试几次后发现无法解析。

2. 域名偶尔无法解析

在问题1中我们说了当主机上有多个host时,内部默认采用的方式是随机转发,失败则返回错误。因为是云环境,我们添加公司之后,云环境本身在.conf文件中有自己的配置,导致转发方式选择了云环境自己的dns,无法解析内部存储的域名。所以解决办法是修改.conf文件,先在主机.conf中添加我们自己的,然后修改配置,设置为,然后重建pod即可。具体可以参考常用插件配置。修改后的配置文件如下

apiVersion: v1
data:
  Corefile: |
    .:53 {
        errors
        health {
           lameduck 5s
        }
        ready
        kubernetes cluster.local in-addr.arpa ip6.arpa {
           pods insecure
           fallthrough in-addr.arpa ip6.arpa
           ttl 30
        }
        prometheus :9153
        forward . /etc/resolv.conf {
           max_concurrent 1000
           policy sequential
        }
        cache 30
        loop
        reload
        loadbalance
    }
kind: ConfigMap
metadata:
  name: coredns
  namespace: kube-system

至此DNS解析的问题就解决了,通常k8s使用DNS时,会出现k8s集群内部解析失败的问题(DNS A或者AAAA记录),通常可以检查插件配置是否正确,通常部分云环境默认的插件配置可能无法正常使用,可以参考核心DNS文档修改相关配置解决相关问题。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/5913.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线