主题
Kubernetes 技术栈总览
一句话定位:Kubernetes 本质是一组服务器集群,在每台节点上跑特定程序来编排管理容器,目标是资源管理的自动化。
一、Kubernetes 提供的功能
- 自我修复:容器崩溃约 1s 内重启新容器;节点宕机则把其上容器迁移到其他节点。
- 弹性伸缩:按需(如 CPU 利用率)动态扩缩容器数目。
- 服务发现:服务可自动发现其依赖的服务。
- 负载均衡:多副本自动负载均衡。
- 自动发布与版本回退。
- 存储编排:按需自动创建存储卷。
- 容器调度:决定容器落在哪个节点。
二、架构:master + node
┌─────────────────────────────────────┐
Client ─▶│ master(控制平面) │
│ ApiServer 操作集群的唯一入口 │
│ Scheduler 调度 Pod 到 node │
│ ControllerManager 保证资源达到预期状态 │
│ Etcd 分布式存储(元数据) │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ node(工作节点,可多个) │
│ kubelet 维护 Pod 生命周期 │
│ kube-proxy 网络代理,实现 Service │
│ Container Runtime 容器运行时(CRI) │
└─────────────────────────────────────┘调用关系(创建 Pod 的完整链路):Client 提交 yaml → ApiServer 写入 etcd → ControllerManager watch 到创建并整合资源 → Scheduler watch 到未调度 Pod 并计算落点、回写绑定 → kubelet 拉取 Pod 信息、调 CRI 启容器 + CNI 建网络 + CSI 挂存储 → 状态回写 etcd。
三、核心资源地图
| 资源 | 职责 | 关键点 |
|---|---|---|
| Pod | 最小调度单元 | 含根容器 Pause;容器必须跑在 Pod 里 |
| Service | 稳定访问入口 | Pod IP 不固定,用 Service 聚合 |
| Deployment | 无状态应用控制器 | 滚动更新、版本回退 |
| StatefulSet | 有状态应用 | 稳定网络标识 + 持久存储 |
| ConfigMap / Secret | 配置与敏感信息 | 与镜像解耦 |
| Namespace | 资源隔离 | 逻辑分区 |
| Ingress | 七层路由入口 | 一个入口暴露多个 Service |
四、三大横切机制
- 调度:Scheduler 按策略(资源、亲和、污点容忍)把 Pod 绑到 node。
- 网络:Pod 有独立 IP;Service 通过 kube-proxy(userspace/iptables/ipvs 三种模式)把虚拟 IP 转发到真实 Pod。
- 存储:Volume 抽象,持久化靠 PV/PVC 与 StorageClass 动态供给。
关联
- 上游:1. Kubernetes介绍和架构
- 同域:[Kubernetes Pod与探针机制](./Kubernetes Pod与探针机制) · [Kubernetes Service与服务发现](./Kubernetes Service与服务发现) · Docker技术栈总览
- 域地图:运维与云原生