Kubernetes创建ConfigMap报apps/v1无匹配类型错误如何解决
问题原因
报错no matches for kind "configmap" in version "apps/v1"是因为YAML配置中填写的apiVersion值错误,ConfigMap资源不属于apps/v1API组,不存在该版本下弃用ConfigMap的情况。
apps/v1API组仅用于管理Deployment、StatefulSet、DaemonSet、ReplicaSet这类工作负载类资源,ConfigMap属于Kubernetes核心资源,归属核心API组。
修复方案
直接修改ConfigMapFile.yaml中的apiVersion字段为正确值即可,修正后的配置模板如下:
apiVersion: v1 kind: ConfigMap metadata: name: test-config-map data: # 保留原有配置的键值对即可 .........
修改完成后重新执行kubectl apply -f ConfigMapFile.yaml就能正常创建ConfigMap资源。
通用排查技巧
如果后续遇到同类API版本不匹配的报错,可以通过以下方式快速确认资源对应的正确apiVersion:
- 执行
kubectl api-resources | grep <资源名>,返回结果的APIVERSION列就是该资源在当前集群版本下的合法apiVersion值,比如查询ConfigMap的执行命令和返回参考:$ kubectl api-resources | grep configmap configmaps cm v1 true ConfigMap - 核心资源(ConfigMap、Secret、Service、Pod、Namespace等)的apiVersion均为
v1,不需要加组名前缀。
内容的提问来源于stack exchange,提问作者CraZyCoDer
相关产品推荐
相关产品推荐

