1. Kubernetes NodeSelector 的基本概念 NodeSelector 是 Kubernetes 提供的一种简单但强大的调度机制,允许用户根据节点的标签(Labels)来选择 Pod 应该运行的节点。每个节点可以有多个标签,Pod 可以使用 NodeSelector 来匹配这些标签,从而实现特定的调度需求。 2. 在 Kubernetes 中使用 NodeSelector 来选择节点 要在...
给某个资源对象定义一个Label,就相当于给它打了一个标签,随后可以通过Label Selector(标签选择器)查询和筛选拥有某些Label的资源对象,Kubernetes通过这种方式实现了类似SQL的简单又通用的对象查询机制。 Label Selector可以被类比为SQL语句中的where查询条件,例如,name=redis-slave这个Label Selector作用于Pod时,...
多个labels(硬策略) apiVersion: apps/v1 kind: Deployment metadata: name: busy-deployment namespace: video spec: replicas: 1 selector: matchLabels: app: busy #标签 template: metadata: labels: app: busy #标签 spec: affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelector...
使用nodeSelector 可以约束 Pod 在有特定标签的节点上运行,例如我们在249.11打上 A=a的标签 然后给nginx打上参数Pod.spec.nodeSelector:A:a。 这时由于249.11节点是notReady的,所以pod状态仍然为pending。通过kubectl describe pod可以查看pod的event信息。 这时候我们给249.12也打上 A=a的标签,那么nginx的pod就可以...
$ kubectl label nodes node1 label1=app1 ``` 2. 创建节点 node2,并为其打上标签 label2=app2 ```bash $ kubectl label nodes node2 label2=app2 ``` ### 步骤二:创建 Pod,同时配置多个 nodeselector 接下来,我们需要创建一个 Pod,并配置多个 nodeselector,让 Pod 能够选择到具有特定标签的节点。
nodeSelector是什么鬼?这么说吧,假设有一个K8S集群,其中有多个节点,并且想将一个特定的应用程序只部署在具有特定标签的节点上。这时候就可以在Pod的定义中添加nodeSelector字段,指定一个键值对,例如app: my-app。然后,K8S调度器将查找具有app=my-app标签的节点,并将该Pod调度到其中之一上运行。
在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...
从这里开始,通过实战演示如何在K8S集群中使用nodeSelector来将Pod调度到指定的节点上。 1步骤 1:创建Node标签 首先,我们需要为目标节点添加标签。在本次实战中,我们将以goweb应用为例,将Pod调度到具有app=goweb-node标签的节点上。在Master节点上执行以下命令,为节点添加标签: ...
从这里开始,通过实战演示如何在K8S集群中使用nodeSelector来将Pod调度到指定的节点上。 1步骤 1:创建Node标签 首先,我们需要为目标节点添加标签。在本次实战中,我们将以goweb应用为例,将Pod调度到具有app=goweb-node标签的节点上。在Master节点上执行以下命令,为节点添加标签: ...
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...