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)2番目のエラーポイント
同様に、2番目の中括弧の近くの情報を抽出すると、中括弧内にプロンプトが表示された特定の構成項目が表示され、近くのプロンプトにそのimagepullPolicy
ようなパラメーターがないと表示され、構成パラメーターが正しく記述されていないことがわかります。一目で
ValidationError(Pod.spec.containers[0]): unknown field "imagepullPolicy" in io.k8s.api.core.v1.Container,
3)3番目のエラーポイント
同様に、3番目の中括弧の近くにある8つの間違った情報を取り出し、プロンプトに従って(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)4番目のエラーポイント
プロンプトに従い、同じプロンプトを無視し、これまでに見たことのない最後のエラーメッセージを見つけて、プロンプトメッセージを確認します。これはr(Pod.spec.containers[0]): unknown field "nodeName"
、コンテナと同じレベルにすることはできないことを示しています。解決策を見つけることもできます。
ValidationError(Pod.spec.containers[0]): unknown field "nodeName" in io.k8s.api.core.v1.Container,
概要:出力コンテンツを詳細に確認してください。具体的には、中括弧と近くのテキストのプロンプトを確認してください。最後に、エラーがどのように発生したかを確認できます。