6-2 nodeSelector, nodeName, node亲和与反亲和

本文介绍了Kubernetes中Pod调度的策略,包括nodeSelector、nodeName和node affinity(硬亲和、软亲和、反亲和)。通过节点选择器设置标签来指定Pod调度到特定节点,nodeName直接指定调度节点,而node affinity提供了更灵活的标签匹配条件,允许设置硬性要求或倾向性选择。
摘要由CSDN通过智能技术生成

前言

Pod在创建时,master会根据node节点物理机的状态,pod资源请求requests,淘汰掉不符合要求的node。剩下的node会根据评分机制选择最高分的。分数相同也会随机选一个。

在生产环境中,会根据实际需求人为干预调度过程。如指定创建在某个pod,或倾向创建在某些pod等。



nodeSelector

nodeSelector即节点选择器,事先为node打标签,然后选择拥有该标签的node进行调度。

查看node节点默认标签:

sudo kubectl describe node 192.168.100.156
Name: 192.168.100.156 
Roles: node 
Labels: beta.kubernetes.io/arch=amd64 
		beta.kubernetes.io/os=linux 
		kubernetes.io/arch=amd64 
		kubernetes.io/hostname=192.168.100.156
		kubernetes.io/os=linux 
		kubernetes.io/role=node

为node添加标签,采用key=value格式。

kubectl label node 192.168.100.156 project="eshop"
kubectl label node 192.168.100.156 disktype="ssd"

两个条件都必须满足的nodes才被选择,如多个node都符合再根据高分选出其中一个node。

kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    app: myserver-tomcat-app2-deployment-label
  name: myserver-tomcat-app2-deployment
  namespace: myserver
spec:
  replicas: 4
  selector:
    matchLabels:
      app: myserver-tomcat-app2-selector
  template:
    metadata:
      labels:
        app: myserver-tomcat-app2-selector
    spec:
      nodeSelector:
        project: eshop
        disktype: ssd
      containers:
      - name: myserver-tomcat-app2-container
        image: tomcat:7.0.94-alpine 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值