Kubernetes / Helm:部署多个Pod,每个Pod具有适当的参数

时间:2019-02-04 11:10:35

标签: kubernetes replication

我对Kubernetes还是很陌生:我的问题可能更多是设计问题,而不是代码问题。 我想知道:Kubernetes如何处理一个Pod与另一个Pod的副本之间的通信? 我的情况很简单,我有一个API容器,该容器将UI提供的参数传递给计算单元容器。根据我的需要,我将拥有许多CU盒的副本,它们正在等待API向其传递参数以供使用。 每个CU盒必须使用不同的参数:它们都以相同的方式工作,但不具有相同的参数。 如何使我的API吊舱了解可用于向其发送参数的CU吊舱,以便它们可以正常工作。 它是自动的吗?至少有可能还是我的集群设计不当?

我想到了另一种方法:我的api从ui中获取参数后,它将部署CU pod,例如,使用作为环境变量给出的参数,并且CU可以使用它。 / p>

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

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

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

还要从api容器发送请求,还将在API容器中获取CU ClusterIp服务名称,端口,主机详细信息作为env变量(前提是您在创建API容器之前已创建CU服务)。您还可以将DNS服务器设置为按Pod中的名称访问服务。

答案 1 :(得分:1)

假设您有5个CU容器正在运行,并为其提供ClusterIP服务。现在,当您向该服务发送请求时,负载平衡将在内部发生,服务会将请求转发到负载较小的Pod。这是为了保持后端Pod的高可用性。因此,即使您的某些CU插盒掉线,您也不会受到影响

您需要的广告连播数量超出了预期的要求。还可以使用自动缩放功能来动态增加广告连播

相关问题