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