使用 Helm / Kubernetes 设置独特用途 pods

Set up unique purpose pods with Helm / Kubernetes

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

我能否在部署中有独特的目的 pods:向每个 pods 传播一个独特的变量?还是需要n个statefulsets,看起来比较重?

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

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

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