【发布时间】:2015-12-02 17:11:57
【问题描述】:
Kubernetes 中两个不同 pod 之间的通信是如何发生的?
就我而言,我有两个 pod:frontend 和 backend,它们都有不同的容器。 我希望我的前端 pod 与后端 pod 通信,但我不想使用后端 pod 的 IP(即硬编码)。
可以通过服务实现吗?
【问题讨论】:
标签: kubernetes
Kubernetes 中两个不同 pod 之间的通信是如何发生的?
就我而言,我有两个 pod:frontend 和 backend,它们都有不同的容器。 我希望我的前端 pod 与后端 pod 通信,但我不想使用后端 pod 的 IP(即硬编码)。
可以通过服务实现吗?
【问题讨论】:
标签: kubernetes
可以通过服务实现吗?
是的,services 是处理此问题的推荐方法。为每个 pod(或推荐的复制控制器)设置服务后,您可以通过 service environment variable 找到服务 IP,例如BACKEND_SERVICE_HOST 和 BACKEND_SERVICE_PORT 用于“后端”服务。
【讨论】:
推荐的方法是使用 DNS 集群插件:http://kubernetes.io/docs/user-guide/services/#dns
来自“留言簿”应用的示例:
他们使用:$host = 'redis-master'; 作为与redis-master pod 通信的默认方法。
这是在redis-master-service.yaml:https://github.com/kubernetes/kubernetes/blob/3574999fa34d54c47f43efd9eaff7e1c571c7910/examples/guestbook/redis-master-service.yaml中定义的
【讨论】: