我刚刚开始使用kustomize。我有以下kustomize的yaml文件:
ls -l ./kustomize/base/
816 Apr 18 21:25 deployment.yaml
110 Apr 18 21:31 kustomization.yaml
310 Apr 18 21:25 service.yaml
其中deployment.yaml和service.yaml是jib生成的文件,运行良好,customization.yaml的内容如下:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- service.yaml
- deployment.yaml
在另一个目录中
ls -l ./kustomize/qa
133 Apr 18 21:33 kustomization.yaml
95 Apr 18 21:37 update-replicas.yaml
其中
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../base
patchesStrategicMerge:
- update-replicas.yaml
以及
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2
在运行“kustomize build ./kustomize/base”之后,我运行
~/kustomize build ./kustomize/qa
Error: no matches for OriginalId ~G_~V_Deployment|~X|my-app; no matches for CurrentId ~G_~V_Deployment|~X|my-app; failed to find unique target for patch ~G_~V_Deployment|my-app
我看了相关文件,没有看到应用程序名称上的任何拼写错误。
下面是部署.yaml文件。
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: my-app
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
strategy: {}
template:
metadata:
creationTimestamp: null
labels:
app: my-app
spec:
containers:
- image: docker.io/[my Docker ID]/my-app
name: my-app
resources: {}
readinessProbe:
httpGet:
port: 8080
path: /actuator/health/readiness
livenessProbe:
httpGet:
port: 8080
path: /actuator/health/liveness
lifecycle:
preStop:
exec:
command: ["sh", "-c", "sleep 10"]
status: {}
同样,上面的文件是用jib生成的,只是做了一些修改,并且直接在Kubernetes上运行。
如何解决这个问题?
3条答案
按热度按时间hsgswve41#
我得到了同样的问题,并修复。这个问题是与安装的Kustomize版本。检查!
kustomize version
。从Kustomize v3.0.x 和更高版本,我们需要提到补丁中的命名空间。在补丁yaml文件中添加命名空间后,问题得到解决。在您的示例中,在update-replicas.yaml补丁文件的元数据下添加名称空间。
有关自定义版本相关问题(如“......无法找到修补程序的唯一目标......”)的更多详细信息,请参阅:https://github.com/kubernetes-sigs/kustomize/issues/1351
irlmq6kh2#
我能够重现你的场景,没有任何错误。
我将发布一个一步一步的例子,这样你就可以仔细检查你的。
x一个一个一个一个x一个一个二个一个x一个一个三个一个
base
并应用:所有内容都按预期部署,pod、部署、服务和副本集,只有1个副本。-现在,让我们部署
qa
更新:through kubectl get deploy <name> -o yaml
),但问题可能存在于原始文件中,应用时会有所更改。让我知道你的结果!
zdwk9cvp3#
在Kustomize/kubectl客户端版本3和更高版本中,我们还需要提到名称空间。您的副本补丁应该如下所示:
现在,这个应该可以了。