K8S核心原理详解(5大核心实现原理)

K8S核心原理详解(5大核心实现原理)-mikechen

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

K8S

Kubernetes(常简称为K8S),是当前云原生时代最重要的容器编排平台。

K8S,已经成为事实上的容器编排标准,几乎所有大型互联网企业、云化改造项目,都会选择K8S作为核心基础设施。

K8S核心原理详解(5大核心实现原理)-mikechen

它的目标是:让应用像水和电一样可用。

比如,可以自动化部署:无需手动操作即可快速上线服务。

以及,弹性伸缩,可以根据流量动态调整服务“副本数”。

还可以,高可用,比如:节点宕机、容器异常时能自动恢复。

 

K8S核心原理

K8S由两类核心角色组成:控制平面(Master) 和 工作节点(Node)。

控制平面是集群的“大脑”,负责维护整个集群的期望状态。

工作节点是集群中的工作机器,负责运行容器化应用。

K8S实现原理,如下图所示:

K8S核心原理详解(5大核心实现原理)-mikechen

API Server

API Server:所有操作的统一入口,你可以把它理解成 K8S的大门、和守门人。

所有组件,比如:kubectl、控制器、调度器、kubelets…等等,都与API Server通信。

 

Controller Manager

Controller Manager 是一组控制器进程的集合,负责让集群的实际状态逐渐靠近用户的期望状态。

K8S核心原理详解(5大核心实现原理)-mikechen

例如:

ReplicaSet Controller 保证 Pod 的副本数与期望一致

Node Controller 负责发现节点故障并做处理

Endpoint Controller 负责维护 Service 与 Pod 的映射关系

它的工作机制就是不停地 watch API Server 的状态 → 对比期望状态 → 执行修正操作。

可以把它理解成 K8S的“自动化运维工程师”。

 

Scheduler

Scheduler:负责把Pod调度到合适的Node上。

Scheduler 的核心任务是:把新创建的 Pod 分配到合适的 Node 节点上。

K8S核心原理详解(5大核心实现原理)-mikechen

调度时会考虑:节点的资源情况(CPU、内存等)。

选定节点后,Scheduler 会把结果写回 API Server,之后由目标节点的 Kubelet 负责真正运行 Pod。

总之,可以把它理解成 K8S的人事部门,负责“把员工分配到合适的岗位”。

 

etcd

etcd 是一个高可用的分布式键值存储,专门用于保存集群的状态数据。

K8S核心原理详解(5大核心实现原理)-mikechen

保存内容包括:Pod 副本数、Service 配置、节点信息、网络策略等。

API Server 的所有持久化数据,最终都会落到 etcd 中。

由于 etcd 的关键性,通常会做高可用部署(多副本、容灾)。

总之,etcd 相当于 K8S的数据库。

 

工作节点(Node)

工作节点是集群中的工作机器,负责运行容器化应用(Pod)。

Kubelet:负责Pod的运行和健康检查。

Kube-Proxy:实现Service与Pod间的网络转发。

容器运行时:支持Docker、Containerd等。

整体实现,如下图所示:

K8S核心原理详解(5大核心实现原理)-mikechen

K8S工作流程,如下:

用户通过API Server提交Pod、Deployment等资源定义请求。

API Server验证请求后传递给Controller Manager和Scheduler。

Scheduler决定Pod运行的节点,并通知kubelet。

kubelet根据通知在本节点运行对应容器。

评论交流
    说说你的看法