前言
Kubernetes 简称 K8s,是谷歌基于 Borg 开源的容器编排与集群管理系统,核心定位是:自动化部署、弹性伸缩、生命周期管控容器化应用,解决海量容器的调度、运维、高可用问题,是云原生技术体系的核心基石。
一、Kubernetes 核心架构
Kubernetes 采用经典的主从分布式架构,集群节点分为两大核心角色,所有组件各司其职、松耦合设计,整体架构无单点故障,支持无限水平扩容,核心架构遵循 控制面管理、数据面执行 的设计思想。
1.1 集群整体架构分层

- 控制平面(Control Plane / Master 节点):集群的「大脑」,负责全局决策、调度、管控、存储集群状态,不直接运行业务容器,可单节点/多节点高可用部署。
- 数据平面(Node / Worker 节点):集群的「手脚」,负责实际运行业务容器(Pod),接收控制平面的指令执行具体操作,可横向扩容任意数量。
- 通信规则:控制平面和数据平面之间通过 kube-apiserver 单向通信,Node 节点主动向 Master 上报状态,Master 向 Node 下发指令,所有通信均基于 HTTPS 加密。
1.2 控制平面(Master)核心组件
所有组件为集群级核心服务,缺一不可,生产环境必须高可用部署,所有组件的配置和状态最终持久化到 etcd 中。
1.3 数据平面(Node/Worker)核心组件【业务执行节点】
每个Node节点都会独立运行以下组件,负责本节点的容器生命周期管理、网络、服务转发,所有组件为节点级服务,节点宕机仅影响本节点Pod,不影响集群整体。
1.4 K8s 核心接口规范(解耦设计的灵魂)
K8s的高扩展性源于标准化的接口设计,所有核心能力通过接口对接,无需修改源码即可替换底层实现,三大核心接口是必知重点:
- CRI(Container Runtime Interface):容器运行时接口,对接容器引擎(Docker/containerd),实现容器的创建和销毁。
- CNI(Container Network Interface):容器网络接口,对接网络插件(Calico/Flannel),实现Pod的网络配置。
- CSI(Container Storage Interface):容器存储接口,对接存储插件(云存储/本地存储),实现Pod的持久化存储。
二、Kubernetes 核心概念【基础基石】
Kubernetes的所有操作都围绕「资源对象」展开,所有资源都是声明式API对象,通过YAML/JSON定义,以下是从「核心到扩展」的全量核心概念,按重要性排序,加粗为高频核心概念,是运维和开发的必备知识点。
2.1 最核心基础概念(基石中的基石,无它不成立)
2.1.1 Pod – K8s中最小的调度和部署单元
- 定义:Pod是K8s中可以创建和管理的最小单元,是一个或多个容器的「逻辑组合」,共享网络、存储、生命周期。
- 核心特性:
- 一个Pod内的所有容器共享同一个网络命名空间(同一个IP、同一个端口范围),容器间通过localhost通信。
- 一个Pod内的所有容器共享存储卷(Volume),数据可互相访问。
- Pod是原子调度单元:K8s只会把Pod调度到某个Node节点,不会单独调度容器。
- Pod是临时性对象:天生不可自愈,删除/宕机后不会原地重建,只能由控制器重新创建。
- 核心注意:绝对不要手动创建Pod,生产环境必须通过控制器管理Pod,否则Pod挂了无法自动恢复。
2.1.2 Label & Selector – K8s的「核心关联机制」
- Label:键值对格式的资源身份标签,可自定义,比如app: nginx、env: test、version: v1,一个资源可打多个Label,无固定规则,仅用于标识。
- Selector:标签选择器,是资源之间的关联桥梁,通过匹配Label筛选目标资源,分为精准匹配(matchLabels)和集合匹配(matchExpressions)。
- 核心作用:所有控制器管理Pod、Service关联Pod、资源筛选查询,都依赖Label+Selector实现,是K8s的核心设计思想之一。
apiVersion: apps/v1
kind: Deployment
metadata: # metadata字段包含对Deployment的描述信息
name: nginx–deployment
namespace: test
labels:
app: nginx–deployment–label # ✅ 位置 1 给Deployment自身打标签
spec:
replicas: 2 # 定义副本数量
selector:
matchLabels:
app