【发布时间】:2017-05-08 01:45:37
【问题描述】:
我想在我的 kubernetes 节点上使用 consul/registration 使用注册器进行服务发现。 在如何设置领事方面需要帮助。
我使用 kubeadm 在 openstack 上部署了 1 个 master 和 2 个 minions 的 kubernetes。 对于 consul 和注册,我需要在每个节点 master 和 minion 上运行 consul 容器吗?他们将如何相互交流?
【问题讨论】:
-
只是出于好奇,你为什么不使用kubernetes默认的服务发现呢? (使用 etcd 等。)
-
根据我对 consul 与 etcd 的研究,我发现了以下内容:使用 etcd 或 Zookeeper 时,服务目录如何工作、存储什么信息以及如何构建它取决于您。 Flynn 的discovered 或Netflix 的Eureka 等专门的服务发现系统围绕服务语义提供了更多的结构。 Consul 是一种混合体,因为它实际上是一个内置在通用配置存储中的专用服务发现系统。 & consul 也有健康检查。
-
Kubernetes 具有服务发现(服务资源)和配置存储原语(ConfigMap),以及健康检查。除非您正在做一些不寻常的事情,否则您真的不需要将 Consul 添加到组合中。我建议在尝试走这条路之前多阅读 Kubernetes 的特性。
-
正如@iamnat 和 Pixel 所说,Kubernetes 在集群中的每个主机上运行一个代理。代理扮演服务器端发现负载均衡器的角色。为了向服务发出请求,客户端使用主机的 IP 地址和服务分配的端口通过代理路由请求。然后,代理将请求透明地转发到集群中某处运行的可用服务实例。
-
感谢您的回复我已经开始使用 kube-dns 进行服务发现
标签: kubernetes consul service-discovery registrator