首页 > 解决方案 > Kubernetes中如何设置Deployment副本的不同环境变量

问题描述

现在通过将 Deployment 的副本设置为 4,我有 4 个 k8s pod。

apiVersion: v1
kind: Deployment
metadata:
  ...
spec:
  ...
  replicas: 4
...

POD 将获取数据库中的项目并使用它,数据库中的项目有一列class_name

现在我想要一个 pod 只得到一个class_name的项目。例如pod1仅获取class_name等于的项目class_name_1,并且pod2仅获取class_name等于class_name_2...的项目

所以我想将不同class_name的环境变量传递给不同的部署 POD。可以在Deployment的yaml文件中定义吗?

或者有没有其他方法可以实现我的目标?(比如在 k8s 中部署以外的其他方法)

标签: deploymentkubernetesenvironment-variableskubernetes-deployment

解决方案


部署或其他任何东西都无助于实现您的目标。您的目标是某种逻辑,它应该通过应用程序中的代码来实现。

由于部署是同一应用程序的一些实例,唯一可能对您有用的是:使用多个部署,每个部署都有自己的任务。第一个可以获得class_name_1item,而 otherclass_name_2class_name_3。但这不是一个好主意


推荐阅读