Kubernetes中域名解析的异常问题分析

背景:

自建kubernetes1.16集群,服务应用早期多为php应用。docker封装nginx+php-fpm基础镜像,将代码打包成image jenkins进行ci/cd构建。
php应用中出现大量域名解析失败的报错…what?开始怀疑过kubernets版本问题,也怀疑过网络组件。但是未能找到原因。今天正好百度搜索资料时候偶然看到:https://www.it1352.com/589254.html,看到他上面解决的curl调取花费时间过长的时候curl指定了CURL_IPRESOLVE_V4。就顺便想了下…是了。我的集群没有禁用ipv6!划重点了:

如果开启了IPv6,curl默认会优先解析 IPv6,在对应域名没有 IPv6 的情况下,会等待 IPv6 dns解析失败 timeout 之后才按以前的正常流程去找 IPv4

关于解决方案:

自己简单想一想也有两种解决方式:

  1. work节点禁用ipv6.
  2. php代码指定CURL_IPRESOLVE_V4。

入手解决:

1.关于work节点禁用ipv6

参照:https://blog.csdn.net/wh211212/article/details/80996364
我是直接sysctl设置禁用IPv6的方式了,不想重启集群节点!

在/etc/sysctl.conf中添加以下行
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

# 或者执行
sed -i '$ a\net.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1' /etc/sysctl.conf

要使设置生效,请执行
sysctl -p

2. 关于php代码的修改

参照:https://www.jb51.net/article/39788.htm,直接扔给php小伙伴了…毕竟我也不会php。

其他可以参考的:

1. k8s – coredns禁用ipv6解析

2. 容器中使用nscd缓存优化 DNS 解析



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

对你无可奈何2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值