[kubernetes]9-2 Scheduler--- 玩转pod调度(上)

 

9-2 Scheduler--- 玩转pod调度(上)

调度过程

首先需要知道调度哪个pod,pod的信息 pod的信息需要去优先级队列里拿.优先级队列用于存储等待调度的pod的信息,每个pod并不是对等,优先级高的需要提前调度.

informer会通用apiserver 去监听etcd的数据变化,如果发现有等待调度的pod,那就把pod的信息放到优先级队列中,然后informer的工作就完成了.然后循环开始工作.(新增的pod在刚刚创建的时候是没有nodeName的,只有在调度之后才会有.)

cache会从apiserver 拿到节点列表,以及节点的详细信息(cpu mem disk images pods),并缓存在cache中.

然后开始调度,调度一般分为两步,1 预选策略(predicate) 排除不满足要求的节点 剩余的资源满足要求,端口不冲突,vpc满足需要,node状态属于健康. 2 优选策略,对上述节点进行评分,选择最高分的node 成为最终调度的节点.

然后Pod和Node就建立一个绑定关系,并把信息告诉apiserver,然后apiserver就会去更新pod的nodename的字段.

然后指定node上的kubelet会把服务给调度起来

可以通过修改label,影响这个预选策略.

 

 

 

实践

创建 web-dev-node.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-demo-node
  namespace: dev
spec:
  selector:
    matchLabels:
      app: web-demo-node
  replicas: 1
  template:
    metadata:
      labels:
        app: web-demo-node
    spec:
      containers:
      - name: web-demo-node
        image: harbor.pdabc.com/kubernetes/web:v3
        ports:
        - containerPort: 8080
# 亲和性 与 节点亲和性
      affinity:
        nodeAffinity:
# 意思是必须要满足下面的条件 才能调度 
          requiredDuringSchedulingIgnoredDuringExecution:
# 节点的选择策略 可以定义多个nodeSelectorTerms 表示或的关系
            nodeSelectorTerms:
# 匹配一个表达式 必须是
            - matchExpressions:
              - key: beta.kubernetes.io/arch
                operator: In
                values:
                - amd64
# 最好是满足条件 不过没有也没关系 
          preferredDuringSchedulingIgnoredDuringExecution:
          - weight: 1
            preference:
              matchExpressions:
              - key: disktype
                operator: NotIn
                values:
                - ssd


 

查看node架构

kubectl  get nodes

kubectl get nodes kubernetes-node-03 -o yaml

 

kubectl  apply -f web-dev-node.yaml 

的确是调度在不是ssd的node上

如果架构不满足 pod会处于pending状态,可以通过describe 查看pending的原因.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷来辣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值