K8S核心架构详解(图文全面总结)

云原生是大型架构的核心,下面我重点详解K8S核心架构@mikechen

K8S架构

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

理解其核心架构有助于设计可靠、可扩展的云原生平台。

Kubernetes采用经典,的主从架构(Master-Node架构)。

整体架构,如下图所示:

K8S核心架构详解(图文全面总结)-mikechen

整体分为控制平面(Master节点)、和数据平面(Node节点)。

 

Master节点(控制平面)

Master节点负责整个集群的管理和调度,相当于大脑和指挥中心,协调集群所有资源的分配和调度。

主要组件

kube-apiserver

API Server(kube-apiserver):集群的统一入口。

K8S核心架构详解(图文全面总结)-mikechen

所有的 REST 操作都通过 API Server。

它是权威的数据访问点,负责认证、授权、资源校验和审计。

 

etcd

分布式键值存储,保存集群的全部状态数据(声明式的对象)。要求强一致性与高可用。

 

kube-scheduler

负责将待调度的Pod分配到合适的Node节点。

 

kube-controller-manager

K8S核心架构详解(图文全面总结)-mikechen

运行多个控制循环(controllers),如 ReplicaSet、Node、Deployment、Namespace 等,负责将实际状态调整为期望状态。

 

Node节点(工作负载节点)

Node节点用于实际运行容器化的应用和服务,是集群的“执行层”,负责容器的创建、运行和维护。

K8S核心架构详解(图文全面总结)-mikechen

主要组件:

kubelet

Node节点上的代理,负责接收Master下发的Pod调度指令,管理容器生命周期,实时汇报Pod状态。

kube-proxy

负责维护网络规则,实现集群内部和外部Pod间的通信与服务负载均衡。

容器运行时(如Docker、containerd),负责容器的实际创建和管理。

 

K8S工作原理

整体工作流程,如下:

K8S核心架构详解(图文全面总结)-mikechen

用户通过kubectl或API接口提交资源创建请求,首先到达kube-apiserver

API Server校验请求并更新etcd存储资源状态。

kube-scheduler监听到未调度的Pod,选择资源充足的Node并绑定。

kube-controller-manager负责监控系统,自动启动副本、维护状态。

目标Node节点的kubelet根据调度结果启动对应容器,并持续向Master报告运行状况。

kube-proxy确保服务网络访问与负载均衡。

评论交流
    说说你的看法