首页 > 解决方案 > 为集群中的单个 pod 设置环境变量

问题描述

我有 n 个我的微服务实例作为 kubernetes pod 运行,但由于应用程序代码中有一些调度逻辑,我希望这些 pod 中只有一个来执行代码。

在 Spring 应用程序中,一种常见的方法是仅为实例激活计划配置文件-Dspring.profiles.active=scheduled,并为其余实例保持停用状态。我想知道如何在 Kubernetes 中实现这一点。


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

标签: kubernetesenvironment-variablesdevopskubernetes-poddevops-services

解决方案


您可以创建具有所需环境变量的 1 个副本的部署,以及具有所需数量的副本的另一个部署,而无需该变量。您还可以在两个部署上设置相同的标签,以便服务可以在需要时对来自两个部署的 pod 之间的流量进行负载平衡。


推荐阅读