Kubernetes kube-scheduler 详细介绍

一、kube-scheduler 概述

        kube-scheduler 是 Kubernetes 中的核心组件之一,它负责将新创建但未指定 Node 的 Pod 分配到适合的 Node 上进行运行,这个过程称为 调度 (scheduling)

二、工作流程

  1. 检测到新 Pod:kube-apiserver 收到新创建的 Pod 请求后会存入 etcd,等待 kube-scheduler 调度

  2. 调度 Pod:kube-scheduler 获取未调度的 Pod

  3. 进行筛选与评分:对所有 Node 进行筛选、分数、排序

  4. 分配 Node:选出最佳节点给该 Pod

  5. 写入 Pod 指定节点:将结果写回 kube-apiserver

三、调度策略

Kubernetes 使用两步法进行调度:

  1. Predicate (Filter) 策略:筛选出合选节点

    • 如 PodFitsResources (资源是否足够)

    • PodFitsHost (节点名是否匹配)

    • PodToleratesNodeTaints (是否容忍 taint)

  2. Priority (Score) 策略:对合选节点分值

    • LeastRequestedPriority (资源资池最大余量)

    • BalancedResourceAllocation (资源均衡)

    • NodeAffinityPriority (节点亲和)

四、常用配置项

kube-scheduler 支持通过参数或配置文件进行调整:

--kubeconfig=/etc/kubernetes/scheduler.conf
--leader-elect=true
--bind-address=127.0.0.1
--scheduler-name=default-scheduler
--config=/etc/kubernetes/scheduler-config.yaml

配置文件 scheduler-config.yaml 示例:

apiVersion: kubescheduler.config.k8s.io/v1
kind: KubeSchedulerConfiguration
clientConnection:
  kubeconfig: "/etc/kubernetes/scheduler.conf"
leaderElection:
  leaderElect: true
profiles:
  - schedulerName: default-scheduler
    plugins:
      score:
        enabled:
          - name: NodeResourcesBalancedAllocation
    pluginConfig:
      - name: NodeResourcesBalancedAllocation
        args:
          resources:
            - name: cpu
              weight: 1
            - name: memory
              weight: 1

五、实际应用场景

5.1 自定义 Scheduler

可以设置 Pod 属性中的 schedulerName ,使用自定义调度器:

spec:
  schedulerName: my-custom-scheduler

配合自己开发的策略插件,实现更复杂的调度逻辑。

5.2 构造多调度器互不干扰环境

        对于有多种运维策略需求的集群,可构造多个 scheduler 执行不同策略,通过 Pod 指定 schedulerName 分层执行。

5.3 跟踪 Scheduler 调度过程

使用日志查看 Pod 是否被分配,或查看 Events:

kubectl describe pod <pod-name>

或者监控 scheduler 日志:

journalctl -u kube-scheduler

六、总结

        kube-scheduler 是 Kubernetes 中非常重要的组件,它确保了 Pod 能被合理分配到合选节点。熟悉它的调度模型和扩展性将有助于建立高效、稳定的 Kubernetes 运行环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Stay Passion

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

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

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

打赏作者

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

抵扣说明:

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

余额充值