Kubernetes/Helm:部署多个 pod,每个 pod 都有其适当的参数

Kubernetes/Helm: Deploy multi pod each one having its proper parameter

我是 quiKubernetes 的新手:我的问题可能更多是设计问题而不是代码问题。 我想知道:Kubernetes 如何处理一个 pod 和另一个 pods 的副本之间的通信? 我的情况很简单,我有一个 API pod,它将 UI 提供的参数传递给计算单元 pods。根据我的需要,我将有许多 CU pods 的副本,他们正在等待 API 向他们传递一个参数以供使用。 每个 CU pod 必须使用不同的参数:它们都以相同的方式工作,但使用的参数不同。 我怎样才能让我的 API pod 知道 CU pods 可用于向它们发送参数以便它们可以工作。 是自动的吗?至少有可能还是我的集群设计不佳?

我想到了另一种方法:一旦我的 api 从 ui 获得参数,它就会部署一个 CU pod,例如,将参数作为环境给出变量,CU 可以使用它。

提前感谢您的帮助!

在k8s中,pods之间的通信由服务处理。要访问集群中的任何 pod,您需要创建 ClusterIp 服务。

因此,在您的情况下,您需要为 CU pods 创建 ClusterIp 服务,以便可以访问它们。一旦您从 API pods 向此服务发送请求,它将被发送到您无法预测或控制的任何 CU pods(自动负载平衡将在此处发生)。

同样从 api pods 发送请求,将获取 API pod 中可用的 CU ClusterIp 服务名称、端口、主机详细信息作为环境变量(前提是您已创建 CU 服务在创建 API pods 之前)。您还可以将 DNS 服务器设置为通过 pods.

中的名称访问服务

假设您有 5 个 CU pods 运行 和 ClusterIP 服务。现在,当您向该服务发送请求时,负载平衡将在内部发生,服务会将请求转发到负载较小的 pod。这是为了保持后端 pods 的高可用性。因此,在您的情况下,即使某些 CU pods 出现故障,您也不会受到影响

您需要的 pods 数量超出预期。同样使用Autoscale动态增加pods