首页 文章

Kubernetes nodeSelector无法在pod,复制控制器和部署中工作

提问于
浏览
1

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

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

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

将“部署”或“ReplicationController”替换为“Pod”,它在任何地方都是相同的错误 . 这是我的测试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 回答

  • 1

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

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

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

相关问题