【发布时间】:2020-08-01 15:57:27
【问题描述】:
我刚开始使用 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 生成的文件,它们运行良好。而kustomization.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
我查看了相关文件,并没有看到应用程序名称上有任何拼写错误。
这是 deployment.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 上运行。
如何解决这个问题?
【问题讨论】:
-
它表示找不到要修补的对象
my-app。请发布原始deployment.yaml,因为检查不一致至关重要。 -
@willrof 非常感谢您提供的信息。根据您的信息,我将 deployment.yaml 文件添加到我的原始帖子中。
-
虽然下面的答案解决了这个特定问题,但
failed to find unique target for patch是一个非常弱且无用的错误消息。就我个人而言,我欢迎任何有关如何从 kustomize 获得更好的诊断信息以更有效地解决错误的见解。
标签: kubernetes