我正在尝试使用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 回答
在yaml中,令牌
yes
计算为布尔值true
(http://yaml.org/type/bool.html)在内部,
kubectl
将yaml转换为json作为预处理步骤 . 您的节点选择器正在转换为"nodeSelector":{"ingress":true}
,在尝试解码为字符串到字符串映射时失败 .您可以像这样引用字符串以强制将其视为字符串:
ingress: "yes"