首页 > 解决方案 > 如何实现 Kubernetes POD 到 POD 的通信?

问题描述

这个问题之前已经在stackoverflow上提出并回答了,但是因为我是K8的新手,所以我不明白答案。

假设我有两个容器,每个容器在一个单独的 POD 中(因为我相信这是推荐的方法),我想我需要为我的两个 pod 创建一个单独的服务。

  1. 我的 java 应用程序代码如何获取服务的 IP 地址?
  2. 我的 java 应用程序代码如何(从服务)获取另一个 POD/容器的 IP 地址?
  3. 这将是一个 IP 地址列表,因为它们是无状态的,并且可能会被复制。这个对吗?
  4. 如何选择要与之通信的最不繁忙的 POD 实例?

谢谢齐格弗里德

标签: dockerkubernetes

解决方案


我的 java 应用程序代码如何获取服务的 IP 地址?

您需要创建一个 Service 来公开 Pod 的端口,然后您只需要使用 Service 名称,kube-dns 将解析 Pod 的 IP 地址

我的 java 应用程序代码如何(从服务)获取另一个 POD/容器的 IP 地址?

是的,使用服务的名称

这将是一个 IP 地址列表,因为它们是无状态的,并且可能会被复制。这个对吗?

Service 将在所有匹配选择器的 Pod 之间进行负载均衡,因此它可以是 0、1 或任意数量的 Pod

如何选择要与之通信的最不繁忙的 POD 实例?

常见的方法是循环策略,但这里有其他特定的平衡策略 https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-ipvs

干杯;)


推荐阅读