Kubernetes创建ConfigMap报error validating data: unknown错误排查
错误原因
你使用的v1.7.0版本kubectl是2017年发布的早期版本,该版本内置的资源校验schema存在已知缺陷:当ConfigMap的data字段中使用单引号包裹纯数字形式的字符串值时,本地校验逻辑无法正确识别值类型,会抛出无明确指向的unknown校验错误,该问题属于客户端侧bug,你的ConfigMap配置本身符合Kubernetes资源规范。
解决方法
- 临时跳过校验创建:执行资源创建命令时追加
--validate=false参数,跳过kubectl本地校验环节,直接将请求提交给集群API Server,服务端可以正确识别配置内容完成创建,命令示例:
kubectl apply -f configmap.yaml --validate=false
- 修改配置写法规避bug:调整ConfigMap中
SCHEDULE_RUNNING_TIME字段值的包裹方式,将单引号替换为双引号,或者直接书写无引号的字符串形式,即可绕过旧版本的类型识别bug,修改后的配置参考:
kind: ConfigMap apiVersion: v1 metadata: name: fileprocessing-acracbsscan-configmap data: SCHEDULE_RUNNING_TIME: "20"
修改后直接执行常规创建命令即可,不会触发校验报错。
- 长期修复方案:将kubectl客户端升级到与集群版本匹配的稳定版本(v1.10及以上版本已修复该类本地校验异常问题),避免后续创建其他类型资源时再遇到同类无明确提示的校验错误。
内容的提问来源于stack exchange,提问作者Minh Nguyen
相关产品推荐
相关产品推荐

