我正在尝试使用 nodeAffinity 在 kubernetes 1.9 中创建一个 statefulset。我发现了一些带有简单节点选择器的示例,但这并不是我真正想要完成的。我想确保 statefulset 实例始终在同一个节点上启动,如下所示:
- node-0 上的 statefulpod-0
- node-1 上的 statefulpod-1
- node-2 上的 statefulpod-2
我尝试使用 statefulpod-name 标记相应的节点,并在 nodeselector 或 nodeaffinity 中使用向下 api,但我无法生成一个工作 yaml 来执行此操作。
这个例子:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
matchExpressions:
- key: statefulpodname
operator: In
values:
- valueFrom:
fieldRef:
fieldPath: metadata.name
错误:
ValidationError(StatefulSet.spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution):io.k8s.api.core.v1.NodeSelector 的类型无效:得到“map”,预期为“array”;
这个例子:
nodeSelector:
statefulpodname:
- valueFrom:
fieldRef:
fieldPath: metadata.name
错误:
io.k8s.api.core.v1.PodSpec.nodeSelector 的类型无效:得到“array”,预期为“string”
有任何想法吗?