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

相关推荐
_BugMan1 天前
【k8s】基础概念+下载安装教程
容器·rpc·kubernetes
.豆鲨包1 天前
【Android】MVP架构模式
android·架构
数据智能老司机1 天前
Snowflake Cortex AI:面向生成式 AI 应用的解决方案——机器学习函数概览
大数据·架构·数据分析
数据智能老司机1 天前
Snowflake Cortex AI:面向生成式 AI 应用的解决方案——理解 Snowflake Cortex
大数据·架构·数据分析
数据智能老司机1 天前
Snowflake Cortex AI:面向生成式 AI 应用的解决方案——Snowflake 生态中的 AI/ML 入门
大数据·架构·数据分析
稻草人22221 天前
打造个人Dify?手写AI工作流让AI乖乖听话 - 基础架构篇
架构
canonical_entropy1 天前
告别经验主义:DDD的数学基础与工程实现
后端·架构·领域驱动设计
码界奇点1 天前
2025时序数据库选型指南从架构基因到AI赋能的深度解析
人工智能·ai·架构·时序数据库
Light601 天前
《领码 SPARK 融合平台》投资研究报告(最终完整版)
分布式·架构·spark·零信任·安全运营
shinelord明1 天前
【大数据开发实践】Kafka REST Proxy~无缝集成 Kafka
大数据·分布式·架构·kafka