K8S全面详解(架构+原理+组件)

K8S是云原生最核心的内容,也是云计算的未来,下满我就全面来详解K8S@mikechen

K8S

Kubernetes(简称K8S)是一个开源的容器编排平台,用于自动化容器化应用程序的部署、扩展和管理。

它由Google开源,现由Cloud Native Computing Foundation(CNCF)维护。

K8S全面详解(架构+原理+组件)-mikechen

从工程视角看,K8S 主要解决的是以下问题:

容器调度问题:多个节点、多个容器,如何合理分配资源并自动调度。

应用生命周期管理:应用的部署、升级、回滚、重启、销毁自动化完成。

高可用与自愈能力:节点宕机、容器异常,系统可自动迁移与恢复。

弹性伸缩:根据负载自动扩容、或缩容实例。

 

K8S架构

Kubernetes 采用主从式分布式架构,主要分为控制平面(Control Plane)与节点(Node)两大部分。

K8S全面详解(架构+原理+组件)-mikechen

K8S 采用 Master / Worker(控制平面 / 数据平面) 架构。


┌───────────────────┐
│   Control Plane   │
│ API Server        │
│ Scheduler         │
│ ControllerManager │
│ etcd              │
└─────────▲─────────┘
          │
┌─────────┴─────────┐
│     Worker Node   │
│ kubelet           │
│ kube-proxy        │
│ Container Runtime │
│ Pods              │
└───────────────────┘

控制平面:负责全局管理与决策,通常运行在一个或多个主节点上。

关键组件包括 API Server、etcd、Controller Manager 与 Scheduler。

节点平面:由若干工作节点组成,负责运行容器化工作负载。

每个节点运行 kubelet、容器运行时(如 containerd、Docker)与 kube-proxy 等组件。

etcd:作为分布式键值存储,保存集群的所有状态数据。

提供强一致性保证,是整个系统的权威数据源。

 

K8S组件

K8S全面详解(架构+原理+组件)-mikechen

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

所有操作请求通过 API Server 进行认证、授权与审计,并与 etcd 交互持久化资源对象。

etcd:持久化存储集群状态数据,支持分布式一致性与高可用。

kube-scheduler:负责将待调度的 Pod 指派到合适节点。

依据资源需求、亲和性策略及调度约束。

kube-controller-manager:汇集多种控制器。

比如: Deployment、ReplicaSet、Node Controller 等,执行控制循环以维持期望状态。

K8S全面详解(架构+原理+组件)-mikechen

kubelet:运行于每个节点。

负责管理节点上的 Pod 生命周期、上报状态并与 API Server 同步。

kube-proxy:实现 Kubernetes 服务的网络代理与负载均衡。

管理网络规则以保证 Pod 间与外部访问。

容器运行时(Container Runtime):实际负责拉取镜像、启动与停止容器。

例如 containerd、CRI-O 或 Docker(通过 CRI)。

 

K8S工作流程

K8S全面详解(架构+原理+组件)-mikechen

 

1:用户提交 Deployment YAML;

2:API Server 校验并写入 etcd;

3:Deployment Controller 创建 ReplicaSet;

4:ReplicaSet 创建 Pod;

5:Scheduler 选择 Node;

6:kubelet 拉取镜像并启动容器;

7:kube-proxy 配置网络规则;

8:应用对外提供服务。

 

评论交流
    说说你的看法