我有n个微服务实例作为kubernetes容器运行,但是由于应用程序代码中有一些调度逻辑,所以我只希望其中一个容器执行代码。
在Spring应用程序中,一种常见的方法是仅针对实例激活预定的配置文件-Dspring.profiles.active=scheduled
,而对其余实例保持禁用状态。我想知道如何在kubernetes中实现这一目标。
注意:我熟悉kubernetes cron作业可以调用端点的方法,这样负载均衡器只能选择一个实例来执行计划的代码。但是,我想知道是否可以通过这样一种方式来配置kubernetes规范,即只有一个pod可以设置一个环境变量。
答案 0 :(得分:2)
您可以使用一个具有所需环境变量的副本创建部署,并使用不包含该变量的所需副本数创建另一个部署。您也可以在两个部署中设置相同的标签,以便Service可以在两个部署中的Pod之间负载均衡流量。