首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IPVS 模式 CoreDNS 滚动更新导致域名解析失败问题填坑

IPVS 模式下,当 coredns 滚动更新期间,集群监控日志出现大量的连接超时,由于日志异常的时间和 coredns 变更时间完全重叠,怀疑是 coredns 滚动更新造成,下面进行问题复现,并给出优化方案。

实验

创建一个由 2 个 POD 作为后端的 coredns service

通过创建大量 DNS 查询来访问此服务

触发滚动更新 coredns

顺序查询

可以看到在 顺序执行(非并发压测)的情况下,已经出现较多DNS解析超时的情况

并发查询

dnsperf是一个开源的DNS压力测试工具,用户可以用它来对DNS服务器或者Local DNS做压力测试。dnsperf目前的实现是单进程模式,通过epoll非阻塞地处理网络事件

优化

通过查阅 issue 得知,这里可能与有关,当前设置的是,coredns 滚动更新的时候 ipvs 中 udp 老链接会 300s才删除,如果在 内客户端有端口重用的话就会出现这个问题,并且这个时间和日志发生的时间也很类似,持续了5分钟。

优化改动:

加了

等待5分钟(关键!!)

  中 配置改成

查看 日志,等待 reload

优化后结果

可以看到,效果还是很明显的~

最后附上 dnspref 工具的常用参数:

参考文档

https://github.com/kubernetes/kubernetes/issues/71514

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230210A08MN300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券