首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将命名空间分配给某些节点?

如何将命名空间分配给某些节点?
EN

Stack Overflow用户
提问于 2018-09-25 05:02:02
回答 2查看 20.7K关注 0票数 21

有没有办法在名称空间级别配置nodeSelector

我只想在此命名空间的某些节点上运行工作负载。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-25 05:02:02

要实现这一点,可以使用PodNodeSelector准入控制器。

首先,您需要在kubernetes-apiserver中启用它

find --enable-admission-plugins=

  • add parameter

  • 编辑/etc/kubernetes/manifests/kube-apiserver.yaml
    • find --enable-admission-plugins=
    • add

现在,您可以在名称空间的注释中指定scheduler.alpha.kubernetes.io/node-selector选项,例如:

代码语言:javascript
复制
apiVersion: v1
kind: Namespace
metadata:
 name: your-namespace
 annotations:
   scheduler.alpha.kubernetes.io/node-selector: env=test
spec: {}
status: {}

完成这些步骤后,在此命名空间中创建的所有pod都将自动添加此部分:

代码语言:javascript
复制
nodeSelector
  env: test

有关PodNodeSelector的更多信息,可以在Kubernetes官方文档中找到:https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#podnodeselector

kubeadm用户

如果您使用kubeadm部署了您的集群,并且如果您想使此配置持久存在,则必须更新kubeadm配置文件:

代码语言:javascript
复制
kubectl edit cm -n kube-system kubeadm-config

apiServer部分下使用自定义值指定extraArgs

代码语言:javascript
复制
apiServer: 
  extraArgs: 
    enable-admission-plugins: NodeRestriction,PodNodeSelector

然后更新所有控制平面节点上的kube-apiserver静态清单:

代码语言:javascript
复制
# Kubernetes 1.22 and forward:
kubectl get configmap -n kube-system kubeadm-config -o=jsonpath="{.data}" > kubeadm-config.yaml

# Before Kubernetes 1.22:
# "kubeadmin config view" was deprecated in 1.19 and removed in 1.22
# Reference: https://github.com/kubernetes/kubeadm/issues/2203
kubeadm config view > kubeadm-config.yaml

# Update the manifest with the file generated by any of the above lines 
kubeadm init phase control-plane apiserver --config kubeadm-config.yaml

库贝斯普雷用户

您可以只对您的api服务器配置变量使用kube_apiserver_enable_admission_plugins变量:

代码语言:javascript
复制
 kube_apiserver_enable_admission_plugins:
   - PodNodeSelector
票数 39
EN

Stack Overflow用户

发布于 2019-02-21 17:09:28

我完全同意@kvaps的回答,但是缺少了一些东西:有必要在节点中添加一个标签:

代码语言:javascript
复制
kubectl label node <yournode> env=test

这样,在名称空间中使用scheduler.alpha.kubernetes.io/node-selector: env=test创建的pod将只能在具有env=test标签的节点上进行调度

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52487333

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档