Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 将多个k8s Kustomization合并为一个_Kubernetes_Kustomize - Fatal编程技术网

Kubernetes 将多个k8s Kustomization合并为一个

Kubernetes 将多个k8s Kustomization合并为一个,kubernetes,kustomize,Kubernetes,Kustomize,在Kubernetes中,我有一个基本kustomize包和两个补丁,每个补丁都调整了基础的不同方面——一个用于大型部署,另一个用于使用遗留映像,而不是当前映像。有没有一种方法可以创建一个“组合”补丁——既有两个更改,又不复制大型和遗留补丁内容的补丁 - base/ - large-deployment-patch/ - legacy-image-patch/ 当我试图简单地在组合补丁中使用两个补丁作为基础时,我得到了如下错误: 错误:../legacy:id'~G_v1_ConfigMap

在Kubernetes中,我有一个基本kustomize包和两个补丁,每个补丁都调整了基础的不同方面——一个用于大型部署,另一个用于使用遗留映像,而不是当前映像。有没有一种方法可以创建一个“组合”补丁——既有两个更改,又不复制大型和遗留补丁内容的补丁

- base/
- large-deployment-patch/
- legacy-image-patch/
当我试图简单地在组合补丁中使用两个补丁作为基础时,我得到了如下错误:


错误:../legacy:id'~G_v1_ConfigMap | ~X | ~p | pg database | ~S“已被使用

正如@Jamie在他的评论中提到的那样,如果这两个“补丁”中的任何一个包含一个
kustomization.yaml
文件,其中包括作为资源的
base/
目录,它将是一个覆盖。每个覆盖都会生成基础中所有资源的副本并对其进行修改

如果您的基础创建了一个名为
pg database
ConfigMap
,并且您的覆盖没有修改此资源的名称,那么您将得到两个名为
pg database
ConfigMap

总而言之:每个覆盖都会创建一个资源副本,在同一个
名称空间中,不能有两个
类型相同的
资源


通常的做法是在覆盖中添加
namefix
nameuffix
转换器,以避免冲突,并为资源提供更有意义的名称。

看起来
大型部署补丁
传统图像补丁
覆盖
而不是kustomize中的
补丁
es术语你能确认吗?假设它们是覆盖,每个覆盖的基础是什么?@Jamie它有点复杂——一个是图像标签更改(存储在kustomize.yaml中),另一个是补丁,但它们都会更改相同基础对象的方面(存储在base dir中)。在我的例子中,我实际上还有两个方面需要更改,因此我最终为每个更改组合使用了一个dir,这很难管理。