Kubernetes 知识体系概览
知识全景
为什么需要 Kubernetes
| 挑战 | Docker 单机 | Kubernetes |
|---|---|---|
| 服务发现 | 手动管理 | 自动 DNS + Service |
| 负载均衡 | 手动配置 Nginx | 内置 Service LB |
| 自动伸缩 | 无 | HPA / VPA |
| 滚动更新 | 手动替换 | Deployment 策略 |
| 自愈 | 无 | 自动重启/迁移 |
| 配置管理 | .env 文件 | ConfigMap / Secret |
| 存储编排 | -v 挂载 | PV / PVC / StorageClass |
| 多主机调度 | Swarm(简单) | 高级调度策略 |
K8s 架构
核心组件
| 组件 | 角色 | 说明 |
|---|---|---|
| API Server | 集群入口 | 所有操作通过 REST API,认证鉴权 |
| etcd | 分布式存储 | 存储集群所有状态,唯一数据源 |
| Scheduler | 调度器 | 决定 Pod 调度到哪个 Node |
| Controller Manager | 控制器 | Deployment、ReplicaSet 等控制器的管理器 |
| kubelet | Node 代理 | 管理 Pod 生命周期,上报状态 |
| kube-proxy | 网络代理 | 维护 Service 的网络规则(iptables/IPVS) |
核心概念速查
| 概念 | 说明 | 关键点 |
|---|---|---|
| Pod | 最小调度单元 | 一个或多个共享网络/存储的容器 |
| Deployment | 无状态应用管理 | 滚动更新、回滚、副本管理 |
| StatefulSet | 有状态应用管理 | 稳定网络标识、有序部署、持久存储 |
| DaemonSet | 节点守护进程 | 每个 Node 运行一个 Pod(日志、监控) |
| Job / CronJob | 任务 / 定时任务 | 批处理、定时调度 |
| Service | 服务发现 + 负载均衡 | ClusterIP / NodePort / LoadBalancer |
| Ingress | HTTP/HTTPS 路由 | 域名路由、TLS 终止 |
| ConfigMap | 配置管理 | 环境变量、配置文件 |
| Secret | 敏感配置 | Base64 编码,可加密存储 |
| PV / PVC | 持久存储 | 存储抽象,解耦存储实现 |
| Namespace | 资源隔离 | 多租户、环境隔离 |
| HPA | 水平自动伸缩 | 根据 CPU/内存/自定义指标伸缩 |
| RBAC | 权限控制 | Role / ClusterRole / Binding |