首页 > 解决方案 > 使用 Helm / Kubernetes 设置独特用途的 pod

问题描述

我需要让 n 个 pod 做基本相同的事情,但根据环境变量在不同的端点上运行。例如,pod1 将处理 var1,pod2 将处理 var2 等等...

我可以在部署中拥有独特用途的 pod:向每个 pod 传播一个唯一变量吗?还是我需要有 n 个状态集,看起来更重?

标签: kuberneteskubernetes-helmkubernetes-podkubernetes-deployment

解决方案


我认为单一部署是不可能的,因为这是无状态的,您需要维护状态。例如,如果 pod1 正在处理 var1 并且它死了,则应该创建新的 pod,它应该只处理 var1。所以这在单一部署中是不可能的。

但是可以使用单个 StatefulSet 并在您的应用程序本身中进行一些更改。您可以将这些环境变量存储在某个地方(可能是 DB 或卷)和 pod 名称(在这种情况下是唯一的,因为它是 StatefulSet)针对每个 var。所以不是从环境变量中读取,而是根据 Pod 名称从存储中读取变量。

也可以使用 labelSelector 管理多个端点的创建。


推荐阅读