kubectl apply 不会删除环境变量

问题描述 投票:0回答:1

我正在尝试使用

kubectl apply -f dep.yml
来从现有部署中删除环境变量

当我运行命令时,我收到一条确认消息

deployment.apps/XXXX configured

但是当我再次检查部署时,环境变量仍然存在

我已验证我正在正确的命名空间中使用正确的部署名称。

此外,如果我更改其他参数,例如更改标签值 - 更改将被应用。仅删除字段似乎有问题。

知道可能是什么原因造成的吗?

提前致谢!

kubernetes kubectl
1个回答
0
投票

以下是您可以考虑的选项:

  • 使用 set env 命令,它会从部署中删除现有变量。

    kubectl 设置环境部署/DEPLOYMENT_NAME VARIABLE_NAME-

  • 使用 kubectl patch 命令就地更新 API 对象。该子命令支持 JSON 补丁、JSON 合并补丁以删除现有的环境变量。

    kubectl 补丁部署 DEPLOYMENT_NAME --type=json -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/env/0"}]

要确认上述选项之一是否有效,您可以运行“kubectl描述部署部署名称”,您将看到环境正在更新/删除,但不在yaml中。

  • 从部署 Pod 模板的 .template.spec.containers[].env[] 下的 环境变量 中的部署配置中删除现有的 env 变量时,Pod 的实际状态将更改为具有所需环境变量的一组新 Pod以受控的速率。因此,您可以使用部署的状态作为环境变量任何卡住更新的指示器,考虑回滚不稳定的部署,当且仅当部署的Pod模板发生更改时才会保存修订,例如,如果您更新模板的标签或容器图像。
© www.soinside.com 2019 - 2024. All rights reserved.