【问题标题】:K3S Rancher - Debian based docker images not resolving dns properlyK3S Rancher - 基于 Debian 的 docker 映像无法正确解析 dns
【发布时间】:2020-10-19 11:24:01
【问题描述】:

我遇到了奇怪的问题。

我做了什么:

我部署了 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 配置图 kubectl -n kube-system 获取配置映射 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
}

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

谢谢, 大卫

【问题讨论】:

    标签: networking kubernetes dns resolve k3s


    【解决方案1】:

    我在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
    
    • plus:最简单的解决方案,易于编写脚本
    • 缺点:您需要在每个节点上执行此操作(据我了解)。不同系统上的不同resolv.conf 涉及到相同的部署可能不会以相同的方式运行,具体取决于 kube 使用的节点

    relevant documentation

    使用全球 DNS

    没试过,这里是the doc

    【讨论】:

      猜你喜欢
      • 2018-04-30
      • 1970-01-01
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-20
      • 2010-09-18
      • 2020-07-17
      相关资源
      最近更新 更多