理解 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 规则,进行负载均衡。

相关推荐
Gold Steps.7 小时前
修改 K8S Service 资源类型 NodePort 的端口范围
云原生·容器·kubernetes
OpenLoong 开源社区7 小时前
技术视界 | 打造“有脑有身”的机器人:ABC大脑架构深度解析(下)
架构·机器人
deephub7 小时前
图神经网络在信息检索重排序中的应用:原理、架构与Python代码解析
人工智能·python·深度学习·神经网络·架构·大语言模型
消失在人海中7 小时前
实时数仓和离线数仓的区别是什么?企业如何选择合适的数仓架构?
大数据·数据库·架构
layneyao7 小时前
Transformer架构详解:从Attention到ChatGPT
chatgpt·架构·transformer
皮皮虾我们跑9 小时前
Java开发——三层架构,分层耦合
java·架构
木头左9 小时前
云原生架构核心特性详解
云原生·架构
熙曦Sakura9 小时前
【Redis】基本架构
数据库·redis·架构
vvilkim10 小时前
MongoDB分布式架构详解:复制与分片的高可用与扩展之道
分布式·mongodb·架构
赵大仁10 小时前
【GraphQL】深入解析 Apollo Client:从架构到实践的一站式 GraphQL 解决方案
后端·架构·graphql