Kubernetes集群使用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,
總結:一定要詳細看輸出內容,具體看花括號和附近一段文字的提示最終都到能找是如何產生報錯的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/296794.html
標籤:其他
上一篇:Linux常見基本命令
下一篇:三種主流工業以太網概述及其應用
