K8S原理最全详解(5大核心组件)

K8S原理最全详解(5大核心组件)

K8S是云原生的核心,也是云计算的未来,下满我来详解K8S核心原理@mikechen

K8S

Kubernetes(简称K8S),已成为云原生时代容器编排的事实标准。

K8S原理最全详解(5大核心组件)

其核心:在于通过声明式API、和控制循环来管理容器化应用。

K8S的设计哲学是自动化、弹性、可扩展,它将复杂的基础设施抽象为资源对象(如Pod、Deployment、Service)。

理解其核心实现原理,有助于在设计、部署与运维分布式应用时做出更稳健的决策。

 

API Server:唯一入口

API Server:是集群的统一入口与控制平面的前端。

负责认证、鉴权、准入控制、数据校验,把资源对象存入 etcd。

K8S原理最全详解(5大核心组件)

对所有组件提供 watch/list 流式接口,是整个集群的“总线”和“中介”。

所有外部请求(kubectl、控制器、调度器或第三方工具),均通过RESTful API发送到apiserver。

apiserver负责请求验证、鉴权、准入控制、与后端存储(etcd)交互并返回资源对象。

它以资源的声明式状态作为操作基础,是整个系统一致性的中心点。

 

etcd:强一致状态存储

etcd:分布式系统的“记忆中枢”,K8S 将所有持久化数据存储在 etcd 中。

K8S原理最全详解(5大核心组件)

底层逻辑:基于 Raft 一致性协议。

这意味着它保证了在集群故障时,数据的强一致性(Strong Consistency)。

架构价值:etcd 的事件监听 (Watch) 功能是 K8S 响应式架构的核心。

一旦 etcd 数据变动,API Server 就会立即推送通知给相关的 Controller。

存所有对象:Pod、Deployment、ConfigMap、Node 状态等。

通过 Raft 协议保证多副本一致,是控制面的“数据库”。

Scheduler:Pod 调度核心

K8S原理最全详解(5大核心组件)

调度器,专门给 Pending 状态的 Pod 选择一个合适的 Node,相当于“车间调度室”。

调度流程(简化):

监听 API Server 中未绑定 Node 的 Pod。

过滤:剔除资源不足、污点不匹配、亲和/反亲和不满足的节点。

打分:按资源利用率、拓扑分散、Node 优先级等给节点打分。

绑定:选出得分最高的节点,把 Pod 的 nodeName 写回 API Server,交由对应节点的 kubelet 执行创建。

 

Controller Manager:一堆内置控制器

K8S原理最全详解(5大核心组件)

Controller Manager运行一组控制器,其核心职责:是实现期望状态、与实际状态之间的对齐。

典型控制器:

Deployment / ReplicaSet Controller:保证副本数符合期望,实现滚动升级与自愈。

Node Controller:监控节点心跳,节点失联时驱逐或重建上面的 Pod。

Service / Endpoint Controller:维护 Service 与后端 Pod 的 Endpoints 映射,保证服务发现和负载均衡。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧