我一直在试图弄清楚如何通过Kustomize使用ConfigMap生成器创建ConfigMap。
当使用自定义生成器创建时,configMap将使用特殊后缀命名。
https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#create-a-configmap-from-generator
问题是这怎么能被引用呢?
我一直在试图弄清楚如何通过Kustomize使用ConfigMap生成器创建ConfigMap。
当使用自定义生成器创建时,configMap将使用特殊后缀命名。
https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#create-a-configmap-from-generator
问题是这怎么能被引用呢?
3条答案
按热度按时间omhiaaxx1#
您自己不引用它,Kustomize识别configMap在其他资源(如部署)中的使用位置,并将这些引用更改为使用name+hash。
这样做的原因是,如果您更改configMap,Kustomize将生成新的哈希并更新部署,从而导致Pod滚动重启。
如果不希望出现这种情况,可以将以下代码添加到
kustomization.yaml
文件中:wsewodh22#
它在文档中指定。当您执行
kubectl apply -k .
时,将创建名为game-config-4-m9dm2f92bt
的配置Map。您可以检查是否按如下方式创建了配置Map:kubectl get configmap
。此ConfigMap将包含给定数据所属的字段数据。现在,像往常一样,您可以在pod中使用此配置Map,如下所示:
来自k8s的Ex:
您也可以将ConfigMap用作卷,如k8s文档中的示例:
你可以看到k8s官方的doc
l7wslrjt3#
我也很纠结这个问题,我不明白为什么kustomize没有更新部署中卷的configmap名称来包含哈希,我解决这个问题的方法是在kustomization.yaml中为基础和覆盖添加
namespace: <namespace>
。