Kubernetes附带了一个名为coredns
的ConfigMap
,它允许您指定DNS设置。我想通过添加以下内容来修改或修补此配置的一小部分:
apiVersion: v1
kind: ConfigMap
data:
upstreamNameservers: |
["1.1.1.1", "1.0.0.1"]
我知道我可以使用kubectrl edit
来编辑coredns
ConfigMap
是否有某种方法可以将上面的文件只包含我想要插入或更新的设置,并将其合并到现有的ConfigMap
之上或对其进行修补?
这样做的原因是我希望我的部署可以使用CI/CD进行重复。因此,即使我在全新的Kubernetes集群上运行我的Helm chart,上面的设置也会被应用。
5条答案
按热度按时间9ceoxa921#
这将对该单个字段应用相同的修补程序:
hpxqektj2#
你应该试试这样的方法:
cx6n0qe33#
你可以使用vi编辑它,如下所示:
或者您可以使用
kubectl get cm -n kube-system -o yaml --export
将其导出以应用任何更改,然后使用kubectl apply -f fileName.yaml
应用您的更改llycmphe4#
由于ConfigMaps用于将配置文件挂载到Pod,因此看起来这就是您正在寻找的。如果底层ConfigMap或Secret被修改,容器内的ConfigMap将自动更新。
您可以指定configMap位置:
configMapVolume(mountPath: '/etc/mount3', configMapName: 'my-config'),
更新:
好吧,我想这并不能解决你的问题。我想到的另一件事是
kubectl create configmap
和kubectl replace
的管道,所以整个命令看起来像这样:kubectl create configmap NAME --from-file file.name -o yaml --dry-run | kubectl replace -f -
请注意,这将替换整个文件,因此
replace
也应该可以工作。ddrv8njm5#
可以使用以下
kubectl
命令修补configmap。