学习 Kubernetes(k8s)各个组件的概念是理解其集群架构和工作原理的基础。下面我将按照控制平面(Control Plane)和节点组件(Node Components)两个大类,对常见组件进行概念介绍,并附带常见用途和图示建议结构,方便你理解整体架构。
✅ 一、Kubernetes 架构总览
一个 K8s 集群包含两大部分:
- 控制平面(Control Plane):负责集群的管理和调度。
- 工作节点(Worker Node):运行 Pod(容器的载体)。
1 2 3 4 5 6 7 8 9 10 11
| 控制平面(Master) ├─ kube-apiserver ├─ etcd ├─ kube-scheduler └─ kube-controller-manager └─ cloud-controller-manager(可选)
工作节点(Node) ├─ kubelet ├─ kube-proxy └─ container runtime(如 containerd、Docker、CRI-O)
|
✅ 二、控制平面组件
组件 |
作用 |
常见用途 |
kube-apiserver |
集群 API 接口入口,是 K8s 的“中枢神经” |
所有命令、组件间通信都通过它发起 |
etcd |
分布式 KV 存储,用于保存集群状态 |
保存所有资源状态(Pod、Service、ConfigMap等) |
kube-scheduler |
负责 Pod 调度到合适节点 |
判断哪个 Node 最适合运行新的 Pod |
kube-controller-manager |
负责控制器逻辑,如副本控制、节点管理 |
Deployment控制、自动扩容、重建、状态保持等 |
cloud-controller-manager(可选) |
与云平台对接,管理云资源 |
例如 AWS/GCP 的负载均衡器、磁盘等资源 |
✅ 三、节点组件
组件 |
作用 |
常见用途 |
kubelet |
每个 Node 上的核心守护进程,控制 Pod 生命周期 |
保证容器健康、状态上报、执行指令 |
kube-proxy |
网络代理,维护 Node 网络规则 |
实现 Pod 的服务发现和负载均衡 |
容器运行时 |
运行容器的底层工具 |
containerd、Docker、CRI-O等 |
✅ 四、扩展性组件(可选/增强)
组件 |
作用 |
CoreDNS |
DNS 服务,实现 Service 发现 |
Metrics Server |
提供资源监控数据(CPU、内存) |
Ingress Controller |
控制 HTTP/HTTPS 入口流量 |
CSI 插件 |
容器存储接口(提供挂载磁盘) |
CNI 插件 |
容器网络接口(如 Calico、Flannel) |
✅ 五、简化理解图示(建议)
你可以画出如下图结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| 控制平面 ┌─────────────────────────────────────────────┐ │ kube-apiserver ─── etcd │ │ │ │ │ ├─ kube-scheduler │ │ └─ kube-controller-manager │ └─────────────────────────────────────────────┘ │ ┌───────────┼──────────────────────────────────────────┐ ▼ ▼ ▼ ┌───────┐ ┌───────┐ ... ┌───────┐ │ Node1 │ │ Node2 │ │ NodeN │ └───────┘ └───────┘ └───────┘ │ │ │ kubelet kubelet kubelet kube-proxy kube-proxy kube-proxy containerd containerd containerd ▲ ▲ ▲ └────运行 Pod(容器)────┘ ─────运行业务应用─────┘
|