前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kubernetes中域名解析的异常问题分析

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

原创
作者头像
对你无可奈何
修改2021-06-30 11:29:19
3K0
修改2021-06-30 11:29:19
举报
文章被收录于专栏:运维专栏

背景:

自建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的方式了,不想重启集群节点!

代码语言:txt
复制
在/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 解析

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景:
  • 关于解决方案:
  • 入手解决:
    • 1.关于work节点禁用ipv6
      • 2. 关于php代码的修改
      • 其他可以参考的:
        • 1. k8s – coredns禁用ipv6解析
          • 2. 容器中使用nscd缓存优化 DNS 解析
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档