【问题标题】:Alpine container not able to resolve hostname高山容器无法解析主机名
【发布时间】:2017-11-15 01:44:59
【问题描述】:

我有一个有 2 个工作节点的 StatefulSet Kubernetes 部署。我能够使用无头服务在这两个节点上启动容器,因此节点的主机名为

  • abc-0.abc.default.svc.cluster.local
  • abc-1.abc.default.svc.cluster.local

问题是我无法使用主机名从 abc-1 和相反的方向 ping abc-0。如果我使用 IP 地址,那么一切正常。

在某些时候(https://github.com/gliderlabs/docker-alpine/issues/8#issuecomment-172594887)存在与 Alpine Linux 相关的 DNS 解析问题,但似乎已在 Alpine Linux 3.4 中修复。

验证我面临的问题不是因为 Linux 而是因为 Kube-DNS 中的一些错误配置或其他原因的好方法是什么?

【问题讨论】:

    标签: kubernetes alpine


    【解决方案1】:

    我假设你的意思是ping abc-0,你试过ping abc-0.abc 吗? resolv.conf 没有丰富所有有状态的服务条目搜索域,只是命名空间之一,因此当您尝试仅通过 abc-0 访问时,它实际上解析为 abc-0.default.svc.cluster.local

    【讨论】:

    • 正如你提到的,我确实在 resolv.conf 中看到了以下搜索域: - default.svc.cluster.local - svc.cluster.local - cluster.local 登录到 abc 所在的节点后-0 正在运行: - ping abc-0 工作正常 - ping abc-0.abc 返回错误地址错误 - ping abc-1 返回错误地址错误 - ping abc-1.abc 返回错误地址错误
    【解决方案2】:

    问题是我正在运行的服务没有分配给它的端点。我使用的是 v1.7.3,所以通过在无头服务上添加“选择器”解决了这个问题。此外,看起来这在 v1.8.3 中不再是问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      • 2017-03-26
      • 1970-01-01
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多