背景

我司使用的是混合云,云上环境k8s中处理数据的pod不能正常解析公司内部存储的dns域名,从而导致数据处理程序失败,但是core-dns所在的pod上市能解析该域名的。

分析

1. 域名完全不能解析

查看coredns的配置文件如下

apiVersion: v1
data:Corefile: |.:53 {errorshealth {lameduck 5s}readykubernetes cluster.local in-addr.arpa ip6.arpa {pods insecurefallthrough in-addr.arpa ip6.arpattl 30}prometheus :9153forward . /etc/resolv.conf {max_concurrent 1000}cache 30loopreloadloadbalance}
kind: ConfigMap
metadata:name: corednsnamespace: kube-system

其中 forward . /etc/resolv.conf 配置表示使用当coredns内部不能解析的时候,向宿主机上的resolv.conf文件中配置的nameserver转发dns解析请求,当宿主机上namserver有多个时,默认采用的时random的方式随机转发,失败后就返回错误。

查看数据处理容器中的resolv.conf文件,确认对应的nameserver是指向core-dns对应的service的,对应的core-dns的日志显示正常,没有看到异常信息。由此可以推断coredns在该节点上启动的时候该节点上的resolv文件中还没有能解析指定存储域名的nameserver,应该是后续人为手动加上的,找相关的运维人员确认,确实是后续加上的,所以解决方式是删除coredns的pod,让其在该node上重建,测试dns的解析是正常的,但是多尝试几次发现会出现不能解析的情况。

2. 域名完全偶尔不能解析
在问题一中我们说了当宿主机上namserver有多个时,coredns内部默认采用的时random的方式随机转发,失败后就返回错误。由于是在云上的环境,我们添加上公司的nameserver后,云环境自己也有对于的nameserver在resolv.conf文件中配置,导致coredns在转发的时候,random方式选择到云环境自己的dns nameserver的时候,就解析不了我们内部使用的存储的域名,所以解决方式是修改resolv.conf文件,将我们自己的nameserver添加到宿主机resolv.conf第一个nameserver,然后修改coredns配置,将其forward的policy设置为sequential,然后重建coredns的pod,常见的coredns的forward插件的配置请参考coredns forward plugin,修改后的配置文件如下

apiVersion: v1
data:Corefile: |.:53 {errorshealth {lameduck 5s}readykubernetes cluster.local in-addr.arpa ip6.arpa {pods insecurefallthrough in-addr.arpa ip6.arpattl 30}prometheus :9153forward . /etc/resolv.conf {max_concurrent 1000policy sequential}cache 30loopreloadloadbalance}
kind: ConfigMap
metadata:name: corednsnamespace: kube-system

至此,dns解析的问题解决,通常k8s使用dns的时候,还会出现k8s集群内部的service (DNS A或者AAAA记录)解析失败的问题,通常可以查看coredns的的kubernetes的插件是否配置正确,通常一些云环境默认的kubrenetes的插件配置可能不能正常work,可以参考core dns kubernetes plugin的文档进行相关配置的修改来解决相关问题。

k8s core-dns 解析域名异常相关推荐

  1. DNS解析域名的过程

    一.DNS解析域名的过程 1.大的过程可分为三步: (1).在缓存中查找是否之前解析过 (2).在windows系统的host文件中查找 (3).请求DNS服务器 2.小的过程可分为十步: (1).浏 ...

  2. 自建dnspod解析服务器,自建DNS解析及Glue Record 自建DNS解析域名

    对于有自建DNS服务器,并想对外提供服务的,不是说建好DNS服务器,并把自己域名绑定到DNS服务器上(比如绑成ns1.bnxb.com),然后让别人把他们的域名的DNS记录做到你的DNS服务器域名(n ...

  3. Linux配置DNS解析域名

    在很多时候,我们会需用使用域名去访问(特别在集群环境中,经常用到),这个时候我们一般就需要配置DNS去解析.当然在没有DNS服务器的情况,也可以手动维护服务器本身的hosts文件实现.本文阐述2种配置 ...

  4. Tomcat无法进行DNS解析域名

    现象:[ERROR]Unable to set localhost. This prevents creation of a GUID. Cause was: DZ-APP2-SRV: DZ-APP2 ...

  5. 强烈建议使用国外DNS解析域名,解决访问速度和某些访问故障!

    域名解析的基本原理是把域名翻译成IP地址,以便计算机能够进一步通信,传递网址和内容等. 域名劫持就是在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则直接返回假的IP ...

  6. DNS云学堂 | 快速定位DNS解析异常问题,牢记这四种DNS状态码

    DNS的状态码在进行故障排查的时候起着至关重要的作用.在DNS的维护中会经常遇到DNS解析异常问题,通过DNS的状态码可以初步判断DNS解析的异常问题.本期云学堂通过详解DNS状态码的定义,给出常见状 ...

  7. DNS知识点及服务搭建案例和解析状态异常

    概念 DNS (Domain Name System)域名解析服务器 linux 常用软件 BIND:另译 Berkeley Internet Name Domain 作用: 通过将主机名(FQDN ...

  8. K8S DNS解析过程和延迟问题

    一.Linux DNS查询解析原理(对于调用glibc库函数gethostbyname的程序) 我们在浏览器访问www.baidu.com这个域名,dns怎么查询到这台主机呢? 1.在浏览器中输入ww ...

  9. DNS解析时发现域名和IP不一致,访问了该域名会如何(大厂真题)

    这是一道互联网大厂的面试真题,主要考察的就是DNS域名解析的过程是什么样的.以此为背景进而考察安全相关问题.综合性还是很强滴.本文将从案例出发开始一步一步深入. 一.DNS运行原理 1.为什么要DNS ...

  10. Shell脚本实现多选DNS同时批量解析域名IP地址(新更新)

    背景前文 该脚本是在原先<shell脚本实现批量解析域名IP地址(支持多DNS)>的基础上再进行了代码逻辑优化和小细节代码更新,重要变动部分如下: 增加任意多选DNS逻辑,即执行时可不选定 ...

最新文章

  1. 讲一点分布式的基础知识,图解!
  2. Object.prototype.toString.call()检测
  3. 计算机右键管理显示没权限,解决右键 选择打开方式提示没有权限
  4. JUnit规则–引发异常时执行附加验证
  5. Spring IOC容器组件注入的几种方式
  6. 【Flink】Flink 清理过期 Checkpoint 目录的正确姿势
  7. 设计一个高质量的 API 接口
  8. mysql数据库的安全机制管理_mysql管理之安全机制
  9. 如何在win64位下搭载汇编环境?DOSbox教程之debug怎么使用?
  10. Java基础-重要版本
  11. mysql导出导入数据
  12. 推荐一款我私藏已久的串口示波神器
  13. java专用英语词典软件_英语词典app哪个好 5款好用的英语词典app推荐
  14. html语言亚马逊后台,「亚马逊」新手卖家指南-页面与术语
  15. linux如何新增dwployop用户,Linux(Centos)快速搭建SVN
  16. commit规范使用gitmoji全流程 cz-customizable+commitlint+husky+conventional-changelog
  17. 技术解析 | 云游戏在未来如何实现?
  18. 【人脸检测】centerface唐人街探案50fps
  19. 从0到1亿,招商银行App用户增长的“道”与“术”
  20. qq批量登录软件_桔子引流系统qq引流,单人日产1000粉。

热门文章

  1. 《一个人工智能的诞生》学习记录
  2. Software Architecture Patterns: Layered Architecture
  3. c语言定义数组中字母怎么输入,c语言数组怎么输入?
  4. php英语大全,学习php编程语言 php常用英语单词
  5. 2017年区块链技术与加密货币市场:回顾与展望
  6. 市场调研报告-全球与中国船用下水推车市场现状及未来发展趋势
  7. es-从搜索中检索选定的字段
  8. 2018年河南省高中计算机考试,【改革 】 2018年河南中考将采取4+6+1模式,高中自主招生已确定...
  9. Flutter 微信语音消息播放动画
  10. php 不报notice错误,PHP新手NOTICE错误常见解决方法_PHP教程