【问题标题】:Pod unable to install packages(apt-get update or apt-get install )Pod 无法安装软件包(apt-get update 或 apt-get install )
【发布时间】:2020-12-22 10:34:21
【问题描述】:

我观察到集群中的 pod 在执行到 pod 时无法安装软件包。在调试时我意识到这是由于/etc/resolv.conf entries。

来自 pod 之一的 /etc/resolv.conf 条目是:

nameserver 192.168.27.116
search ui-container.svc.cluster.local svc.cluster.local cluster.local 192.168.27.116.nip.io
options ndots:5

在这里,如果我从所有主节点、工作节点的 resolv.conf 中删除一个条目 192.168.27.116.nip.io,那么 pod 将能够连接到 Internet,并且 apt-get updateapt-get install 可以正常工作。这只是一种临时解决方法,因为不建议更新 resolv.conf。因为我观察到 resolv.conf 内容在重新启动节点后被重新设置为原始内容。

是因为/etc/resolv.conf中的options ndots:5吗?

我该如何解决这个问题?

【问题讨论】:

    标签: kubernetes openshift


    【解决方案1】:

    不,这是因为您的resolv.conf 中的nip.io 地址。这是一个special domain,用于反射和模拟。这不是ndots:5

    【讨论】:

    • 感谢您的信息。 /etc/resolv.conf 中的条目是自动生成的。那我该如何解决这个问题呢?
    • 你是如何安装集群的?
    • 似乎为集群设置的域是192.168.27.116.nip.io。一种选择是更改集群的默认域,使其不使用nip.io。这将修复集群中的每个 pod。您还可以使用dnsConfig 更改search per pod
    • 是的,集群主机名设置为192.168.27.116.nip.io,因为它消除了我们为路由编辑 /etc/hosts 条目的需要。感谢您的修复建议。我正在寻找替代解决方案,其他任何删除 nip.io 或设置搜索 pod。
    • 问题在于nip.io 是一个范围广泛的域。正因为如此,你扔给他们的任何东西都会被转发到192.168.27.116。如果您可以覆盖集群设置,我猜您可能会弄乱已解析域的顺序(例如在您的192.168.27.116.nip.io 之前包含顶级域),但这是一个远景,可能会从您的集群中泄漏信息和/或减慢速度下。祝你好运!
    【解决方案2】:

    作为快速修复,您可以利用 pod Spec 中的 dnsConfig 覆盖默认 dns 配置,更多详细信息:https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config

    【讨论】:

      【解决方案3】:

      除了上面的答案,通常 resolve.conf 遵循以下模式

      nameserver <local domain server provided by docker>
      search <pod namespace>.svc.cluster.local svc.cluster.local cluster.local <host/node's actual DNS>
      options ndots:5
      

      DNS 的最后一部分 通常是您的实验室或系统范围的 DNS,它是您网络的一部分。因此,您可能已经使用DNS policy 覆盖或在您的实验室中更新相同的内容。 nip.io 是一个有需要的 FQDN 制造商,因此您可能会想出一个在您的 LAB 内解析的本地 DNS 名称,而不是依赖它。

      【讨论】:

        猜你喜欢
        • 2015-07-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-28
        • 2021-12-09
        • 1970-01-01
        • 2018-03-01
        相关资源
        最近更新 更多