4

我面临着奇怪的问题。

我做了什么:

我部署了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 获取 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
}

有没有人遇到相同或类似的问题?你有什么要推动我解决的问题吗?

谢谢,大卫

4

1 回答 1

2

k3s在 8 上遇到了与 (v.v1.19.3+k3s3)类似的问题(虽然centos不太确定它与图像的操作系统有什么关系)。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

没试过,但这里是文档

于 2020-11-24T14:29:46.590 回答