如何临时更改kubernetes吊舱的环境变量?

2024-04-19 06:57:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我们在kubernetes集群中的pods中运行python服务。服务被设置为从环境变量接收其日志级别。这些环境变量是在gitlab管道中的服务部署期间设置的。出于调试目的,我希望能够只更改单个pod上的env var并重新启动它,而不必从gitlab重新部署服务。在

在我们搬到kubernetes之前,我们在rancher中运行容器,在这里所描述的更改在GUI中非常容易实现。更改环境变量->点击更新->容器自动重新启动。在

我发现this article建议使用如下命令更改副本集

kubectl set env rs [REPLICASET_NAME] [ENV_VAR]=[VALUE]

然后终止pod,之后将使用相应的env var重新创建它。在

但它也表明

Never do it on a production system.

Never even do this on a dev environment without taking care in how it may impact your deployment workflow.

这是实现我的目标的唯一/最好的方法吗?为了调试目的,快速更改正在运行的pod中的env var?在


Tags: 目的envonvargitlab环境变量集群it
1条回答
网友
1楼 · 发布于 2024-04-19 06:57:16

Is that the only / best way to achieve my goal of quickly changing an env var in a running pod for debug purposes?

简单回答:是的。在

长话短说:我从未使用过或阅读过Rancher,但我怀疑它也在更改复制集或部署模板env var,从而触发了Pod更新。这真的是唯一能改变吊舱中环境变量的方法。你不能改变正在运行的容器或运行的吊舱上的环境变量。在Docker容器中不能这样做,在Kubernetes中也不能这样做,所以我假设在Rancher中也不能这样做。只能重新启动具有不同规格的机架

为什么?在

因为容器只是在主机上运行的进程。一旦进程启动,没有resorting to nasty hacks就不可能更改进程的环境。在

如果你只关心那些声明在dev或prod中不要这样做的警告,我会说同样的警告也适用于你所描述的牧场主工作流,所以如果你愿意在那里冒险,这里也不会有任何不同。在

相关问题 更多 >