Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何为POD使用Kubernetes DNS?_Dns_Kubernetes_Google Kubernetes Engine - Fatal编程技术网

如何为POD使用Kubernetes DNS?

如何为POD使用Kubernetes DNS?,dns,kubernetes,google-kubernetes-engine,Dns,Kubernetes,Google Kubernetes Engine,在GKE上,kube dns正在我的节点上运行,我可以看到docker容器 我确实可以通过名字访问服务,这对于所有这些应用程序来说都是非常好的,因为负载平衡是一个非常合适的解决方案,但是我如何使用DNS访问单个POD呢 我知道我可以在API中查找特定的pod,但我需要自己更新主机文件,并继续查看pod列表。DNS应该为我做到这一点,那么它在一个pod中是如何使用的呢 Kubernetes文档说DNS信息需要传递给kubelet,但据我所知,我无法访问GKE上的DNS信息,所以GKE上的DNS信息

在GKE上,kube dns正在我的节点上运行,我可以看到docker容器

我确实可以通过名字访问服务,这对于所有这些应用程序来说都是非常好的,因为负载平衡是一个非常合适的解决方案,但是我如何使用DNS访问单个POD呢

我知道我可以在API中查找特定的pod,但我需要自己更新
主机
文件,并继续查看pod列表。DNS应该为我做到这一点,那么它在一个pod中是如何使用的呢

Kubernetes文档说DNS信息需要传递给kubelet,但据我所知,我无法访问GKE上的DNS信息,所以GKE上的DNS信息不是这样设置的,还是需要做些什么来激活它

我的一些服务(特别是zookeeper)自己知道其他节点,并尝试通过主机名(即pod名)连接到它们,除非我自己更新
hosts
文件,否则将失败。我想使用综合DNS服务

如有任何关于如何做到这一点的指导,我们将不胜感激


谢谢更新

根据文件,目前的格式为:

\u my-port-name.\u my-port-protocol.my svc.my namespace.svc.cluster.local

请参见此处的相关文档:

原始答案:

到目前为止,这实际上是不可能的。。。但是Kubernetes团队正在研究它

见本期:

更新

DNS自2015年9月起可用于POD 见公共关系:

简言之:

这将以
.pod.
当前可以禁用,但 为所有吊舱打开或关闭


Kubernetes statefulset支持关联服务名称,并通过服务名称定义pod dns名称

例如,创建一个zk守护程序集和一个zk服务,那么zk守护程序集的第一个pod的dns名称是zk-0.$(名称空间).svc.cluster.local

详情请参阅:


重要提示:服务必须是“”,才能正常工作,也就是说它是
。spec.clusterIP
必须是
None

不幸的是,它似乎对我不起作用。它真的应该与kube dns一起工作吗?启用/禁用它的选项是否记录在任何地方?文档在这里:因此,自那时起,它确实发生了一些变化。顶部的第二次更新似乎是错误的。它仍然说它是
podIP
…。不幸的是,这是完全无用的™ (因为IP永远无法预测)而且毫无意义™ (因为如果你知道IP,你可以直接使用它,不需要A记录)。我发现唯一有效的方法是headless(使用
clusterIP:None
)服务创建
…svc.
条目(加上
.svc.
作为所有端点的记录)。这意味着我需要为StatefulSet提供两个服务。我花了相当多的时间才发现。我发现coredns支持区域传输功能。“dig-t AXFR cluster.local any”不幸的是,它目前不包括pod(可能是特定于版本的)。