2017-10-16 71 views
0

尝试在kubernetes中创建POD时出现以下错误。Kubernetes - 发现无效的字段规范错误

# kubectl create -f nginx-deployment-prod.yaml 
error: error validating "nginx-deployment-prod.yaml": error validating data: found invalid field spec for v1.ObjectMeta; if you choose to ignore these errors, turn validation off with --validate=false 

的YAML文件如下:

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: nginx-deployment-prod 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: nginx-deployment-prod 
     spec: 
     containers: 
      - 
      image: "nginx:1.7.9" 
      name: nginx-deployment-prod 
      ports: 
      - 
      containerPort: 80 

经过了YAML,如果它是有效的或者是不使用http://www.yamllint.com/;请让我知道如何解决这个问题。

+0

我看到下面已经是答案,但这里是YAML转换成JSON找出问题https://jsonformatter.org/yaml-to-json – JBone

回答

1

您在格式化yaml文件时遇到了问题:spec应与metadata处于同一级别。

正确nginx-deployment-prod.yaml是:

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: nginx-deployment-prod 
spec: 
    replicas: 1 
    template: 
    metadata: 
     labels: 
     app: nginx-deployment-prod 
    spec: 
     containers: 
     - name: nginx-deployment-prod 
      image: "nginx:1.7.9" 
      ports: 
      - containerPort: 80 
+0

感谢链接指出错误并予以纠正。有效。 – Kris