理解 Kubernetes 的架构与控制平面组件运行机制

文章目录

Kubernetes(也称为 K8s)是一个开源的容器编排和管理系统,用于自动部署、扩展和管理容器化应用程序。

K8s架构

Kubernetes 采用主从架构(Master-Worker),主要分为两大部分:
1. 控制平面(Control Plane)------ 管理集群

用于全局决策(比如调度)、集群状态管理等。

2. 工作节点(Worker Node)------ 执行容器化应用

运行实际的容器应用,并向控制平面汇报状态。

3. 分布式特性

  1. 无中心节点(Master 节点可多副本 HA)
  2. 所有组件通过 API Server 交互
  3. 状态存储在 etcd 中(强一致性)


K8s核心组件

控制平面组件(部署在 Master 节点)

组件 作用
kube-apiserver 所有组件交互的入口,提供 REST API 接口,是集群的"中枢神经"
etcd 分布式键值存储,保存整个集群的状态数据(如 Pod 信息、配置等)
kube-scheduler 负责为新创建的 Pod 分配合适的 Node 节点
kube-controller-manager 管理控制器(副本控制器、节点控制器等),维持系统期望状态
cloud-controller-manager 用于和云厂商平台(如 AWS、GCP)集成,管理负载均衡、存储等资源

1. 查看组件运行情况

在 Kubernetes 中,控制平面组件本身并不是通过 kubectl 的 help 命令直接查看的对象,因为它们不是 API 对象,而是后台运行的服务程序。但你可以间接地通过以下方式获取它们的信息或确认它们是否在运行。

bash 复制代码
kubectl get pods -n kube-system

2. 查看组件 help 命令

Node端组件(部署在每个工作节点)

组件 作用
kubelet 负责与 API Server 通信,管理容器生命周期,监控容器运行状态
kube-proxy 实现服务的负载均衡和网络代理,实现 Kubernetes 的 Service 网络
容器运行时(如 containerd、CRI-O、Docker) 运行容器的底层工具,遵循 Kubernetes 的 CRI 接口

K8s内部工作原理

下面用一个创建 Pod 的过程来理解内部工作流程:

创建一个 Pod 的流程:
1. 用户操作:

用户通过 kubectl 或其他方式向 kube-apiserver 提交创建 Pod 的请求。

2. API Server 接收请求:

验证并将 Pod 对象写入到 etcd 中(持久存储)。

3. 调度器(kube-scheduler):

  1. 监听未调度的 Pod;
  2. 根据策略(资源使用率、亲和性等)选择合适的 Node;
  3. 将调度结果写入 etcd。

4. 控制器通知 Node:

kubelet 监听到自己的 Node 上有新 Pod 需要创建,拉取镜像并创建容器。

5. 容器运行:

使用容器运行时(如 containerd)启动容器。

6. kubelet 上报状态:

周期性向 API Server 汇报 Pod 运行状态。

7. Service 和 kube-proxy:

若 Pod 关联了 Service,kube-proxy 会更新 iptables 或 IPVS 规则,进行负载均衡。

相关推荐
架构师沉默3 小时前
让我们一起用 DDD,构建更美好的软件世界!
java·后端·架构
小一亿3 小时前
【0基础PS】PS工具详解--选择工具--对象选择工具
学习·平面·adobe·信息可视化·传媒·photoshop
杰克逊的日记4 小时前
k8s的csi对接GPFS
云原生·容器·kubernetes·存储·gpfs
GISer_Jing4 小时前
Coze:字节跳动AI开发平台功能和架构解析
javascript·人工智能·架构·开源
岚天start4 小时前
云服务器以域名形式访问机房Kubernetes集群服务之解决方案
nginx·docker·kubernetes·kubesphere·解决方案·云服务器·机房
sivdead5 小时前
从被动查询到主动智能:数据应用智能体的技术演进路线图
人工智能·后端·架构
拳打南山敬老院6 小时前
从零构建一个插件系统(四)插件的缓存
javascript·架构
love530love7 小时前
Windows 11 下 Anaconda 命令修复指南及常见问题解决
运维·ide·人工智能·windows·python·架构·conda
java叶新东老师7 小时前
七、搭建springCloudAlibaba2021.1版本分布式微服务-skywalking9.0链路追踪
分布式·微服务·架构
Dolphin_海豚8 小时前
前端工程化总览
前端·架构·前端工程化