如何在kubernetes中更新配置图?

yiytaume  于 2023-03-12  发布在  Kubernetes
关注(0)|答案(2)|浏览(151)

嗨,我正在使用一个从目录中的文件创建的配置Map。配置Map安装到pod容器中的卷。有时我需要更新我的配置Map。有什么想法吗?目前我正在删除配置Map并重新创建它,然后重新启动pod。不确定这是否是最好的方法,因为,在这里我们删除并创建一个配置Map。
以下是shell脚本代码

kubectl create ns k6
kubectl create configmap k6-scripts-configmap -n k6 --from-file /test/scripts/k6/
kubectl apply  -f /test/config/k6/k6-deployment.yaml

稍后在脚本中,我需要更新配置Map,因为目录(/test/scripts/k6/)中的一些文件需要更改。

kubectl delete configmap k6-scripts-configmap -n k6
kubectl create configmap k6-scripts-configmap -n k6 --from-file /test/scripts/k6/
kubectl rollout restart deployment k6 -n k6

你能让我知道我是否做的正确,或者我可以更新配置Map而不删除它吗?同样,在更新后,我应该重新启动部署吗?
谢谢

qv7cva1a

qv7cva1a1#

您可以将部署和ConfigMap定义拆分到2个不同的文件中。
然后,仅更新配置Map:

kubectl create configmap k6-scripts-configmap \
  -n k6 --from-file /test/scripts/k6/ \
  --dry-run -o yaml > configmap.yml

应用更改:

kubectl -n k6 apply -f configmap.yml
lrpiutwd

lrpiutwd2#

我们可以使用四种方法来更新配置Map。

方法:1您可以使用以下命令更新配置Map

kubectl create configmap k6-scripts-configmap -n k6 --from-file /test/scripts/k6/ -o yaml --dry-run=client | kubectl apply -f -

方法:2如文档中所述,您也可以使用Kubectl replace

注意:如果配置Map不存在,kubectl替换将失败。

方法:3

正如Chris Gillatt建议的那样,您可以使用kubectl edit configmap <cfg-name>

方法:4

有关在不重新启动POD的情况下自动更新配置Map的信息,请参阅Harsh Manvor的此博客。

相关问题