
K8S是云原生的核心,也是云计算的未来,下满我来详解K8S核心原理@mikechen
K8S
Kubernetes(简称K8S),已成为云原生时代容器编排的事实标准。

其核心:在于通过声明式API、和控制循环来管理容器化应用。
K8S的设计哲学是自动化、弹性、可扩展,它将复杂的基础设施抽象为资源对象(如Pod、Deployment、Service)。
理解其核心实现原理,有助于在设计、部署与运维分布式应用时做出更稳健的决策。
API Server:唯一入口
API Server:是集群的统一入口与控制平面的前端。
负责认证、鉴权、准入控制、数据校验,把资源对象存入 etcd。

对所有组件提供 watch/list 流式接口,是整个集群的“总线”和“中介”。
所有外部请求(kubectl、控制器、调度器或第三方工具),均通过RESTful API发送到apiserver。
apiserver负责请求验证、鉴权、准入控制、与后端存储(etcd)交互并返回资源对象。
它以资源的声明式状态作为操作基础,是整个系统一致性的中心点。
etcd:强一致状态存储
etcd:分布式系统的“记忆中枢”,K8S 将所有持久化数据存储在 etcd 中。

底层逻辑:基于 Raft 一致性协议。
这意味着它保证了在集群故障时,数据的强一致性(Strong Consistency)。
架构价值:etcd 的事件监听 (Watch) 功能是 K8S 响应式架构的核心。
一旦 etcd 数据变动,API Server 就会立即推送通知给相关的 Controller。
存所有对象:Pod、Deployment、ConfigMap、Node 状态等。
通过 Raft 协议保证多副本一致,是控制面的“数据库”。
Scheduler:Pod 调度核心

调度器,专门给 Pending 状态的 Pod 选择一个合适的 Node,相当于“车间调度室”。
调度流程(简化):
监听 API Server 中未绑定 Node 的 Pod。
过滤:剔除资源不足、污点不匹配、亲和/反亲和不满足的节点。
打分:按资源利用率、拓扑分散、Node 优先级等给节点打分。
绑定:选出得分最高的节点,把 Pod 的 nodeName 写回 API Server,交由对应节点的 kubelet 执行创建。
Controller Manager:一堆内置控制器

Controller Manager运行一组控制器,其核心职责:是实现期望状态、与实际状态之间的对齐。
典型控制器:
Deployment / ReplicaSet Controller:保证副本数符合期望,实现滚动升级与自愈。
Node Controller:监控节点心跳,节点失联时驱逐或重建上面的 Pod。
Service / Endpoint Controller:维护 Service 与后端 Pod 的 Endpoints 映射,保证服务发现和负载均衡。
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注作者「mikechen」公众号,获取更多技术干货!
后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》,后台回复【面试】即可获取《史上最全阿里Java面试题总结》