Kubernetes

K8s 进阶学习路线

·22 分钟阅读·8731 字

K8s 运维/SRE 岗位进阶学习路线——核心资源高阶用法、控制器、网络、存储、安全、监控

📋 目录

K8s 进阶学习路线

1. ⚡ 第一阶段:核心资源高阶用法(进阶基石,1~2 周)

吃透基础资源的高阶配置、底层原理、使用场景、坑点,不再只会简单创建。

2. . Pod 深度详解(一切的基础)

2.1. .1 Pod 核心原理

  • Pod 设计理念:最小调度单元、共享网络 / UTS/IPC 命名空间、独立 PID / 挂载
  • 沙箱容器(pause)作用:网络栈、共享生命周期实现原理
  • Pod 生命周期全流程:创建 → 初始化容器 → 主容器启动 → 就绪/存活检测 → 停止 → 终止

2.2. .2 探针(生产必备,面试高频)

三类探针原理、配置、阈值、故障场景:

  1. livenessProbe 存活探针:容器异常卡死 / 无响应,K8s 自动重启 Pod
  2. readinessProbe 就绪探针:容器未就绪前,从 Service 后端摘除,不转发流量
  3. startupProbe 启动探针:应对慢启动应用(如 Java、中间件),避免启动阶段被误杀 探测方式:exec 命令 / httpGet / tcpSocket / grpc 重点:探针超时、失败阈值、初始延迟、周期调优,以及探针异常引发的 Pod 反复重启问题排查。

2.3. .3 初始化容器 InitContainer

  • 用途:前置依赖(等待数据库 / 中间件、下载配置、权限初始化、脚本预处理)
  • 特性:串行执行、必须全部成功主容器才启动、资源隔离、网络共享
  • 实战场景:日志目录授权、动态拉取配置、依赖服务等待

2.4. .4 容器资源限制 & QoS(资源管控核心)

  1. requests(请求):调度依据,保证最低资源
  2. limits(限制):硬上限,防止资源溢出、雪崩
  3. 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 等有状态中间件
  • 核心特性:
    1. 稳定网络标识:固定主机名、DNS 域名
    2. 稳定存储:PVC 一对一绑定,重建 Pod 不丢失数据
    3. 有序部署、有序删除、有序扩缩容
  • 关联组件: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 四种访问模式

  1. 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 网络四大强制模型(设计规范)

  1. 所有 Pod 可直接通信,无需 NAT
  2. 节点与所有 Pod 可直接通信
  3. Pod 自身访问自己正常
  4. 集群内部访问 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

  1. IPAM IP 地址管理:IP 池、IP 回收、IP 耗尽故障排查
  2. BGP 路由、节点路由发布
  3. 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. . 主流存储方案选型 & 运维

  1. 本地存储 Local PV
    • 适用:高性能、低延迟中间件(Kafka、Redis)
    • 特性:绑定固定节点、Pod 漂移后无法启动、节点下线数据迁移
  2. NFS
    • 简单易用,适合共享存储;缺点:性能一般、单点瓶颈
  3. Ceph
    • 企业级分布式存储,高可用、弹性扩容,大规模集群首选
    • 运维重点:RBD 块存储、CephFS 文件存储、权限、快照、扩容、故障排查

17. . 高级存储特性

  • 卷快照 VolumeSnapshot:数据备份、恢复
  • 卷克隆:快速复制数据卷
  • 存储配额、挂载选项、文件系统参数
  • 存储卷热挂载、权限问题、挂载失败排障

18. 🚀 第四阶段:调度、扩缩容、节点管理(集群资源调度,2 周)

控制 Pod 落在哪些节点、资源弹性伸缩,提升集群利用率与稳定性。

19. . K8s 调度器 Scheduler 深度

19.1. .1 调度全流程

预选 (Predicate) → 优选 (Priority) → 节点绑定

19.2. .2 调度约束(高阶调度规则)

  1. 节点亲和性 NodeAffinity:Pod 倾向 / 强制运行在指定标签节点
  2. Pod 亲和性 PodAffinity:Pod 和指定 Pod 部署在同一节点(聚集部署)
  3. Pod 反亲和性 PodAntiAffinity:Pod 分散部署(高可用,避免单点故障)
  4. 污点 Taint & 容忍 Tolerations(核心)
    • 节点打污点,拒绝 Pod 调度;Pod 配置容忍才能调度
    • 污点三大效果:NoSchedule / PreferNoSchedule / NoExecute
    • 实战场景:专用节点(日志、监控、中间件隔离)、节点维护驱逐 Pod

20. . 资源扩缩容体系

20.1. .1 副本扩缩容

  • Deployment 手动扩缩、滚动更新、最大不可用 / 最大爆发配置(发布策略)

20.2. .2 HPA 水平 Pod 自动扩缩容(核心)

  • 作用:根据指标自动增减 Pod 副本数,应对流量波动
  • 监控指标源:
    1. 内置指标:CPU、内存使用率
    2. 自定义指标: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)

  1. 认证 Authentication:用户 / 组件身份校验(证书、Token、密码、OIDC)
  2. 授权 Authorization:RBAC 基于角色访问控制(核心)
    • User、Group、ServiceAccount、Role、ClusterRole、RoleBinding、ClusterRoleBinding
    • 最小权限原则、权限拆分、审计权限
  3. 准入控制器 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 主流日志架构

  1. EFK:Elasticsearch + Fluentd + Kibana(主流)
  2. ELK:Elasticsearch + Logstash + Kibana
  3. Loki + Promtail(轻量,结合 Prometheus 生态)

34.3. .3 日志采集运维

  • DaemonSet 部署采集器、日志切割、日志过滤、脱敏、日志索引、检索分析

35. . 链路追踪(分布式追踪)

  • Jaeger / Zipkin 基础,微服务调用链追踪、慢请求定位

36. 📊 第八阶段:云原生生态组件 & 中间件容器化(按需深耕)

K8s 只是底座,生态组件是落地微服务 / 中间件的关键:

  1. 服务网格 Istio(高阶微服务治理)
    • 流量管理、灰度发布、熔断、降级、限流、mTLS 加密、可观测性
  2. Ingress / Ingress Controller
    • 替代 NodePort/LoadBalancer 作为集群入口网关
    • 主流:Nginx Ingress、Traefik、APISIX Ingress
    • 路由规则、SSL 证书、限流、黑白名单、灰度发布
  3. GitOps & CI/CD
    • ArgoCD / Flux:GitOps 声明式发布
    • Jenkins/GitLab CI:容器化流水线、镜像构建、自动部署
  4. 应用包管理 Helm(K8s 包管理器)
    • Chart 结构、模板、变量、仓库、打包、部署、版本管理、私服仓库
    • 生产批量部署中间件 / 组件必备

37. . 中间件容器化最佳实践

结合你维护的中间件:

  • Kafka、Redis、MySQL、ES 等有状态组件容器化部署、调优、数据持久化、集群运维

38. 🎯 第九阶段:集群架构、性能调优 & 生产最佳实践(高阶架构)

39. . 集群架构设计

  • 多集群管理:集群联邦、Argo CD 多集群分发
  • 命名空间规划、资源分区、环境隔离(开发 / 测试 / 生产)
  • 大集群拆分、拓扑规划、地域容灾

40. . 性能调优

  1. 集群组件调优:kube-apiserver、etcd、kubelet 参数调优
  2. 容器内核参数调优(文件句柄、网络、内存,承接你之前 Linux 内核知识)
  3. CNI、存储、网络性能优化
  4. 应用层面:Pod 资源配比、并发、连接池优化

41. . 生产规范与最佳实践

  • 资源命名规范、标签规范、yaml 目录规范
  • 发布策略:滚动更新、蓝绿发布、金丝雀 / 灰度发布
  • 容灾方案:节点故障、集群故障、数据备份、灾备演练
  • 成本优化:资源裁剪、节点混部、弹性伸缩降低云资源开销

42. 📋 分阶段学习周期 & 优先级(运维 / 面试导向)

阶段核心内容建议时长优先级
1Pod 高阶、探针、QoS、StatefulSet、Job、Service 原理1~2 周★★★★★
2CNI 网络、Calico、NetworkPolicy、CoreDNS2 周★★★★★
3PV/PVC/StorageClass、主流存储2 周★★★★☆
4调度器、亲和性、污点、HPA、节点管理2 周★★★★☆
5故障排障、etcd 备份、证书、版本升级长期★★★★★
6RBAC 安全、准入控制、容器加固1 周★★★☆☆
7Prometheus 监控、EFK 日志2 周★★★★☆
8Ingress、Helm、CI/CD、GitOps2 周★★★☆☆
9Istio、多集群、架构设计、性能调优按需深耕★★☆☆☆

43. 🔄 学习建议 & 避坑

  1. 强结合实操:搭建多节点集群(虚拟机 / 云服务器),所有配置、故障亲手复现。
  2. 串联已有知识:把 Linux 内核、网络、内存、存储知识和 K8s 结合,理解容器底层依赖。
  3. 优先排障能力:进阶阶段不要只学配置,重点模拟故障、分析日志、定位根因。
  4. 循序渐进:先吃透原生 K8s,再学 Istio 等复杂生态,避免一开始陷入微服务治理。
  5. 重视生产规范:资源限制、安全权限、备份、灰度发布是企业落地核心。

44. 💡 核心学习资源

  1. 官方文档:https://kubernetes.io/zh-cn/docs/(最权威)
  2. 书籍:
    • 《Kubernetes 进阶实战》
    • 《云原生 Kubernetes:运维实战》
    • 《Kubernetes 权威指南》
  3. 组件文档:Prometheus、Calico、Helm、Istio 官方文档
  4. 实验环境:kubeadm 自建集群、minikube(单机测试)、云厂商免费容器服务

(注:文档部分内容可能由 AI 生成)


关联文档

Yanche Blog

记录云原生、Linux、数据库等技术领域的学习心得,以及日常生活的思考与感悟。

© 2026 Yanche Blog. All rights reserved.

Powered by Astro