有什么方法可以在命名空间级别配置nodeSelector
?
我只想为此名称空间在某些节点上运行工作负载。
答案 0 :(得分:6)
要实现此目的,您可以使用PodNodeSelector
准入控制器。
首先,您需要在 kubernetes-apiserver 中启用它:
/etc/kubernetes/manifests/kube-apiserver.yaml
:
--enable-admission-plugins=
PodNodeSelector
参数现在,您可以在名称空间的注释中指定scheduler.alpha.kubernetes.io/node-selector
选项,例如:
apiVersion: v1
kind: Namespace
metadata
name: ns1
annotations:
scheduler.alpha.kubernetes.io/node-selector: env=test
spec: {}
status: {}
这些步骤之后,在此命名空间中创建的所有pod都会自动添加此部分:
nodeSelector
env: test
有关PodNodeSelector
的更多信息,您可以在Kubernetes官方文档中找到:
https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#podnodeselector
答案 1 :(得分:0)
我完全同意@kvaps的答案,但是有一些遗漏:有必要在您的节点中添加标签:
kubectl label node <yournode> env=test
例如,在名称空间中使用scheduler.alpha.kubernetes.io/node-selector: env=test
创建的pod只能在带有env=test
标签的节点上进行调度