Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.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
Kubernetes,如何在同一部署中启用吊舱间DNS?_Kubernetes_Dns - Fatal编程技术网

Kubernetes,如何在同一部署中启用吊舱间DNS?

Kubernetes,如何在同一部署中启用吊舱间DNS?,kubernetes,dns,Kubernetes,Dns,我是Kubernetes的新手,我正在尝试通过DNS进行吊舱间通信 我的k8s中的吊舱是使用部署生成的。我的问题是所有的豆荚都向Zookeeper报告它的主机名,豆荚使用Zookeeper中找到的主机名ping其他对等方。它总是失败,因为对等方的主机名在POD之间无法解析 现在唯一的解决方案是手动将每个pod的主机名添加到对等机的/etc/hosts文件中。但这种方法不适用于大型集群 如果有一个用于吊舱间通信的DNS解决方案,它可以记录任何新生成的吊舱,并删除死掉的吊舱,这将非常棒 提前感谢。您

我是Kubernetes的新手,我正在尝试通过DNS进行吊舱间通信

我的k8s中的吊舱是使用部署生成的。我的问题是所有的豆荚都向Zookeeper报告它的主机名,豆荚使用Zookeeper中找到的主机名ping其他对等方。它总是失败,因为对等方的主机名在POD之间无法解析

现在唯一的解决方案是手动将每个pod的主机名添加到对等机的/etc/hosts文件中。但这种方法不适用于大型集群

如果有一个用于吊舱间通信的DNS解决方案,它可以记录任何新生成的吊舱,并删除死掉的吊舱,这将非常棒


提前感谢。

您需要使用指向播客的服务定义

这样,您就有了一个平衡的代理来控制吊舱间的通信,Kubernetes上的内部DNS负责该服务,而不是每个吊舱,无论吊舱的状态如何

如果simples解决方案不符合您的需要,您可以使用coreDNS替代kubedns作为默认的内部DNS


您需要使用指向播客的服务定义

这样,您就有了一个平衡的代理来控制吊舱间的通信,Kubernetes上的内部DNS负责该服务,而不是每个吊舱,无论吊舱的状态如何

如果simples解决方案不符合您的需要,您可以使用coreDNS替代kubedns作为默认的内部DNS


我找到的一个解决方案是在
spec->template->spec->
下添加
hostname
子域
,然后每个pod之间的主机名通信成功

但是,这个解决方案相当愚蠢,因为我无法将每个部署的
副本设置为多于1个,否则我将在集群中获得多于1个具有相同主机名的pod。如果集群中有10个具有相同功能的从属节点,则需要创建10个部署


有更好的解决办法吗

我找到的一个解决方案是在
spec->template->spec->
下添加
hostname
subdomain
,然后每个pod之间的主机名通信成功

但是,这个解决方案相当愚蠢,因为我无法将每个部署的
副本设置为多于1个,否则我将在集群中获得多于1个具有相同主机名的pod。如果集群中有10个具有相同功能的从属节点,则需要创建10个部署


有更好的解决办法吗

谢谢你,沃米。我也使用该服务,但问题是我不能使用该服务的端点地址向Zookeeper注册。每个pod都需要注册自己的主机名。换句话说,Zookeeper节点需要能够解析每个pod的主机名。在这种情况下,您可能更愿意使用其他类似coreDNS的服务来替换默认的kubedns服务,这样您就可以控制DNS的注册方式,并在需要时添加更多的注册。谢谢Wolmi。我也使用该服务,但问题是我不能使用该服务的端点地址向Zookeeper注册。每个pod都需要注册自己的主机名。换句话说,Zookeeper节点需要能够解析每个pod的主机名。在这种情况下,您可能更喜欢用其他类似coreDNS的服务替换默认kubedns服务,这样您就可以控制DNS的注册方式,并在需要时添加更多的注册。找到了解决方案,而不是使用
种类:部署
,使用
kind:StatefulSet
。然后自动生成每个pod的主机名,并在彼此之间进行ping。找到解决方案时,使用
kind:Deployment
,而不是
kind:StatefulSet
。然后自动生成每个pod的主机名,并且可以在彼此之间ping。