库贝特尔可以删除环境变量吗?



在这里我可以通过kubectl patch更新 envs,那么除了重新部署deployment.yaml之外,有什么方法可以删除 envs 吗?

$ kubectl patch deployment demo-deployment -p '{"spec":{"template":{"spec":{"containers":[{"name": "demo-deployment","env":[{"name":"foo","value":"bar"}]}]}}}}'
deployment.extensions "demo-deployment" patched

我可以通过命令行删除环境"foo"而不在整个部署上使用重新部署吗?

这来得晚了,但对于新手,您可以使用以下kubectl命令从部署中删除现有的 env 变量

kubectl set env deployment/DEPLOYMENT_NAME  VARIABLE_NAME-

不要省略末尾的连字符 (-(

如果您对重新部署感到满意,请按照以下步骤操作

  1. 创建配置映射并包含环境变量
  2. 在部署中从配置映射加载 env 变量
envFrom:
- configMapRef:
name: app-config
  1. 如果要删除 env 变量,请从配置映射中删除这些键值对
  2. 这将导致重新部署。您也可以从相应的部署中删除容器

考虑containers是对象内部的数组。数组只能通过它们的index获取,而不是通过键值对获取的对象。请参阅此处的参考资料。 所以有一个解决方法 使用index.

在这里,您有放置在container中的env

spec:
containers:
- env:
- name: DEMO_GREETING
value: Hello from the environment
- name: DSADASD
value: asdsad

在这里,您有一个命令可以使用index删除anv:

kubectl patch deployments asd  --type=json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/env/1"}]

结果是:

spec:
containers:
- env:
- name: DEMO_GREETING
value: Hello from the environment

但是,这仍会重新启动容器。 希望对您有所帮助!

相关内容

  • 没有找到相关文章

最新更新