文章目录
- Kubernetes企业级运维交付实战手册
- 从部署到AI时代的全栈能力体系
- 第1章 K8s集群部署与离线化交付
- 1.1 集群架构选型与能力分级
- 1.1.1 企业级K8s集群的架构分类
- 1.1.2 运维能力分级标准
- 1.1.3 集群规模与资源规划
- 1.2 1M+2N集群标准化部署
- 1.2.1 部署前检查清单
- 1.2.2 系统初始化基线(生产级必做)
- 1.2.3 容器运行时安装与配置
- 1.2.4 K8s组件安装
- 1.2.5 Master节点初始化
- 1.2.6 Node节点加入集群
- 1.2.7 部署Calico网络插件
- 1.2.8 核心附加组件部署
- 1.3 3M+3N高可用集群交付
- 1.3.1 高可用架构设计
- 1.3.2 负载均衡部署
- 1.3.3 高可用集群部署步骤
- 1.4 离线自动化部署体系
- 1.4.1 离线部署的核心挑战与解决方案
- 1.4.2 离线资源包标准清单
- 1.4.3 离线资源准备方法
- 1.4.4 一键部署脚本框架
- 1.5 集群版本升级与节点管理
- 1.5.1 集群版本升级策略
- 1.5.2 Master节点升级操作
- 1.5.3 Node节点升级操作
- 1.5.4 节点生命周期管理
- 1.6 企业级交付验收标准
- 1.6.1 集群部署验收清单
- 1.6.2 高可用集群专项验收
- 1.6.3 交付文档标准
- 1.7 部署故障案例库
- 案例1:kubelet启动失败 - cgroup驱动不匹配
- 案例2:Node节点加入失败 - token过期
- 案例3:节点NotReady - Calico Pod启动失败
- 案例4:镜像拉取失败 - 仓库不可达
- 案例5:etcd启动失败 - 数据目录损坏
- 案例6:端口被占用 - apiserver启动失败
- 1.8 本章小结
- 1.9 课后练习
- 第2章 K8s核心架构与组件协作原理
- 2.1 生产级集群架构总览
- 2.1.1 架构设计哲学
- 2.1.2 生产级架构图
- 2.1.3 组件通信端口一览
- 2.2 控制平面组件深度解析
- 2.2.1 kube-apiserver:集群的大脑入口
- 2.2.2 etcd:集群的心脏
- 2.2.3 kube-scheduler:Pod的调度官
- 2.2.4 kube-controller-manager:集群的大管家
- 2.3 数据平面组件深度解析
- 2.3.1 kubelet:节点上的大管家
- 2.3.2 kube-proxy:Service的实现者
- 2.3.3 容器运行时(CRI)
- 2.3.4 CNI网络插件
- 2.4 Master与Node的交互机制
- 2.4.1 通信方向与关联关系
- 2.4.2 Watch机制:实时通信的基础
- 2.4.3 节点注册与心跳机制
- 2.5 证书体系与安全机制
- 2.5.1 K8s证书体系架构
- 2.5.2 证书生命周期管理
- 2.5.3 kubeconfig文件解析
- 2.6 全链路协作流程:以创建Deployment为例
- 2.7 企业级架构设计原则
- 2.7.1 高可用设计
- 2.7.2 安全设计
- 2.7.3 可扩展性设计
- 2.7.4 可运维性设计
- 2.8 本章小结
- 2.9 课后练习
- 第3章 etcd分布式键值存储运维实战
- 3.1 etcd核心原理与Raft协议
- 3.1.1 etcd在K8s中的定位
- 3.1.2 Raft一致性协议深度解析
- 3.1.3 etcd数据模型
- 3.2 etcd部署与配置管理
- 3.2.1 部署模式选择
- 3.2.2 生产级配置详解
- 3.2.3 关键配置参数说明
- 3.3 核心运维操作手册
- 3.3.1 etcdctl工具配置
- 3.3.2 集群状态查询
- 3.3.3 数据查询与操作
- 3.3.4 成员管理
- 3.3.5 压缩与碎片整理
- 3.3.6 权限管理
- 3.4 备份与灾难恢复
- 3.4.1 数据备份策略
- 3.4.2 灾难恢复流程
- 3.5 性能监控与优化
- 3.5.1 核心监控指标
- 3.5.2 性能优化最佳实践
- 3.5.3 性能基准测试
- 3.6 企业级交付验收标准
- 3.6.1 etcd交付验收清单
- 3.6.2 etcd运维SOP
- 3.7 etcd故障案例库
- 案例1:etcd无Leader - 网络分区导致脑裂
- 案例2:etcd写入失败 - NOSPACE告警
- 案例3:etcd性能急剧下降 - 磁盘IO瓶颈
- 案例4:etcd数据损坏 - 异常断电
- 案例5:etcd证书过期 - 集群突然不可用
- 3.8 本章小结
- 3.9 课后练习
- 第4章 Pod控制器与应用生命周期管理
- 4.1 控制器体系与选型
- 4.1.1 控制器的核心价值
- 4.1.2 控制器全景图
- 4.1.3 控制器选型决策树
- 4.2 Deployment:无状态应用交付标准
- 4.2.1 生产级Deployment配置详解
- 4.2.2 核心运维操作
- 4.2.3 滚动更新原理
- 4.3 StatefulSet:有状态应用交付
- 4.3.1 StatefulSet核心特性
- 4.3.2 生产级StatefulSet配置
- 4.3.3 StatefulSet运维操作
- 4.4 DaemonSet与Job/CronJob
- 4.4.1 DaemonSet:节点守护进程
- 4.4.2 Job:一次性任务
- 4.4.3 CronJob:定时任务
- 4.5 Pod全生命周期管理
- 4.5.1 Pod状态流转
- 4.5.2 Pod生命周期中的关键机制
- 4.5.3 探针机制深度解析
- 4.6 高级调度与亲和性
- 4.6.1 节点选择与污点容忍
- 4.6.2 亲和性与反亲和性
- 4.6.3 资源管理与QoS
- 4.7 企业级应用交付验收标准
- 4.7.1 应用交付验收清单
- 4.7.2 应用发布验收流程
- 4.8 应用故障排查SOP
- 4.8.1 Pod异常排查标准流程
- 4.8.2 常见Pod状态异常与原因
- 4.9 本章小结
- 4.10 课后练习
- 第5章 Service服务与多集群跨区域通信
- 5.1 Service核心原理与类型
- 5.1.1 Service解决的核心问题
- 5.1.2 Service四种类型详解
- 5.1.3 Service配置详解
- 5.1.4 无选择器的Service
- 5.2 kube-proxy与ipvs深度解析
- 5.2.1 Service实现原理
- 5.2.2 ipvs模式工作原理
- 5.2.3 ipvs常用排错命令
- 5.2.4 iptables模式对比
- 5.3 服务发现与DNS
- 5.3.1 CoreDNS工作原理
- 5.3.2 CoreDNS配置详解
- 5.3.3 DNS排错
- 5.4 多区域多集群架构设计
- 5.4.1 多集群的驱动因素
- 5.4.2 三区域多集群架构示例
- 5.4.3 跨集群网络连通方案
- 5.5 跨集群通信实战
- 5.5.1 网络打通配置示例(IPsec VPN)
- 5.5.2 跨集群服务发现
- 5.6 东西流量与南北流量
- 5.6.1 流量模型定义
- 5.6.2 流量治理边界
- 5.6.3 集群出口流量管理
- 5.7 企业级交付验收标准
- 5.7.1 Service交付验收清单
- 5.7.2 多集群交付验收
- 5.8 Service故障案例库
- 案例1:Service无法访问 - 标签选择器不匹配
- 案例2:NodePort无法从外部访问
- 案例3:DNS解析间歇性失败
- 5.9 本章小结
- 5.10 课后练习
- 第6章 存储体系与配置管理
- 6.1 K8s存储模型与选型
- 6.1.1 存储演进:从emptyDir到持久化
- 6.1.2 PV-PVC模型核心概念
- 6.1.3 访问模式与回收策略
- 6.1.4 企业级存储选型矩阵
- 6.2 PV/PVC与StorageClass实战
- 6.2.1 静态PV创建(NFS示例)
- 6.2.2 动态供给:StorageClass
- 6.2.3 PVC扩容
- 6.3 NFS存储实战(对应本书环境)
- 6.3.1 NFS服务端配置
- 6.3.2 NFS客户端配置(所有Node节点)
- 6.3.3 NFS动态供给部署
- 6.3.4 NFS生产注意事项
- 6.4 Ceph分布式存储
- 6.4.1 Ceph架构概览
- 6.4.2 Ceph RBD在K8s中的使用
- 6.4.3 Ceph生产运维要点
- 6.5 对象存储与CSI
- 6.5.1 对象存储使用场景
- 6.5.2 MinIO私有化对象存储
- 6.5.3 CSI存储接口
- 6.6 ConfigMap与Secret
- 6.6.1 ConfigMap:非敏感配置管理
- 6.6.2 Secret:敏感信息管理
- 6.6.3 生产级配置管理最佳实践
- 6.7 企业级交付验收标准
- 6.7.1 存储交付验收清单
- 6.7.2 存储性能测试方法
- 6.8 存储故障案例库
- 案例1:PVC一直Pending
- 案例2:Pod挂载失败 - MountVolume.SetUp failed
- 案例3:数据丢失 - PV被误删
- 6.9 本章小结
- 6.10 课后练习
- 第7章 集群流量治理:东西流量与南北流量
- 7.1 流量模型与治理体系
- 7.1.1 为什么需要流量治理
- 7.1.2 东西流量与南北流量
- 7.1.3 K8s流量治理技术栈
- 7.2 南北流量:Ingress深度解析
- 7.2.1 Ingress架构与原理
- 7.2.2 Nginx Ingress Controller生产级部署
- 7.2.3 Ingress资源配置详解
- 7.2.4 HTTPS与证书管理
- 7.3 API网关与高级流量管理
- 7.3.1 Ingress vs API网关
- 7.3.2 APISIX生产级部署
- 7.4 东西流量:服务网格
- 7.4.1 服务网格核心概念
- 7.4.2 Istio架构
- 7.4.3 Istio流量治理实战
- 7.5 高级流量策略
- 7.5.1 发布策略对比
- 7.5.2 熔断与降级
- 7.5.3 限流策略
- 7.6 流量安全与防护
- 7.6.1 网络策略(NetworkPolicy)
- 7.6.2 WAF与防攻击
- 7.6.3 出口流量管控
- 7.7 企业级交付验收标准
- 7.7.1 流量治理交付验收清单
- 7.7.2 性能基准测试
- 7.8 流量故障案例库
- 案例1:Ingress 502 Bad Gateway
- 案例2:服务间调用超时 - 网络策略拦截
- 案例3:灰度发布流量比例不对
- 7.9 本章小结
- 7.10 课后练习
- 第8章 CI/CD流水线与K8s应用交付
- 8.1 CI/CD体系与价值链路
- 8.1.1 什么是CI/CD
- 8.1.2 CI/CD的价值链路
- 8.1.3 企业级CI/CD工具链
- 8.2 主流技术栈构建与容器化
- 8.2.1 多语言构建体系
- 8.2.2 容器镜像最佳实践
- 8.2.3 镜像仓库管理(Harbor)
- 8.3 企业级研发交付流程
- 8.3.1 环境分层体系
- 8.3.2 Git分支管理策略
- 8.3.3 代码评审与合并流程
- 8.4 流水线设计与实现
- 8.4.1 GitLab CI流水线示例
- 8.4.2 流水线质量门禁
- 8.5 GitOps与声明式交付
- 8.5.1 GitOps核心理念
- 8.5.2 ArgoCD实战
- 8.6 发布管理与回滚机制
- 8.6.1 生产发布规范
- 8.6.2 回滚机制
- 8.6.3 数据库变更管理
- 8.7 交付质量度量体系
- 8.7.1 DORA四大指标
- 8.7.2 企业级交付度量指标
- 8.8 企业级交付验收标准
- 8.8.1 CI/CD交付验收清单
- 8.9 CI/CD故障案例库
- 案例1:镜像拉取失败 - 仓库凭证过期
- 案例2:发布后服务异常 - 配置未更新
- 案例3:CI流水线慢 - 依赖未缓存
- 8.10 本章小结
- 8.11 课后练习
- 第9章 可观测性体系:Prometheus+Grafana+AlertManager
- 9.1 三位一体监控架构
- 9.1.1 可观测性的三大支柱
- 9.1.2 三位一体架构
- 9.1.3 Prometheus核心特性
- 9.2 Prometheus深度解析
- 9.2.1 Prometheus部署架构
- 9.2.2 指标类型
- 9.2.3 K8s服务发现
- 9.2.4 PromQL常用查询
- 9.3 全栈监控指标体系
- 9.3.1 四层监控模型
- 9.3.2 核心监控指标清单
- 9.4 Grafana可视化大盘
- 9.4.1 大盘设计原则
- 9.4.2 常用面板配置
- 9.4.3 开源大盘推荐
- 9.5 AlertManager告警体系
- 9.5.1 告警规则配置
- 9.5.2 AlertManager配置
- 9.5.3 告警分级与响应
- 9.6 日志与链路追踪
- 9.6.1 日志体系(ELK/Loki)
- 9.6.2 链路追踪(Jaeger/Zipkin)
- 9.7 企业级交付验收标准
- 9.7.1 监控体系交付验收清单
- 9.7.2 监控质量度量
- 9.8 监控故障案例库
- 案例1:Prometheus OOM - 指标基数爆炸
- 案例2:告警风暴 - 配置不当
- 案例3:Grafana大盘无数据 - 时区/时间范围问题
- 9.9 本章小结
- 9.10 课后练习
- 第10章 K8s安全与合规体系
- 10.1 K8s安全架构总览
- 10.1.1 4C安全模型
- 10.1.2 K8s安全风险面
- 10.1.3 企业安全合规要求
- 10.2 RBAC权限管理
- 10.2.1 RBAC核心概念
- 10.2.2 生产级RBAC配置
- 10.2.3 RBAC最佳实践
- 10.3 网络策略与安全隔离
- 10.3.1 NetworkPolicy原理
- 10.3.2 生产级网络策略配置
- 10.3.3 网络策略最佳实践
- 10.4 容器安全与镜像安全
- 10.4.1 Pod安全标准(PSS)
- 10.4.2 容器安全上下文
- 10.4.3 镜像安全
- 10.4.4 运行时安全
- 10.5 审计日志与合规
- 10.5.1 apiserver审计日志
- 10.5.2 日志审计与分析
- 10.6 密钥管理与etcd加密
- 10.6.1 Secret的局限性
- 10.6.2 etcd静态加密
- 10.6.3 外部密钥管理(Vault)
- 10.7 CIS Benchmark与安全扫描
- 10.7.1 kube-bench安全扫描
- 10.7.2 kube-hunter渗透测试
- 10.8 企业级安全交付验收标准
- 10.8.1 安全交付验收清单
- 10.9 安全故障案例库
- 案例1:容器逃逸 - 特权容器
- 案例2:Secret泄露 - etcd未加密
- 案例3:横向移动 - 网络全通
- 10.10 本章小结
- 10.11 课后练习
- 第11章 K8s性能调优与容量规划
- 11.1 性能调优方法论
- 11.1.1 性能调优的核心原则
- 11.1.2 性能调优层次
- 11.1.3 性能指标体系
- 11.2 节点系统调优
- 11.2.1 内核参数调优
- 11.2.2 文件系统调优
- 11.2.3 CPU与内存调优
- 11.3 网络性能调优
- 11.3.1 CNI网络性能优化
- 11.3.2 kube-proxy性能优化
- 11.3.3 应用网络优化
- 11.4 存储性能调优
- 11.4.1 etcd性能调优
- 11.4.2 容器存储调优
- 11.4.3 存储性能测试
- 11.5 应用性能调优
- 11.5.1 JVM调优(Java应用)
- 11.5.2 Go应用调优
- 11.5.3 通用应用优化
- 11.6 容量规划与成本管理
- 11.6.1 容量规划方法
- 11.6.2 资源超分与配额
- 11.6.3 成本优化
- 11.7 性能测试与验收
- 11.7.1 性能测试方法
- 11.7.2 性能验收标准
- 11.8 性能故障案例库
- 案例1:节点CPU高 - 上下文切换过多
- 案例2:etcd写入慢 - 磁盘IO瓶颈
- 案例3:DNS解析慢 - conntrack表满
- 11.9 本章小结
- 11.10 课后练习
- 第12章 K8s故障排查与应急响应
- 12.1 故障排查方法论
- 12.1.1 故障排查的核心思维
- 12.1.2 故障分类与影响面
- 12.1.3 故障排查通用流程
- 12.1.4 必备排查工具
- 12.2 节点类故障排查
- 12.2.1 节点NotReady
- 12.2.2 节点压力驱逐
- 12.2.3 节点硬件故障
- 12.3 网络类故障排查
- 12.3.1 Pod间网络不通
- 12.3.2 DNS解析失败
- 12.3.3 Service无法访问
- 12.3.4 Ingress 502/503/504
- 12.4 存储类故障排查
- 12.4.1 PVC Pending
- 12.4.2 Pod挂载失败
- 12.4.3 数据丢失/损坏
- 12.5 应用类故障排查
- 12.5.1 Pod CrashLoopBackOff
- 12.5.2 Pod Pending
- 12.5.3 应用性能差
- 12.6 控制平面故障排查
- 12.6.1 apiserver不可用
- 12.6.2 etcd故障
- 12.6.3 调度器/控制器异常
- 12.7 应急预案体系
- 12.7.1 应急预案框架
- 12.7.2 典型应急预案
- 12.7.3 应急响应流程
- 12.8 典型故障案例库
- 案例1:证书过期导致集群不可用
- 案例2:误删生产Namespace
- 案例3:Docker磁盘满导致节点NotReady
- 案例4:Calico IP耗尽导致Pod Pending
- 12.9 本章小结
- 12.10 课后练习
- 第13章 K8s与AI大模型运维
- 13.1 AI时代的K8s架构
- 13.1.1 为什么用K8s运行AI工作负载
- 13.1.2 AI工作负载的特点
- 13.1.3 AI平台参考架构
- 13.2 GPU资源调度与管理
- 13.2.1 NVIDIA Device Plugin
- 13.2.2 GPU共享与切分
- 13.2.3 GPU拓扑感知调度
- 13.2.4 Gang Scheduling(组调度)
- 13.3 大模型训练与推理部署
- 13.3.1 分布式训练
- 13.3.2 大模型推理服务
- 13.3.3 模型存储与分发
- 13.4 AI平台运维实践
- 13.4.1 GPU节点运维
- 13.4.2 多租户与配额管理
- 13.4.3 监控与告警
- 13.5 常见故障与性能优化
- 13.5.1 常见故障排查
- 13.5.2 性能优化
- 13.5.3 成本优化
- 13.6 企业级AI平台交付标准
- 13.7 本章小结
- 13.8 课后练习
- 第14章 企业级K8s运维体系建设
- 14.1 运维体系总览
- 14.1.1 从"救火队员"到"体系化运维"
- 14.1.2 运维体系四大支柱
- 14.1.3 运维成熟度模型
- 14.2 SOP标准作业程序
- 14.2.1 SOP的价值与编写原则
- 14.2.2 必备SOP清单
- 14.2.3 SOP模板示例
- 步骤2:...
- 4. 回滚方案
- 5. 验收标准
- 6. 注意事项
- 14.5.2 每周巡检
- 14.5.3 每月巡检
- 14.6 持续改进与技术演进
- 14.6.1 运维质量度量
- 14.6.2 故障复盘机制
- 14.6.3 技术演进路线
- 14.7 企业级运维交付验收标准
- 14.8 全书总结
- 14.9 课后练习
- 附录
- 附录A 本书环境镜像清单(v1.24.17)
- 附录B 高频kubectl指令速查
- 附录C 常用端口速查
- 附录D 推荐学习资源
Kubernetes企业级运维交付实战手册
从部署到AI时代的全栈能力体系
本书定位:面向K8s运维应用工程师的企业级生产落地实战手册
核心特色:交付质量导向、验收标准驱动、SOP与应急预案完备、故障案例库丰富
适用版本:Kubernetes v1.24+(兼容v1.25-v1.29主要特性)
实战环境:1M+2N / v1.24.17 / Calico v3.25.0 / ipvs模式 / Docker+cri-dockerd
第1章 K8s集群部署与离线化交付
1.1 集群架构选型与能力分级
1.1.1 企业级K8s集群的架构分类
Kubernetes集群按照控制平面的规模与高可用等级,分为两大类标准架构,分别对应不同的生产场景与SLA要求。运维工程师在交付集群前,必须根据业务等级、规模、可用性要求选择合适的架构,这是交付质量的第一道关口。
1M+2N架构(单控制平面)
- 节点构成:1台Master节点 + 2台Node节点
- 适用场景:开发环境、测试环境、非核心业务预发环境、小型内部工具平台