【问题标题】:error validating data: [ValidationError(Pod): unknown field "containers" in io.k8s.api.core.v1.Pod验证数据时出错:[ValidationError(Pod): io.k8s.api.core.v1.Pod 中的未知字段“容器”
【发布时间】:2019-06-20 18:45:51
【问题描述】:

我正在尝试创建一些示例 kubernetes pod 文件。

cat << EOF | kubectl create -f -
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
containers:
- name: nginx
  image: nginx
EOF

但在执行此操作时,我遇到了错误。

错误:验证“pod.yaml”时出错:验证数据时出错: [ValidationError(Pod):未知字段“容器”在 io.k8s.api.core.v1.Pod,ValidationError(Pod):未知字段“name”在 io.k8s.api.core.v1.Pod];如果您选择忽略这些错误,请转 使用 --validate=false 关闭验证

【问题讨论】:

  • 如果您在陈述中提出的确切格式是正确的,那么我不得不说问题出在格式上。见kubernetes.io/docs/concepts/workloads/pods/pod-overview/…
  • 谢谢@ShudiptaSharma。它的格式问题。在观察了一段时间的错误之后,我才知道它清楚地显示了 pod 中的哪些字段不在正确的空间缩进中。观察有帮助:)

标签: kubernetes kubectl


【解决方案1】:

我不确定确切的问题,但通过适当的空格缩进解决了它

---
apiVersion: v1
kind: Pod
metadata:
 name: nginx
spec:
 containers:
   - name: nginx
     image: nginx

它现在对我有用,有适当的空间。我的坏

【讨论】:

  • 两个版本都是有效的 YAML 文档。在您的问题中,spec 是 YAML 文件的根级映射中的一个键,值为 null,类似的 containers 是同一映射中的一个键,其值为一个包含一个条目的列表。在您的回答中,spec 的值是一个映射,它有一个键 containers。由于 Kubernetes 不知道根级密钥 containers,因此会引发错误。
猜你喜欢
  • 2023-03-15
  • 2021-12-05
  • 2021-11-22
  • 1970-01-01
  • 2019-07-06
  • 2021-02-19
  • 1970-01-01
  • 1970-01-01
  • 2019-06-12
相关资源
最近更新 更多