详解kube-scheduler

1. kube-scheduler 是什么?

kube-scheduler 就像是 Kubernetes 集群的调度大管家。它的主要工作就是决定新创建的 Pod 应该跑到哪个节点上。就好像给一堆人找家,要看他们的需求和周围环境,才能决定最合适的地方。它的任务包括:

  • 确定哪个节点最适合 Pod 的需求。
  • 查看节点的状态,保证 Pod 跑在健康的地方。
  • 支持各种各样的调度策略,比如优先级、亲和性等等。

2. kube-scheduler 是怎么工作的?

kube-scheduler 的工作原理其实挺简单的:

  1. 当你新建一个 Pod 的时候,kube-scheduler 就收到了这个 Pod 的要求。
  2. 它会把眼睛放在集群里的每个节点上,看看哪个节点最适合这个 Pod。
  3. 根据节点的情况,比如资源使用情况、负载情况等,选择一个最合适的节点。
  4. 把 Pod 安排在这个节点上,然后把这个好消息告诉集群,说:“我找到家啦!”

3. kube-scheduler 的调度原理是啥?

kube-scheduler 的调度算法其实挺聪明的。它考虑了很多因素:

  • 看看节点上有没有足够的资源,比如 CPU、内存等。
  • 看看节点是不是已经太累了,负载是不是太高了。
  • 确保选的节点是健康的,不会突然挂掉。

4. kube-scheduler 还能怎么搞?

除了默认的调度算法,kube-scheduler 还支持自定义调度策略:

  • 你可以给节点和 Pod 打上标签,然后告诉 kube-scheduler,只找标签匹配的节点。
  • 如果你有特殊的需求,还可以写个程序,告诉 kube-scheduler 怎么调度。
  • 有些 Pod 很重要,可以给它们设置优先级,让它们先上车。

5. 怎么让 kube-scheduler 更牛?

为了让 kube-scheduler 更聪明、更强大,我们可以做一些优化和定制:

  • 调整它的配置参数,让它更适应我们的集群规模和性能需求。
  • 使用一些插件,让它的功能更丰富,比如支持新的调度算法。
  • 监控它的表现,找到问题所在,然后调整参数,让它跑得更顺畅,主要是调度效率和吞吐量。

总结

kube-scheduler 在 Kubernetes 集群中扮演着一个非常重要的角色,相当于集群的调度大管家。
这篇文章比较简单,所以我们可以复习一下前面的内容,之前使用的都是白话语言,通俗易懂,在理解过后我希望复习更专业一些的内容

Kubernetes 核心组件概念复习总结

1. kube-apiserver

kube-apiserver 是 Kubernetes 集群的 API 服务端,负责提供 Kubernetes API 的访问入口。所有的操作都通过 kube-apiserver 进行处理,包括创建、更新和删除资源对象等。它是集群中的控制中心,负责接收和处理用户的请求,并将请求转发给其他组件进行处理。

2. kube-controller-manager

kube-controller-manager 是 Kubernetes 集群中的控制器管理器,负责管理集群中的各种控制器。它包括多个控制器,如 Node Controller、Replication Controller、Endpoint Controller 等,每个控制器负责监控和管理集群中的一种资源类型。通过控制器管理器,我们可以实现资源的自动化管理和维护。

3. kube-scheduler

kube-scheduler 是 Kubernetes 集群中的调度器,负责将新创建的 Pod 分配到合适的节点上运行。它根据一组预定义的调度策略,评估节点的可用资源和负载情况,选择最佳的节点进行调度。kube-scheduler 是集群的调度大脑,确保集群的资源被充分利用,并且满足 Pod 的需求。

4. kubelet

kubelet 是运行在每个节点上的代理服务,负责管理节点上的容器和 Pod。它通过与 kube-apiserver 进行通信,接收集群中的任务,并根据任务的要求创建、启动、停止和监控容器。kubelet 还负责与容器运行时(如 Docker)进行交互,确保容器的状态和运行情况。

5. kube-proxy

kube-proxy 是 Kubernetes 集群中的网络代理服务,负责实现集群内部的服务发现和负载均衡。它通过监视集群中的服务和节点信息,维护一张网络规则表,将请求转发到合适的 Pod 上。kube-proxy 可以实现多种负载均衡策略,包括轮询、IP 地址哈希等,确保服务的高可用性和稳定性。

6. etcd

etcd 是 Kubernetes 集群中的分布式键值存储数据库,用来保存集群的配置信息和状态数据。所有的集群信息都存储在 etcd 中,包括节点信息、Pod 信息、服务信息等。etcd 提供了强一致性的数据存储和访问接口,确保集群的状态和配置信息的一致性和可靠性。

7. 容器运行时

容器运行时是 Kubernetes 中用来管理和运行容器的关键组件之一。它负责在每个节点上创建和管理容器,提供了一个抽象层,使得容器可以在不同的操作系统和云平台上运行。常见的容器运行时包括 Docker、containerd、cri-o 等。

组件名称功能描述
kube-apiserver提供 Kubernetes API 的访问入口,负责接收和处理用户的请求。
kube-controller-manager管理集群中的各种控制器,如 Node Controller、Replication Controller 等。
kube-scheduler将新创建的 Pod 分配到合适的节点上运行,确保集群资源的充分利用和 Pod 的需求满足。
kubelet在每个节点上运行的代理服务,负责管理节点上的容器和 Pod。
kube-proxy管理集群内部的服务发现和负载均衡,确保服务的高可用性和稳定性。
etcd分布式键值存储数据库,用于保存集群的配置信息和状态数据,确保集群状态的一致性和可靠性。
容器运行时负责在节点上创建和管理容器,提供容器生命周期管理、资源隔离、存储和网络管理、日志和监控等功能。

有些东西就是需要反复出现才能记得住,同样后期文章我尽量多谢一点矛盾,因为我了解到矛盾会使记忆更深刻

晚安!
2024-04-05 22:49 加一张图复习理解

在这里插入图片描述

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

达分奇先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值