我刚开始使用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上运行。
如何解决这个问题?
发布于 2021-08-05 06:29:09
我得到了同样的问题,并解决了。此问题与安装的Kustomize版本有关。检查!kustomize version。从Kustomize v3.0.x
及更高版本开始,我们还需要在补丁中提到名称空间。在补丁yaml文件中添加名称空间后,问题得到解决。
在您示例中,在update-replicas.yaml补丁文件的metadata下添加名称空间。
有关自定义版本相关问题的更多详细信息(如"...failed to find find target For patch..."):https://github.com/kubernetes-sigs/kustomize/issues/1351
发布于 2020-04-24 22:54:55
我能够重现你的场景,并且没有得到任何错误。
我会张贴一步一步的例子,这样你可以仔细检查你的。
$ tree Kustomize/
Kustomize/
├── base
│ ├── deployment.yaml
│ ├── kustomization.yaml
│ └── service.yaml
└── qa
├── kustomization.yaml
└── update-replicas.yaml
2 directories, 5 files$ cat Kustomize/base/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- deployment.yaml
- service.yaml$ cat Kustomize/base/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: my-app
name: my-app
spec:
replicas: 1
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx
ports:
- containerPort: 80$ cat Kustomize/base/service.yaml
kind: Service
apiVersion: v1
metadata:
name: nginx-svc
spec:
selector:
app: my-app
type: NodePort
ports:
- protocol: TCP
port: 80
targetPort: 80$ cat Kustomize/qa/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ../base
patchesStrategicMerge:
- update-replicas.yaml$ cat Kustomize/qa/update-replicas.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 2base并应用:$ kustomize build ./Kustomize/base | kubectl apply -f -
service/nginx-svc created
deployment.apps/my-app created
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/my-app-64778f875b-7gsg4 1/1 Running 0 52s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/nginx-svc NodePort 10.96.114.118 <none> 80:31880/TCP 52s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/my-app 1/1 1 1 52s
NAME DESIRED CURRENT READY AGE
replicaset.apps/my-app-64778f875b 1 1 1 52s所有东西都按预期部署,pod,部署,服务和副本集,只有一个副本。-现在让我们部署qa更新:
$ kustomize build ./Kustomize/qa/ | kubectl apply -f -
service/nginx-svc unchanged
deployment.apps/my-app configured
$ kubectl get all
NAME READY STATUS RESTARTS AGE
pod/my-app-64778f875b-7gsg4 1/1 Running 0 3m26s
pod/my-app-64778f875b-zlvfm 1/1 Running 0 27s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/nginx-svc NodePort 10.96.114.118 <none> 80:31880/TCP 3m26s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/my-app 2/2 2 2 3m26s
NAME DESIRED CURRENT READY AGE
replicaset.apps/my-app-64778f875b 2 2 2 3m26sSuggestions:
through kubectl get deploy <name> -o yaml)的问题,但可能问题出在原始文件中,并且在应用时,它更改了somewhat.让我知道你的结果!
https://stackoverflow.com/questions/61300596
复制相似问题