在Pod的定义文件(YAML或JSON)中,可以通过.spec.nodeSelector字段来设置NodeSelector。 Pod将会被调度到至少有一个标签满足NodeSelector中所有指定条件的节点上。 POD配置示例 apiVersion:v1kind:Podmetadata:name:my-podspec:nodeSelector:kubernetes.io/hostname:uat-xxxxx# 关键代码containers:-name:my-containerima...
如果在与 nodeAffinity 类型关联的 nodeSelectorTerms 中指定多个条件, 只要其中一个 nodeSelectorTerms 满足(各个条件按逻辑或操作组合)的话,Pod 就可以被调度到节点上 如果在与 nodeSelectorTerms 中的条件相关联的单个 matchExpressions 字段中指定多个表达式,则只有当所有表达式都满足(各表达式按逻辑与操作组合)时,...
如果需要限制Pod到指定的Node上运行,则可以给Node打标签并给Pod配置NodeSelector。 1.2. 使用方式 1.2.1. 给Node打标签 # get node的name kubectl get nodes # 设置Label kubectl label nodes <node-name> <label-key>=<label-value> # 例如 kubectl label nodes node-1 disktype=ssd # 查看Node的Label ku...
这时候就可以在Pod的定义中添加nodeSelector字段,指定一个键值对,例如app: my-app。然后,K8S调度器将查找具有app=my-app标签的节点,并将该Pod调度到其中之一上运行。 需要注意的是,nodeSelector是一种基本的、也是最简单的调度机制,还有其他更高级的调度特性可供选择,如Node Affinity、nodeAffinity、podAffinity、Ta...
实战案例演示完毕,接下来看看nodeSelector的使用场景: 节点特性要求:这个使用场景针对的就是应用程序有特定的硬件或软件要求,例如goweb这个应用程序可能需要在具有高性能 GPU 的节点上运行,这时候就可以为这些节点添加相应的标签,然后使用nodeSelector将Pod调度到这些节点上。
从这里开始,通过实战演示如何在K8S集群中使用nodeSelector来将Pod调度到指定的节点上。 1步骤 1:创建Node标签 首先,我们需要为目标节点添加标签。在本次实战中,我们将以goweb应用为例,将Pod调度到具有app=goweb-node标签的节点上。在Master节点上执行以下命令,为节点添加标签: ...
nodeName: 'k8s-worker-2' containers: - name: webapp image: nginx ports: - containerPort: 80 5.2、nodeSelector调度 比如要将Pod调度到具有"special-app"="specialwebapp"的label节点上。 查看节点信息: kubectl describe node k8s-worker-2 Pod的yaml编排文件: ...
在node节点上,需要部署kubelet和kube-proxy两个K8S组件,除此之外,还需要部署Docker环境、CNI网络插件flannel以及coredns服务。 根据我们的架构,我们在10.4.7.21和10.4.7.22 两台服务器上同时部署Master节点和Node节点,所以,这两台服务器既是Master节点,又是Node节点。 「一、部署kubelet服务」 安装Docker环境 [root@k8s...
在k8s的调度中,有强制性的nodeSelector,节点亲和性nodeAffinity、Pod亲和性podAffinity、pod反亲和性podAntiAffinity。本篇先对nodeSelector和nodeAffinity做个初探。 进入主题之前,先看看创建pod的大概过程 kubectl向apiserver发起创建pod请求,apiserver将创建pod配置写入etcd ...
2.标签选择器nodeSelector的使用 1).查看各个节点的标签 [root@k8s-m1 ~]#kubectl get node --show-labels NAME STATUS ROLES AGE VERSION LABELS k8s-m1 Ready control-plane,master 15m v1.22.10 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/host...