Kubernetes附带一个名为ConfigMap
的{{1}},可用于指定DNS设置。我想通过添加以下内容来修改或修补此配置的一小部分:
coredns
我知道我可以使用apiVersion: v1
kind: ConfigMap
data:
upstreamNameservers: |
["1.1.1.1", "1.0.0.1"]
编辑kubectrl edit
coredns
,通过某种方式,我可以将仅包含要插入或更新的设置合并的上述文件在现有ConfigMap
之上还是之上?
这样做的原因是我希望使用CI / CD可重复进行部署。因此,即使我在全新的Kubernetes群集上运行Helm图表,也将应用上面的设置。
答案 0 :(得分:5)
这会将相同的补丁应用到单个字段:
kubectl patch configmap/coredns \
-n kube-system \
--type merge \
-p '{"data":{"upstreamNameservers":"[\"1.1.1.1\", \"1.0.0.1\"]"}}'
答案 1 :(得分:0)
您应该尝试这样的事情:
listener.bind(obj)
答案 2 :(得分:0)
您可以使用vi对其进行如下编辑:
kubectl edit cm -n kube-system coredns
或者您可以使用kubectl get cm -n kube-system -o yaml --export
将其导出以应用所有更改,然后使用kubectl apply -f fileName.yaml
来应用更改
答案 3 :(得分:0)
由于ConfigMap用于将配置文件装载到Pod,因此似乎this是您要寻找的。如果基础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
也应该起作用。