首页 > 解决方案 > 验证数据时出错:ValidationError(Deployment.spec.template.metadata):未知字段

问题描述

kube@Big:/mnt/c/Users/Big_Picture/Desktop/ClinZilla$ kubectl apply -f yaml-validator.yaml 错误:验证“yaml-validator.yaml”时出错:验证数据时出错:ValidationError(Deployment.spec.template.元数据):io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta 中的未知字段“nodeSelector”;如果您选择忽略这些错误,请使用 --validate=false检查器 yaml 语法关闭验证

Reuslt运行命令

标签: kubernetesyamlkubectl

解决方案


NodeSelector 不是 pod 模板的“元数据”部分的字段。它需要在“spec.template.spec”下。

看这个例子:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: rss-site
  labels:
    app: web
spec:
  replicas: 2
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      nodeSelector: <--- WRONG
        disktype: ssd <-- ALSO WRONG BECAUSE IT IS PART OF NODESELECTOR
      labels:
        app: web
    spec:
      nodeSelector: <--- CORRECT
        disktype: ssd 
      containers:
        - name: front-end
          image: nginx
          ports:
            - containerPort: 80
        - name: rss-reader
          image: nickchase/rss-php-nginx:v1
          ports:
            - containerPort: 88

推荐阅读