首页 > 其他分享 >在K8S中,kube-apiserver和kube-scheduler的作用是什么?

在K8S中,kube-apiserver和kube-scheduler的作用是什么?

时间:2024-10-26 20:59:10浏览次数:1  
标签:调度 apiserver scheduler Pod kube 节点

在Kubernetes(K8s)中,kube-apiserver和kube-scheduler是两个至关重要的组件,它们各自承担着不同的职责,共同协作以确保集群的正常运行。

1. kube-apiserver的作用
  1. 提供API接口:
    • kube-apiserver是Kubernetes API的入口,提供了RESTful风格的API接口,支持JSON和YAML格式的数据交互。集群内部组件和集群外部客户端都可以通过调用这些API来访问和管理集群资源。
  2. 身份认证与授权:
    • kube-apiserver负责对请求的客户端进行身份认证,支持多种认证方式,如x509证书、Bearer Token等。
    • 它还基于RBAC(基于角色的访问控制)模型对客户端的操作请求进行授权控制,确保只有被授权的用户/服务才能访问对应的资源。
  3. 资源存储与管理:
    • kube-apiserver将集群中的所有资源对象(如Pod、Service、Deployment等)的状态数据存储在etcd中。
    • 它提供了资源对象的增删改查等API操作,间接操作etcd中的数据,确保资源的一致性和可靠性。
  4. 验证与准入控制:
    • kube-apiserver会对客户端提交的资源对象进行语法和语义验证,确保资源定义的合法性。
    • 它还支持插件化的准入控制机制,可以通过插件来实现自定义的准入控制规则,以确保操作符合Kubernetes系统的规范和限制。
  5. Watch功能:
    • kube-apiserver提供Watch功能,客户端可以Watch感兴趣的资源对象,实时获取其状态变化事件。这为构建基于事件驱动的控制器提供了基础。
  6. 高可用性与扩展性:
    • kube-apiserver可以部署多个实例,形成高可用的API服务。
    • 它还可以通过kube-aggregator机制扩展新的API资源和功能,以满足不同的业务需求。
2. kube-scheduler的作用
  1. Pod调度:
    • kube-scheduler负责将Pod(Kubernetes中的最小部署单元)调度到合适的节点上运行。
    • 它根据一定的调度策略和算法,为待调度的Pod寻找一个最合适的节点运行,以确保资源的充分利用和Pod的高可用性。
  2. 监听Pod事件:
    • kube-scheduler会监听集群中的未调度Pod,当有新Pod创建且未被调度时,它会捕获到这个事件,并启动调度流程。
  3. 预选与优选过程:
    • 在调度过程中,kube-scheduler首先会进行预选(Predicates)过程,通过一系列规则过滤掉不满足Pod运行要求的节点。
    • 接着,在通过预选的节点中,它会进行优选(Priorities)过程,根据一定的算法为每个节点打分,选择得分最高的节点作为Pod的最终运行节点。
  4. 绑定节点:
    • 最后,kube-scheduler会将Pod绑定到选定的节点上,并通知kubelet在该节点上启动Pod。
  5. 可扩展性与灵活性:
    • kube-scheduler被设计为可扩展和灵活的组件,允许用户根据自身需求进行定制。
    • 用户可以通过定义调度策略和扩展调度器的插件来适应不同的业务场景,以满足特定的调度需求。

综上所述,kube-apiserver和kube-scheduler在Kubernetes集群中发挥着至关重要的作用。kube-apiserver作为API接口的提供者和管理者,确保了集群资源的统一管理和访问控制;而kube-scheduler则负责将Pod调度到合适的节点上运行,以实现资源的优化利用和Pod的高可用性。两者共同协作,为Kubernetes集群的稳定运行提供了坚实的保障。

标签:调度,apiserver,scheduler,Pod,kube,节点
From: https://www.cnblogs.com/huangjiabobk/p/18504516

相关文章

  • kubernetes(k8s)简易学习
    容器与虚拟机容器为一种虚拟化技术,用来隔离运行在宿主机上的不同进程,使得进程之间、进程与操作者OS相互隔离、互不影响的技术。共享主机操作系统内核,无需虚拟化整个硬件。单个容器跑单个应用。优点:简易部署、启动快速、组合服务、易于迁移。虚拟机需要完整操作系统、虚拟化硬......
  • 【K8S系列】Kubernetes pod节点Unknown 问题及解决方案详解【已解决】
    在Kubernetes中,Pod的状态为Unknown表示无法获取Pod的当前状态。这通常意味着KubernetesAPI服务器无法与Pod所在的节点通信,或者Kubelet进程遇到问题。以下将详细介绍Unknown状态的原因、解决方案以及如何配置健康检查以提高系统的稳定性。一、Unknown状态......
  • Kubernetes的备份和恢复最佳实践是什么
    Kubernetes备份和恢复最佳实践包括:确保集群数据的完整性和一致性、定期执行备份和测试、利用自动化工具如Velero、备份集群元数据以及工作负载数据、考虑多地域灾备策略。在这些实践中,确保集群数据的完整性和一致性是极其重要的。这意味着在备份过程中,应当捕捉到Kubernetes集群的......
  • kubernetes【k8s介绍】【快速部署应用,管理容器】
    k8s提供:集中式管理集群的方法,也可快速部署应用1.关于部署方案2.什么时候需要k8s当你的应用只是跑在一台机器,直接一个docker+docker-compose就够了,方便轻松;当你的应用需要跑在3,4台机器上,你依旧可以使用每台机器单独配置运行环境+负载均衡器;当你的应用需要跑在10,20台机器......
  • 在K8S中,kube-proxy 三种工作模式和原理是什么?
    在Kubernetes(K8s)中,kube-proxy是负责实现Service的网络代理和负载均衡功能的组件。它支持三种不同的工作模式,每种模式的工作原理和特点各不相同。以下是kube-proxy的三种工作模式和原理的详细解释:1.Userspace模式工作原理:kube-proxy监听KubernetesAPI服务器中Service和Endpo......
  • KubeSphere 社区双周报|KubeSphere v4 添加 KubeEdge 扩展组件
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2024.10.11-10.24。贡献者名单近期重要更新KubeSphere......
  • kubesphere搭建seata2.0.0
    一、环境准备新建配置字典详细配置,具体解释请参考官网说明spring:application:name:seata-serverserver:port:7091console:user:username:seatapassword:seatalogging:config:classpath:logback-spring.xmlfile:path:${lo......
  • kubesphere搭建nacos2.2.3(MySQL)
    环境准备创建nacos数据库,sql来自于nacos官网,自行查找并执行启动环境配置如图具体配置如下具体含义请参考nacos官网#***************SpringBootRelatedConfigurations***************####Defaultwebcontextpath:server.servlet.contextPath=/nacos###Inc......
  • 【K8s】Kubernetes 证书管理工具 Cert-Manager
    本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发、订阅专栏!专栏订阅入口| 精选文章 | Kubernetes |Docker|Linux |羊毛资源 | 工具推荐 |往期精彩文章【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决......
  • Kubernetes的yaml文件编写技巧
    一、了解YAML文件的基本结构YAML文件通常由以下四个关键部分组成:apiVersion:指定KubernetesAPI的版本。kind:指定要创建的资源类型。metadata:定义资源的元数据,如名称、命名空间等。spec:指定资源的规格和配置。二、掌握YAML格式的基本规范大小写敏感:YAML文件对大小写敏感。缩......