首页> 疑难解答

K3S Rancher - 基于 Debian 的 docker 镜像无法正确解析 dns

withpy 2021-12-03

简介我面临着奇怪的问题。 我所做的: 我部署了Rancher K S集群,但在使用基于 debian 的图像解析 dns 时存在问题。 域未正确解析 它使用我们的域之一为其添加后缀。 我发现了什么: 基于 Debian 的映像在末尾添加了带有域的后缀。 例如,我 ping google.com 及其 p

问题详情

我面临着奇怪的问题。

我所做的:

我部署了Rancher K3S集群,但在使用基于 debian 的图像解析 dns 时存在问题。 域未正确解析 - 它使用我们的域之一为其添加后缀。

我发现了什么:

基于 Debian 的映像在末尾添加了带有域的后缀。 例如,我 ping google.com 及其 ping google.com.example.com。 (example.com 是我们的域之一 - 不指定它,因为它并不重要 imo)

curl google.com 同样向 example.com 的 IP 地址发出请求。 即使尝试过纯 debian 映像,它仍然存在同样的问题。

基于 Alpine 的图像工作正常(ping google.com ping google.com,nslookup 显示正确的 IP 地址)。

安装了 k3s 的主机服务器也可以正常工作(redhat os)。 ping google.com ping google.com。

一些可能对您有所帮助的其他数据:

CoreDNS configmap kubectl -n kube-system get configmap coredns -o go-template={{.data.Corefile}}

.:53 {
    errors
    health
    ready
    kubernetes cluster.local in-addr.arpa ip6.arpa {
      pods insecure
      upstream
      fallthrough in-addr.arpa ip6.arpa
    }
    hosts /etc/coredns/NodeHosts {
      reload 1s
      fallthrough
    }
    prometheus :9153
    forward . 8.8.8.8
    cache 30
    loop
    reload
    loadbalance
}

有没有人遇到相同或类似的问题? 你有什么观点可以促使我解决问题吗?

谢谢,大卫

我在centos 8 上使用k3s (v.v1.19.3+k3s3)遇到了类似的问题(不过不太确定它与图像的操作系统有什么关系)。 k3s即插即用功能microk8s等其他发行版。

使用本地 DNS 参数

在每个节点上,您可以说要使用主机的解析参数。 如果k3s作为systemd 服务管理(可能是这种情况),您可以编辑/etc/systemd/system/k3s.service.env以添加系统的resolv.conf

K3S_RESOLV_CONF=/etc/resolv.conf

然后重启服务

sudo systemctl status k3s
  • :最简单的解决方案,易于编写脚本
  • 缺点:您需要在每个节点上执行此操作(据我所知)。 不同系统上的不同resolv.conf涉及根据 kube 使用的节点,完全相同的部署可能不会以相同的方式运行

使用全球 DNS

没试过,但这里是

相关文章