千家信息网

解决Kubernetes Pod DNS超时问题

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,最近刚给公司测试环境上了K8s,大部分容器采用得是以alpine为基础的镜像,基础服务如MySQL、Redis等以域名的方式连接,但是出现一个很奇怪的现象,部分Pod内应用报DNS超时,大概报错日志是
千家信息网最后更新 2024年11月27日解决Kubernetes Pod DNS超时问题

最近刚给公司测试环境上了K8s,大部分容器采用得是以alpine为基础的镜像,基础服务如MySQL、Redis等以域名的方式连接,但是出现一个很奇怪的现象,部分Pod内应用报DNS超时,大概报错日志是这样的(JAVA):io.netty.resolver.dns.DnsNameResolverTimeoutException: [/10.96.0.10:53] query timed out after 5000 milliseconds (no stack trace available)

网上搜了一下,似乎K8s环境中使用alpine作镜像就会出现这个问题,参考了这篇文章:https://forum.choerodon.io/t/topic/1111, 尝试解决方法如下
1、使用移除解析AAAA记录的alpine修改版镜像,并安装了glibc以支持java,镜像地址:https://hub.docker.com/r/geekidea/alpine-a/, 无效
2、文章中提到非alpine镜像,可以通过修改/etc/resolv.conf增加options single-request-reopen解决问题,alpine镜像不行,原因是非alpine镜像采用的glibc,而alpine默认使用的是musl libc,想着我们用的alpine已经安装glibc,可不可以用这个方法试一下,于是尝试修改,在YAML中加入下面这段:

        lifecycle:          postStart:            exec:              command:              - /bin/sh              - -c               - "/bin/echo 'options single-request-reopen' >> /etc/resolv.conf"

注意:这里不能直接使用sed替换,会报错。
还是无效

重新理清思路,会不会是自动生成的/etc/resolv.conf有问题,造成DNS不正常,查看Pod的/etc/resolv.conf,原始文件内容如下:

nameserver 10.96.0.10search test1.svc.cluster.local  svc.cluster.local cluster.localoptions ndots:5

尝试ping test1.svc.cluster.local
ping svc.cluster.local
ping cluster.local
发现后两个根本无法ping通,难道这两个搜索域引起DNS超时,于是决定试试不使用默认生成的/etc/resolv.conf,自己写,查看K8s官方文档,原来官方就提供类似配置,在YAML的spec段加入如下配置:

      dnsPolicy: "None"      dnsConfig:        nameservers:        - 10.96.0.10        searches:        - test1.svc.cluster.local        options:        - name: single-request-reopen

注意nameservers为kube-dns的ClusterIP,searches(搜索域)根据你的实际环境配置
生成的/etc/resolv.conf如下:

nameserver 10.96.0.10search test1.svc.cluster.localoptions single-request-reopen

尝试多次删除Pod,创建Pod,问题不再复现,原来罪魁祸首就出在resolv.conf的搜索域配置中,具体原理等以后有空再去研究一下,最近没时间:)

镜像 问题 尝试 配置 环境 搜索 生成 两个 基础 官方 方法 不行 原始 罪魁祸首 可不 公司 内容 内应 原因 原理 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全稽查次数 网络安全和信息化委主任 网络安全交易监督管理ppt 网络安全事件分类标准 穿越火线战队服务器进不去了 掌上银行连接不上服务器 软件开发的工作很忙吗 山东省大数据网络安全实验室 湖南省学it软件开发学费多少 4u服务器批发厂家 mmc无法创建管理单元数据库 服务器进不去系统如何备份数据 数据库时间类型字段 网络运营网络软件开发 双鱼ip转换器服务器 南京信息管理系统软件开发 数据库技术的特点是什么 美大型能源基建网络安全受诟病 淮安专业软件开发特点 网络安全面临的最困难的是什么 数据库连表查询不重复显示 数据中心网络安全培训心得体会 泉州市盛拓软件开发有限公司 中国首个数据库建立 电子邮箱服务器选择什么 天沃科技氢能源互联网 网络安全管理工作制度 量子网络技术 linux服务器免费 海南鲲鹏服务器供应公司
0