如何临时更改kubernetes容器的环境变量?

马特·M。

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

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

我发现本文建议使用以下命令更改副本集

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

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

但这也说明

永远不要在生产系统上这样做。

切勿在开发环境中执行此操作,否则请注意它如何影响部署工作流程。

这是实现我快速更改正在运行的pod中的env变量以进行调试的目标的唯一/最佳方法吗?

钉书针

这是实现我快速更改正在运行的pod中的env变量以进行调试的目标的唯一/最佳方法吗?

简短的回答:是的。

长答案:我从未使用过Rancher或在Rancher上阅读过,但我怀疑它也在更改ReplicaSet或Deployment模板env var,从而触发了Pod更新。实际上,这是在Pod中更改环境变量的唯一方法。您不能在正在运行的容器或正在运行的Pod上更改环境变量。您不能在Docker容器中做到这一点,也不能在Kubernetes中做到这一点,所以我认为您不能在Rancher中做到这一点。您只能使用其他规格重新启动Pod。

为什么?

因为容器只是在主机上运行的进程。流程启动后,如果不诉诸讨厌的骇客,就无法更改流程环境

如果您只是担心表示在dev或prod中不执行此操作的警告,那么我想说的是,同样的警告也适用于您描述的Rancher工作流程,因此,如果您愿意在那冒险,那就不会了这里有什么不同。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Kubernetes容器环境变量

如何在 kubernetes 容器中创建环境变量

如何使用kubernetes env访问容器环境变量?

如何在容器内访问 Kubernetes 集群环境变量?

Azure Kubernetes容器环境变量

Kubernetes init 容器问题与环境变量

如何更改语言环境环境变量?

如何在Kubernetes中将作为环境变量的Docker镜像的摘要传递给容器

如何在kubernetes / openshift的init容器args中使用环境变量?

kubernetes-将容器信息公开为环境变量

使用Consul存储kubernetes容器的环境变量

如何使用Powershell更改环境变量?

macOS:如何更改PATH环境变量?

如何使用临时环境变量运行 python 脚本

Azure容器实例在启动时更改环境变量

如何通过Kubernetes statefulset环境变量更改Postgresql max_connections配置?

如何将环境变量传递给Docker容器?

docker 容器中的环境变量 - 它是如何工作的?

如何使用Powershell在Windows容器中使用环境变量

如何在容器中加载 Docker 环境变量

如何使用其他变量更改环境变量的名称?

如何更改 AWS Fargate 上的 Grafana docker 容器环境变量以使用 mysql 数据库

如何在Kubernetes中取消设置环境变量?

如何通过JAAS配置Kafka环境变量kubernetes

如何在kubernetes的环境变量中设置mountPath的值?

无法更改环境变量

如何在emacs中实际更改/设置环境变量

更改生根时如何传递环境变量?

如何更改Jenkins声明式管道环境变量?