代码之家  ›  专栏  ›  技术社区  ›  sacha barber

Kubernetes如何确认DNS工作

  •  2
  • sacha barber  · 技术社区  · 8 年前

    我已经在windows上使用MiniKube成功创建了Kubernetes吊舱/服务。但我现在想确保DNS正常工作。

    DNS服务显示为正在运行

    .\kubectl get pod -n kube-system
    

    显示kube dns吊舱正在运行

    enter image description here

    我还将DNS加载项显示为正在运行

    enter image description here

    因此,我想验证DNS是否正常工作,理想情况下,我想测试上面有服务的pod是否可以通过DNS名称查找服务。

    但我一开始很简单

    enter image description here

    现在我有了POD名称,我想尝试使用以下命令在其中进行简单的DNS查找

    .\kubectl exec simple-sswebapi-pod-v1-f7f8764b9-xs822 -- nslookup google.com
    

    我在哪里使用 kubectl执行官 要尝试在找到的POD中运行此nslookup(正在运行,我应该在上面指出)。

    但我得到了这个错误

    enter image description here

    为什么它找不到 nslookup(nslookup) 内吊舱。所有关键的事情似乎都没问题

    • Kube DNS pod正在运行(如上所示)
    • DNS加载项已安装并正在运行(如上所示)

    我遗漏了什么,我是否还需要启用其他功能,以便DNS查找在我的播客中工作?

    2 回复  |  直到 8 年前
        1
  •  1
  •   Radek 'Goblin' Pieczonka    8 年前

    要做到这一点,您的容器需要包含要在构建的图像中使用的命令。

    旁注: kubectl debug 在不久的将来会来到kube https://github.com/kubernetes/kubernetes/issues/45922 这将帮助解决类似的问题,使您能够将自定义容器附加到现有pod并在其中进行调试

        2
  •  1
  •   sacha barber    8 年前

    因此,关于这一点,我将busybox安装到一个POD中,以允许我使用nslookup,这使我能够做到这一点

    enter image description here

    因此,这看起来很酷,但我是否应该不能通过IP地址或DNS名称ping该服务,而DNS名称的解析似乎很好,如上所示。

    如果我 ping google。通用域名格式 在busybox命令提示符内一切正常,但当我对DNS名称服务的IP地址进行ping时,它永远不会到达任何地方。

    DNS查找显然正在工作。我错过了什么?

    推荐文章