ref*_*los 5 kubernetes coredns
我们有一项可以批量发送大量事件的服务。它基本上打开多个 http POST 连接。
自从我们将服务转移到 kubernetes 以来,我们getaddrinfo: Temporary failure in name resolution时不时就会出错。(大多数呼叫都有效,但有些失败,这很奇怪。
谁能解释为什么以及如何解决?
检查一下tinder帖子,他们也有类似的问题:
https://medium.com/tinder-engineering/tinders-move-to-kubernetes-cda2a6372f44
以及他们的 DNS 信息的来源:
https://www.weave.works/blog/racy-conntrack-and-dns-lookup-timeouts
TLDR:检查您的 arp 表缓存 gc_* 主机参数,尝试在容器 /etc/gai.conf 中禁用 AAAA 查询,将 DNS 移至守护进程集并将主机 IP 作为 dns 服务器注入到 pod
另外,为了帮助实现这一点并加快 dns 解析速度,请向所有域添加一个结束点(即:database.example.com。),这样 coredns 将直接尝试该查询(一个查询,2 个 ipv6),而不是尝试所有 kubernetes搜索域列表(大约 5 个、10 个带 ipv6 的域)。只在您查询 kubernetes 资源或不喜欢它的应用程序中省略那个点(如果它们存在,那就是一个错误,所有 DNS 总是以点结尾,而大多数时候我们可以省略它,用它是正确的方法,一定不能失败)
| 归档时间: |
|
| 查看次数: |
12793 次 |
| 最近记录: |