Kubernetes nodeSelector在pod,复制控制器和部署中不起作用

时间:2017-03-08 20:42:52

标签: kubernetes

我尝试使用nodeSelector设置节点关联,如下所述:https://kubernetes.io/docs/user-guide/node-selection/

但是,无论我使用Pod,复制控制器还是部署,我都无法让kubectl create正常工作。这是我得到的错误,它发生在所有类似的事情上:

  

来自服务器的错误(BadRequest):创建" test-pod.yaml"时出错:版本中的Pod" v1"无法作为Pod处理:[pos 222]:json:期待char'"'但得到了char'

替代"部署"或" ReplicationController" for" Pod"而且到处都是同样的错误。这是我的测试窗口的yaml文件:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    ingress: yes

如果删除文件的nodeSelector部分,则pod将成功构建。这也适用于部署和复制控制器。我确保将正确的标签添加到节点中。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

在yaml中,令牌yes评估为布尔值truehttp://yaml.org/type/bool.html

在内部,kubectl将yaml转换为json作为预处理步骤。您的节点选择器正在转换为"nodeSelector":{"ingress":true},在尝试解码为字符串到字符串的映射时会失败。

您可以像这样引用字符串以强制将其视为字符串: ingress: "yes"