Kubernetes NodeSelector在POD,复制控制器和部署中不工作



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

但是,无论我使用POD,复制控制器还是部署,我都无法使Kubectl创建以正常工作。这是我遇到的错误,并且一切都同样发生:

服务器中的错误(badrequest):创建" test-pod.yaml":版本" v1"中的pod时的错误无法将其处理为pod:[pos 222]:json:json:期望char'''T'

替换为" pod"的"部署"或" replicationController",到处都是相同的错误。这是我用于测试吊舱的YAML文件:

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

如果我删除了文件的NodeSelector部分,则POD将成功构建。这也可与部署和复制控制器一起使用。我确保将适当的标签添加到节点。

任何帮助将不胜感激!

在yaml中,令牌yes评估为布尔 true(http://yaml.org/type/bool.html)

在内部,kubectl将YAML转换为JSON作为预处理步骤。您的节点选择器正在转换为 "nodeSelector":{"ingress":true},在试图解码为字符串绘制地图时会失败。

您可以引用这样的字符串,以强迫将其视为字符串: ingress: "yes"

最新更新