k8s创建资源yaml报错排查思路

k8s创建yaml报错如何排查

经验总结
报错内容如下

[root@k8s-master ~/k8s_1.19_yaml]# kubectl create -f pod-xiangxipeizhi.yaml
error: error validating "pod-xiangxipeizhi.yaml": error validating data: [ValidationError(Pod.spec.containers[0].env): invalid type for io.k8s.api.core.v1.Container.env: got "map", expected "array", ValidationError(Pod.spec.containers[0]): unknown field "imagepullPolicy" in io.k8s.api.core.v1.Container, ValidationError(Pod.spec.containers[0].livenessProbe.httpGet): unknown field "prot" in io.k8s.api.core.v1.HTTPGetAction, ValidationError(Pod.spec.containers[0].livenessProbe.httpGet): missing required field "port" in io.k8s.api.core.v1.HTTPGetAction, ValidationError(Pod.spec.containers[0]): unknown field "nodeName" in io.k8s.api.core.v1.Container, ValidationError(Pod.spec.containers[0].readinessProbe.httpGet): unknown field "prot" in io.k8s.api.core.v1.HTTPGetAction, ValidationError(Pod.spec.containers[0].readinessProbe.httpGet): missing required field "port" in io.k8s.api.core.v1.HTTPGetAction]; if you choose to ignore these errors, turn validation off with --validate=false

分析思路:

1.一行一行排查

2.主要看花括号中的具体提示信息,可以分析到具体是那一段代码配置有问

具体排查

1)第一个报错点

可以摘出报错的第一个花括号附近的信息,可以看到花括号中提示Pod.spec.containers[0].env,其实也说明了是在env附近有错误,具体看yaml文件中关于env环境变量的配置是否有问题

error: error validating "pod-xiangxipeizhi.yaml": error validating data: 
[ValidationError(Pod.spec.containers[0].env):
invalid type for io.k8s.api.core.v1.Container.env: got "map", expected "array", 

2)第二个报错点

同样方法,摘出第二个花括号附近的信息,可以看到花括号中提示的具体配置项,以及附近提示说了imagepullPolicy没有这个参数,那么其实一眼就看到了配置参数写错了

ValidationError(Pod.spec.containers[0]): unknown field "imagepullPolicy" in io.k8s.api.core.v1.Container, 

3)第三个报错点

同样做法,取出第三个花括号附近的八错信息,根据提示走(Pod.spec.containers[0].livenessProbe.httpGet): unknown field "prot"获取重点信息,一看就能看出来是配置项写错了

ValidationError(Pod.spec.containers[0].livenessProbe.httpGet): unknown field "prot" in io.k8s.api.core.v1.HTTPGetAction, 

4)第四个报错点

顺着提示,忽略相同的提示,找到之前没看到的报错信息也就是最后的,接着看提示信息r(Pod.spec.containers[0]): unknown field "nodeName"这里说明白了不能与container同级,也可以找到解决的方法

ValidationError(Pod.spec.containers[0]): unknown field "nodeName" in io.k8s.api.core.v1.Container,

总结:一定要详细看输出内容,具体看花括号和附近一段文字的提示最终都到能找是如何产生报错的

猜你喜欢

转载自blog.csdn.net/weixin_44953658/article/details/114463672