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

相关推荐
程序猿追13 分钟前
深度剖析 CANN ops-nn 算子库:架构设计、演进与代码实现逻辑
人工智能·架构
程序猿追23 分钟前
深度解码昇腾 AI 算力引擎:CANN Runtime 核心架构与技术演进
人工智能·架构
晚霞的不甘31 分钟前
CANN 编译器深度解析:TBE 自定义算子开发实战
人工智能·架构·开源·音视频
程序猿追1 小时前
昇腾算力之锚:深度解读 CANN ascend-toolkit 异构计算架构与工程实践
架构
一枕眠秋雨>o<1 小时前
深入 CANN ops-nn:昇腾 NPU 算子开发的工程化实践与架构哲学
架构
未来龙皇小蓝1 小时前
RBAC前端架构-01:项目初始化
前端·架构
农民工老王1 小时前
K8s 1.31 私有化部署实战:从 Calico 崩溃到 NFS 挂载失败的排坑全记录
云原生·kubernetes
island13141 小时前
CANN Catlass 算子模板库深度解析:高性能 GEMM 架构、模板元编程与融合算子的显存管理策略
人工智能·神经网络·架构·智能路由器
广州中轴线1 小时前
OpenStack on Kubernetes 生产部署实战(十四)
kubernetes·智能路由器·openstack
晚霞的不甘2 小时前
CANN 支持强化学习:从 Isaac Gym 仿真到机械臂真机控制
人工智能·神经网络·架构·开源·音视频