gpt4 book ai didi

python - 如何临时更改 kubernetes pod 的环境变量?

转载 作者:行者123 更新时间:2023-12-01 00:32:32 26 4
gpt4 key购买 nike

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

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

我找到了this article建议使用类似的命令更改副本集

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

然后终止 Pod,之后将使用相应的环境变量重新创建它。

但它也指出

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 中快速更改环境变量以进行调试的目标的唯一/最佳方法吗?

最佳答案

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

简短回答:是的。

长答案:我从未使用或阅读过 Rancher,但我怀疑它也在更改 ReplicaSet 或部署模板环境变量,从而触发了 Pod 更新。这确实是更改 Pod 中环境变量的唯一方法。您无法更改正在运行的容器或正在运行的 Pod 上的环境变量。你不能在 Docker 容器中做到这一点,你也不能在 Kubernetes 中做到这一点,所以我假设你不能在 Rancher 中做到这一点。您只能重启具有不同规范的 Pod。

为什么?

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

如果您只是担心在开发或生产中不要执行此操作的警告,我会说相同的警告适用于您描述的 Rancher 工作流程,因此如果您愿意在那里承担风险,那么这里不会有任何不同。

关于python - 如何临时更改 kubernetes pod 的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58064705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com