为集群中的单个 pod 设置环境变量

Set environment variable for a single pod in a cluster

我有 n 个微服务实例 运行 作为 kubernetes pods 但是由于应用程序代码中有一些调度逻辑,我只想要其中一个 pods执行代码。

在 Spring 应用程序中,一种常见的方法是仅针对实例激活 计划的 配置文件 -Dspring.profiles.active=scheduled,并在其余实例中将其停用。我想知道如何在 kubernetes 中实现这一目标。


注意: 我熟悉 kubernetes cron 作业可以调用端点的方法,以便负载均衡器选择的只有一个实例执行计划的代码。但是,我想知道是否可以以只有一个 pod 设置环境变量的方式配置 kubernetes 规范。

您可以创建一个部署,其中包含 1 个具有所需环境变量的副本,而另一个部署具有您想要的任意数量的副本,但没有该变量。您还可以在两个部署上设置相同的标签,以便服务可以在需要时在两个部署的 pods 之间负载平衡流量。