最近,在尝试解决“大”DNS 查询(当答案大于 512M 时)时,我们在 EKS 上遇到了一些基于 Alpine 图像(节点:12.18.1-alpine)的微服务的 DNS 问题。
所以我尝试运行这个脚本来测试 DNS 解析:
var dns = require('dns');
var w3 = dns.lookup('hugedns.test.dziemba.net', function (err, addresses, family) {
console.log(addresses);
});
Run Code Online (Sandbox Code Playgroud)
每个图像有 2 个不同的场景
从我看到的情况来看,Alpine 正在使用 musl(它不支持 DNS 来使用 TCP?)库而不是 glibc,因为 DNS 协议使用的是 UDP,并且仅在查询大于 512M 时才尝试回退到 TCP。所以我的理论是这是根本原因,但由于它对我有用并且在 EKS 上失败让我想知道问题在哪里可以传递......
有什么想法吗?
EKS v1.16 coredns:v1.6.6
BTW,这是我的第一篇文章,如果需要任何信息,请告诉我