K8s 进阶学习路线
1. ⚡ 第一阶段:核心资源高阶用法(进阶基石,1~2 周)
吃透基础资源的高阶配置、底层原理、使用场景、坑点,不再只会简单创建。
2. . Pod 深度详解(一切的基础)
2.1. .1 Pod 核心原理
- Pod 设计理念:最小调度单元、共享网络 / UTS/IPC 命名空间、独立 PID / 挂载
- 沙箱容器(pause)作用:网络栈、共享生命周期实现原理
- Pod 生命周期全流程:
创建 → 初始化容器 → 主容器启动 → 就绪/存活检测 → 停止 → 终止
2.2. .2 探针(生产必备,面试高频)
三类探针原理、配置、阈值、故障场景:
- livenessProbe 存活探针:容器异常卡死 / 无响应,K8s 自动重启 Pod
- readinessProbe 就绪探针:容器未就绪前,从 Service 后端摘除,不转发流量
- startupProbe 启动探针:应对慢启动应用(如 Java、中间件),避免启动阶段被误杀
探测方式:
exec 命令 / httpGet / tcpSocket / grpc重点:探针超时、失败阈值、初始延迟、周期调优,以及探针异常引发的 Pod 反复重启问题排查。
2.3. .3 初始化容器 InitContainer
- 用途:前置依赖(等待数据库 / 中间件、下载配置、权限初始化、脚本预处理)
- 特性:串行执行、必须全部成功主容器才启动、资源隔离、网络共享
- 实战场景:日志目录授权、动态拉取配置、依赖服务等待
2.4. .4 容器资源限制 & QoS(资源管控核心)
requests(请求):调度依据,保证最低资源limits(限制):硬上限,防止资源溢出、雪崩- Pod QoS 三类等级(OOM 被杀优先级核心)
- Guaranteed:requests = limits,优先级最高,最后被 OOM 杀死
- Burstable:有 requests 无 limits / 不等,中间优先级
- BestEffort:无任何资源配置,优先级最低,内存不足优先杀死
- 实战:生产规范资源配置、避免节点资源耗尽、OOM 定向排查。
2.5. .5 容器生命周期钩子 Hook
postStart:容器启动后执行preStop:容器终止前执行(优雅停机核心)- 结合
terminationGracePeriodSeconds优雅关停业务,避免数据丢失。
2.6. .6 其他高阶配置
- 主机名、域名、Pod 主机别名
- 共享卷、临时空卷
emptyDir特性(内存挂载、节点本地临时存储) - 容器特权模式
privileged、权限降级、用户 ID 指定runAsUser
3. . 控制器高阶(除 Deployment 外全场景控制器)
3.1. .1 StatefulSet 有状态应用(重点)
- 适用场景:MySQL、Redis、Kafka、ZooKeeper、Elasticsearch 等有状态中间件
- 核心特性:
- 稳定网络标识:固定主机名、DNS 域名
- 稳定存储:PVC 一对一绑定,重建 Pod 不丢失数据
- 有序部署、有序删除、有序扩缩容
- 关联组件:
Headless Service(无头服务,解析 Pod 真实 IP,有状态集群通信必备) - 坑点:StatefulSet 扩缩容、滚动更新策略、PV 残留清理。
3.2. .2 DaemonSet
- 场景:节点级组件(日志采集、监控代理、网络插件、安全代理)
- 高阶用法:节点亲和性筛选指定节点部署、滚动更新、分批发布。
3.3. .3 Job / CronJob 任务类控制器
- Job:一次性任务(数据备份、脚本执行、批量计算)
- 重试策略、并行执行、任务完成条件、失败处理、活跃 Pod 限制
- CronJob:定时任务(替代传统 crontab,集群级定时)
- 时区问题、并发策略、历史任务保留、避免任务重复堆积。
3.4. .4 ReplicaSet
- Deployment 底层依赖组件,理解版本回滚、副本数控制原理。
4. . 配置 & 密钥管理高阶
4.1. .1 ConfigMap
- 大配置、二进制、多行配置、环境变量挂载、文件挂载、目录挂载区别
- 配置热更新:挂载模式 vs 环境变量模式(热更新生效差异)
- 不可变 ConfigMap(防止误修改)
4.2. .2 Secret
- 类型:
Opaque通用密钥、kubernetes.io/dockerconfigjson镜像仓库密钥、ServiceAccount 令牌 - 加密原理、明文风险、权限管控、Secret 挂载 / 环境变量使用区别
- 生产安全建议:禁止明文、最小权限。
5. . Service 深度原理
5.1. .1 Service 四种访问模式
- ClusterIP(集群内部)、NodePort(节点端口)、LoadBalancer(云厂商负载)、ExternalName(映射外部服务)
5.2. .2 Service 代理模式(核心面试 + 排障重点)
- userspace(废弃)、iptables(默认)、ipvs(高性能,生产推荐)
- 两种模式原理、性能差异、适用场景、切换方式
- ipvs 调度算法:rr/wrr/lc/wlc 等
5.3. .3 核心机制
- Service 选择器、端点
Endpoints/EndpointSlice原理(Pod 状态变化实时更新) - 会话保持(sessionAffinity)配置与场景
- 外部流量策略
externalTrafficPolicy(Local/Cluster 区别,源 IP 保留问题)
5.4. .4 Headless Service
- 无 ClusterIP,直接解析 Pod IP,配合 StatefulSet 做有状态集群内部通信。
6. 🔧 第二阶段:K8s 网络体系(最难、排障高频,2~3 周)
K8s 网络是线上故障重灾区,必须吃透网络模型、插件、流量走向、故障排查。
7. . K8s 网络四大强制模型(设计规范)
- 所有 Pod 可直接通信,无需 NAT
- 节点与所有 Pod 可直接通信
- Pod 自身访问自己正常
- 集群内部访问 Service 不使用节点 NAT
8. . 网络架构与流量全链路
- Pod 内部通信、同节点 Pod 通信、跨节点 Pod 通信
- Pod → Service、外部流量 → Service、Service → Pod 全链路流转
9. . 主流 CNI 网络插件(原理 + 选型 + 运维)
9.1. .1 主流插件对比
- Flannel:简单、稳定、中小集群首选,支持 vxlan/host-gw
- Calico:功能最强,网络策略、负载均衡、BGP、IP 池管理,生产大规模集群标配
- Weave、Canal(Calico+Flannel 组合)
9.2. .2 重点深入 Calico
- IPAM IP 地址管理:IP 池、IP 回收、IP 耗尽故障排查
- BGP 路由、节点路由发布
- NetworkPolicy 网络策略(集群防火墙,生产安全必备)
- 入站 / 出站规则、基于标签 / 命名空间 / IP 限制流量
- 拒绝默认全部流量、白名单规则编写、规则不生效排障
9.3. .3 常见网络故障
- Pod 跨节点不通、同节点不通
- DNS 解析失败(CoreDNS 故障)
- Service 无法访问、端口不通、流量转发异常
- CNI 插件启动失败、网卡异常、路由丢失
10. . 集群 DNS(CoreDNS)
- CoreDNS 架构、解析流程、配置文件、插件
- 内部域名解析规则:
服务名.命名空间.svc.cluster.local - 故障:解析超时、解析错误、CoreDNS Pod 异常、压力过高、缓存问题
11. . 高级网络场景
- 主机网络
hostNetwork: true用途与风险 - 端口冲突、节点端口占用排查
- 双栈网络(IPv4/IPv6)、子网规划
12. ⚙️ 第三阶段:K8s 存储体系(生产数据持久化,2 周)
容器默认临时存储,重启丢失数据,存储是有状态应用核心。
13. . 存储基础概念
- 卷 Volume 生命周期、卷类型分类
- 临时卷:emptyDir、hostPath(本地节点存储,风险:节点绑定、数据漂移)
14. . PV / PVC 核心体系(静态存储)
- PV(持久化卷)、PVC(卷申请)、二者绑定原理、访问模式
ReadWriteOnce/ReadOnlyMany/ReadWriteMany - 回收策略:
Retain/Delete/Recycle差异与场景 - 绑定规则、PVC 一直 Pending 故障排查(无匹配 PV、访问模式不匹配、存储不足)
15. . StorageClass 动态存储(生产主流)
- 作用:无需手动创建 PV,动态供给 PV
- 架构:SC → 供应器 (Provisioner) → 后端存储
- 主流后端:本地存储、云厂商云盘、NFS、Ceph RBD/CephFS
- 绑定模式:WaitForFirstConsumer(延迟绑定,拓扑感知,多节点集群必备)
16. . 主流存储方案选型 & 运维
- 本地存储 Local PV
- 适用:高性能、低延迟中间件(Kafka、Redis)
- 特性:绑定固定节点、Pod 漂移后无法启动、节点下线数据迁移
- NFS
- 简单易用,适合共享存储;缺点:性能一般、单点瓶颈
- Ceph
- 企业级分布式存储,高可用、弹性扩容,大规模集群首选
- 运维重点:RBD 块存储、CephFS 文件存储、权限、快照、扩容、故障排查
17. . 高级存储特性
- 卷快照 VolumeSnapshot:数据备份、恢复
- 卷克隆:快速复制数据卷
- 存储配额、挂载选项、文件系统参数
- 存储卷热挂载、权限问题、挂载失败排障
18. 🚀 第四阶段:调度、扩缩容、节点管理(集群资源调度,2 周)
控制 Pod 落在哪些节点、资源弹性伸缩,提升集群利用率与稳定性。
19. . K8s 调度器 Scheduler 深度
19.1. .1 调度全流程
预选 (Predicate) → 优选 (Priority) → 节点绑定
19.2. .2 调度约束(高阶调度规则)
- 节点亲和性 NodeAffinity:Pod 倾向 / 强制运行在指定标签节点
- Pod 亲和性 PodAffinity:Pod 和指定 Pod 部署在同一节点(聚集部署)
- Pod 反亲和性 PodAntiAffinity:Pod 分散部署(高可用,避免单点故障)
- 污点 Taint & 容忍 Tolerations(核心)
- 节点打污点,拒绝 Pod 调度;Pod 配置容忍才能调度
- 污点三大效果:
NoSchedule / PreferNoSchedule / NoExecute - 实战场景:专用节点(日志、监控、中间件隔离)、节点维护驱逐 Pod
20. . 资源扩缩容体系
20.1. .1 副本扩缩容
- Deployment 手动扩缩、滚动更新、最大不可用 / 最大爆发配置(发布策略)
20.2. .2 HPA 水平 Pod 自动扩缩容(核心)
- 作用:根据指标自动增减 Pod 副本数,应对流量波动
- 监控指标源:
- 内置指标:CPU、内存使用率
- 自定义指标:QPS、连接数、队列长度(结合 Prometheus)
- 配置、冷却时间、扩缩容节奏、抖动优化、HPA 不生效排查
20.3. .3 VPA 垂直 Pod 扩缩容
- 自动调整 Pod CPU / 内存 requests/limits,优化资源分配,减少资源浪费
20.4. .4 集群节点自动扩缩容 Cluster Autoscaler (CA)
- 集群资源不足时自动新增云节点,负载降低自动缩容释放节点
- 云厂商集群(ACK/EKS/GKE)标配组件
21. . 节点管理
- 节点标签、节点污点、节点维护操作:
cordon(封锁) / drain(驱逐) / uncordon(解除) - 节点状态:Ready/DiskPressure/MemoryPressure/PIDPressure/NetworkPressure 五大压力状态排查
22. 🌐 第五阶段:集群运维、故障排障(SRE 核心能力,长期练习)
23. . 集群生命周期运维
- 版本升级:K8s 集群灰度升级、组件升级、跨版本升级注意事项
- 证书管理:kubeadm 证书过期、证书续签、证书轮换(经典线上故障)
- 集群备份恢复:etcd 备份(重中之重)、etcd 数据恢复、灾难演练
- 组件高可用:etcd 集群、kube-apiserver 高可用、控制器多实例
24. . 高频故障排查体系(按场景分类)
24.1. .1 Pod 异常
- Pending:调度失败、资源不足、PVC 未绑定、污点 / 亲和性不匹配
- CrashLoopBackOff:容器反复崩溃(日志、探针、权限、配置、依赖问题)
- ImagePullBackOff:镜像拉取失败(仓库权限、镜像名、网络、私有镜像密钥)
- Running 但无法访问:探针失败、端口错误、网络策略、路由问题
24.2. .2 网络故障
- CoreDNS 解析异常、Service 访问异常、跨节点不通、网络策略拦截
24.3. .3 存储故障
- PVC Pending、卷挂载失败、目录权限不足、存储 IO 高、磁盘满
24.4. .4 节点异常
- 节点 NotReady、资源压力、内核问题、容器运行时故障
24.5. .5 集群组件故障
- kube-apiserver、kube-controller-manager、kube-scheduler、etcd 异常
25. . 容器运行时
- 容器运行时演进:Docker → containerd → CRI 标准
- CRI、OCI 规范、containerd 运维、镜像管理、垃圾回收
26. . kubectl 高阶用法
- 字段选择、标签筛选、自定义输出、jsonpath 格式化查询
- 批量操作、 dry-run 模拟执行、补丁
kubectl patch、资源导出、审计
27. 💾 第六阶段:K8s 安全体系(生产合规、攻防加固,1~2 周)
28. . 身份认证 & 授权 & 准入控制(AAA)
- 认证 Authentication:用户 / 组件身份校验(证书、Token、密码、OIDC)
- 授权 Authorization:RBAC 基于角色访问控制(核心)
- User、Group、ServiceAccount、Role、ClusterRole、RoleBinding、ClusterRoleBinding
- 最小权限原则、权限拆分、审计权限
- 准入控制器 Admission Controller
- 内置准入插件、动态准入、自定义校验(拦截非法资源、安全校验)
29. . 镜像安全
- 镜像漏洞扫描、私有镜像仓库权限、镜像签名、禁止不安全镜像
- 镜像最小化、基础镜像选型、防止提权
30. . 容器安全加固
- 禁用特权容器、权限降级、capabilities 能力裁剪
- 主机目录挂载限制、hostNetwork/hostPID 风险管控
- 安全上下文 SecurityContext 全配置
31. . 集群安全策略
- 网络策略隔离、命名空间资源配额 ResourceQuota、LimitRange 默认资源限制
- 集群审计日志:Audit 审计规则、日志采集、异常操作追溯
32. 🔒 第七阶段:监控、日志、可观测性(云原生标准链路,2 周)
33. . 监控体系(Prometheus + Grafana 为主流)
33.1. .1 Prometheus 架构 & 原理
- 时序数据库、拉取模式、指标类型、标签
33.2. .2 K8s 监控全链路
- 监控对象:节点、容器、Pod、Service、控制器、etcd、集群组件
- 服务发现:K8s SD 自动发现资源
- 常用 Exporter:node-exporter (节点)、kube-state-metrics (K8s 资源指标)、cadvisor (容器指标)
33.3. .3 告警体系
- AlertManager、告警路由、静默、分组、抑制
- 企业告警渠道:钉钉 / 企业微信 / 邮件 / 短信
33.4. .4 高阶
- PromQL 语句编写、指标聚合、复杂查询、记录规则、告警规则优化
34. . 日志体系
34.1. .1 容器日志标准
- 容器日志输出标准(stdout/stderr)、日志驱动
34.2. .2 主流日志架构
- EFK:Elasticsearch + Fluentd + Kibana(主流)
- ELK:Elasticsearch + Logstash + Kibana
- Loki + Promtail(轻量,结合 Prometheus 生态)
34.3. .3 日志采集运维
- DaemonSet 部署采集器、日志切割、日志过滤、脱敏、日志索引、检索分析
35. . 链路追踪(分布式追踪)
- Jaeger / Zipkin 基础,微服务调用链追踪、慢请求定位
36. 📊 第八阶段:云原生生态组件 & 中间件容器化(按需深耕)
K8s 只是底座,生态组件是落地微服务 / 中间件的关键:
- 服务网格 Istio(高阶微服务治理)
- 流量管理、灰度发布、熔断、降级、限流、mTLS 加密、可观测性
- Ingress / Ingress Controller
- 替代 NodePort/LoadBalancer 作为集群入口网关
- 主流:Nginx Ingress、Traefik、APISIX Ingress
- 路由规则、SSL 证书、限流、黑白名单、灰度发布
- GitOps & CI/CD
- ArgoCD / Flux:GitOps 声明式发布
- Jenkins/GitLab CI:容器化流水线、镜像构建、自动部署
- 应用包管理 Helm(K8s 包管理器)
- Chart 结构、模板、变量、仓库、打包、部署、版本管理、私服仓库
- 生产批量部署中间件 / 组件必备
37. . 中间件容器化最佳实践
结合你维护的中间件:
- Kafka、Redis、MySQL、ES 等有状态组件容器化部署、调优、数据持久化、集群运维
38. 🎯 第九阶段:集群架构、性能调优 & 生产最佳实践(高阶架构)
39. . 集群架构设计
- 多集群管理:集群联邦、Argo CD 多集群分发
- 命名空间规划、资源分区、环境隔离(开发 / 测试 / 生产)
- 大集群拆分、拓扑规划、地域容灾
40. . 性能调优
- 集群组件调优:kube-apiserver、etcd、kubelet 参数调优
- 容器内核参数调优(文件句柄、网络、内存,承接你之前 Linux 内核知识)
- CNI、存储、网络性能优化
- 应用层面:Pod 资源配比、并发、连接池优化
41. . 生产规范与最佳实践
- 资源命名规范、标签规范、yaml 目录规范
- 发布策略:滚动更新、蓝绿发布、金丝雀 / 灰度发布
- 容灾方案:节点故障、集群故障、数据备份、灾备演练
- 成本优化:资源裁剪、节点混部、弹性伸缩降低云资源开销
42. 📋 分阶段学习周期 & 优先级(运维 / 面试导向)
| 阶段 | 核心内容 | 建议时长 | 优先级 |
|---|---|---|---|
| 1 | Pod 高阶、探针、QoS、StatefulSet、Job、Service 原理 | 1~2 周 | ★★★★★ |
| 2 | CNI 网络、Calico、NetworkPolicy、CoreDNS | 2 周 | ★★★★★ |
| 3 | PV/PVC/StorageClass、主流存储 | 2 周 | ★★★★☆ |
| 4 | 调度器、亲和性、污点、HPA、节点管理 | 2 周 | ★★★★☆ |
| 5 | 故障排障、etcd 备份、证书、版本升级 | 长期 | ★★★★★ |
| 6 | RBAC 安全、准入控制、容器加固 | 1 周 | ★★★☆☆ |
| 7 | Prometheus 监控、EFK 日志 | 2 周 | ★★★★☆ |
| 8 | Ingress、Helm、CI/CD、GitOps | 2 周 | ★★★☆☆ |
| 9 | Istio、多集群、架构设计、性能调优 | 按需深耕 | ★★☆☆☆ |
43. 🔄 学习建议 & 避坑
- 强结合实操:搭建多节点集群(虚拟机 / 云服务器),所有配置、故障亲手复现。
- 串联已有知识:把 Linux 内核、网络、内存、存储知识和 K8s 结合,理解容器底层依赖。
- 优先排障能力:进阶阶段不要只学配置,重点模拟故障、分析日志、定位根因。
- 循序渐进:先吃透原生 K8s,再学 Istio 等复杂生态,避免一开始陷入微服务治理。
- 重视生产规范:资源限制、安全权限、备份、灰度发布是企业落地核心。
44. 💡 核心学习资源
- 官方文档:https://kubernetes.io/zh-cn/docs/(最权威)
- 书籍:
- 《Kubernetes 进阶实战》
- 《云原生 Kubernetes:运维实战》
- 《Kubernetes 权威指南》
- 组件文档:Prometheus、Calico、Helm、Istio 官方文档
- 实验环境:kubeadm 自建集群、minikube(单机测试)、云厂商免费容器服务
(注:文档部分内容可能由 AI 生成)
关联文档
