部署Kubernetes Deployment资源时出现资源映射匹配错误,请求协助排查
部署Kubernetes Deployment资源时出现资源映射匹配错误,请求协助排查
嗨,我看到你在部署Deployment的时候遇到了这个报错,咱们来快速定位解决问题:
核心问题:API版本与字段拼写错误
你遇到的错误 no matches for kind "Deployment" in version "app/v1",最直接的根源是Deployment资源的API版本拼写错误。Kubernetes中Deployment对应的正确API版本是 apps/v1(注意是apps,末尾多了个s),而你配置文件里写的是app/v1,这就导致Kubernetes找不到对应的资源类型了。
另外我还发现配置里有两个小问题,也会导致部署失败:
spec下的选择器字段是selector,不是selectors(多了个s)POD_IP对应的fieldPath应该是status.podIP,metadata.podIP是旧写法,当前Kubernetes版本已经不再支持
修正后的Deployment配置文件
把这些问题修正后,完整的配置文件应该是这样的:
apiVersion: apps/v1 kind: Deployment metadata: name: pod-info-deployment namespace: development labels: app: pod-info spec: replicas: 3 selector: matchLabels: app: pod-info # select pods with this label to be managed by the deployment. template: metadata: labels: app: pod-info # add a new label for each instance of our application spec: containers: - name: pod-info-container image: kimschles/pod-info-app:latest ports: - containerPort: 3000 env: - name: POD_NAME valueFrom: fieldRef: fieldPath: metadata.name - name: POD_NAMESPACE valueFrom: fieldRef: fieldPath: metadata.namespace - name: POD_IP valueFrom: fieldRef: fieldPath: status.podIP
后续操作步骤
- 保存修正后的配置文件
- 重新执行部署命令:
kubectl apply -f deployment.yaml - 如果还是有疑问,可以用下面的命令确认你的Kubernetes集群支持的Deployment API版本:
正常输出里会显示kubectl api-resources | grep Deploymentapps/v1对应的Deployment类型。
备注:内容来源于stack exchange,提问作者Gulshan Kumar
相关产品推荐
相关产品推荐

