如何实现Kubernetes POD到POD的通信?

use*_*493 1 docker kubernetes

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

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

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

谢谢齐格弗里德

Her*_*cia 5

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

您需要创建一个服务来公开 Pod 的端口,然后您只需要使用服务名称,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

干杯;)