kubectl可以删除环境变量吗?

时间:2020-01-09 03:24:56

标签: kubernetes containers kubectl

在这里我可以通过.large-box { height:100px; } .helper { font-weight:bold; color:#333; vertical-align:middle; } .sortable-placeholder { height: 25px; width: 100%; background-color: yellow; } 更新环境,那么除了重新部署kubectl patch之外,还有什么方法可以删除环境?

deployment.yaml

我可以通过命令行删除env“ foo”而不在整个部署中使用重新部署吗?

3 个答案:

答案 0 :(得分:4)

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

kubectl set env deployment/DEPLOYMENT_NAME  VARIABLE_NAME-

请勿在末尾省略连字符(-

答案 1 :(得分:1)

如果您可以重新部署,请执行以下步骤

  1. 创建configmap并包含您的环境变量
  2. 从部署中的configmap加载环境变量
df1 = (df.melt('Gender')
         .query('value in ["Earth Science", "Geophysics"]')
         .pivot_table(index=['value', 'Gender'],columns='variable', aggfunc='size')
         .reset_index()
         .rename_axis(None, axis=1))
print (df1)
           value Gender  CHOICE 1  CHOICE 2  CHOICE 3
0  Earth Science      F         8         9         5
1  Earth Science      M        25        25        13
2     Geophysics      F         2         2         1
3     Geophysics      M         3        12         1
  1. 如果要删除env变量,请从configmap中删除这些键/值对
  2. 这将导致重新部署。您还可以从相应的部署中删除Pod

答案 2 :(得分:0)

请考虑containers是对象内部的数组。与只能通过键值对获取的对象相反,只能通过其index来获取数组。请参阅参考文献here。因此,有一种使用index的解决方法。

您将env放在container中:

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

但是,这仍然会重新启动您的pod。 希望有帮助!