Kubernetes 存储实战:NFS PV/PVC、ConfigMap 与探针测试(修订版 v2)
文章目录Kubernetes 存储实战:NFS PV/PVC、ConfigMap 与探针测试(修订版 v2)0. 修订清单:v1 → v2 关键修正1. 环境与资源规划1.1 集群信息1.2 应用与存储对应关系1.3 离线镜像清单2. 核心概念速查(含易错点)2.1 PV / PVC 生命周期2.2 访问模式(accessModes)2.3 ConfigMap2.4 探针(Probe)3. 准备工作3.1 所有 K8s 节点安装 NFS 客户端并连通性验证3.2 NFS 目录规划与权限处理(★ 关键,务必先做)问题背景(为什么必须处理)方案①(推荐):为 MySQL 单独增加 `no_root_squash` 导出方案②(备选,不改 export):跳过 chown + 目录放权3.3 镜像离线导入(每个 Worker 节点都要做)4. 命名空间与静态存储(PV / PVC)4.1 创建命名空间4.2 静态 PV + PVC(方案 A 基础)5. 部署 Nginx(无状态应用)5.1 无状态特征回顾5.2 ConfigMap(首页 + Nginx 配置)5.3 Deployment5.4 Service(固定 NodePort,便于测试)5.5 部署6. 部署 MySQL(有状态应用)6.1 有状态特征回顾6.2 ConfigMap(MySQL 配置)6.3 Secret(密码,替代明文)6.4 方案 A:单实例 + 静态 PVC6.5 方案 B:多副本 + 动态供给(NFS Provisioner)6.5.1 部署 NFS Provisioner + StorageClass6.5.2 使用动态供给的 StatefulSet7. 完整测试与验证7.0 测试总览7.1 T1–T3 基础设施验证7.2 T4 存储编排验证7.3 T5–T6 Nginx 功能与无状态验证7.4 T7–T8 MySQL 功能与配置验证7.5 T9–T10 持久化验证(核心)T9:删除 Pod,数据保留T10:节点漂移(drain),数据仍保留Reclaim 策略(Retain)验证7.6 T11–T13 探针验证(★ 核心)故障注入原理T11:readiness 探针(Nginx)—— 只摘流量,不重启T12:liveness 探针(Nginx)—— 超时后自动重启T12b:MySQL 探针(readiness + liveness)T13:startup 探针(MySQL)—— 保护窗口验证7.7 T14 ConfigMap 更新生效7.8 T15 动态供给验证(方案 B)7.9 故障排查速查表8. 扩容与优化8.1 无状态应用水平扩容(HPA)8.2 有状态应用扩容8.3 调度优化(反亲和 + 拓扑分布 + PDB)8.4 安全优化8.5 存储优化8.6 探针优化建议8.7 备份与恢复(CronJob)9. 交付物 SOP9.1 交付物清单9.2 标准部署流程(SOP)9.3 验收 Checklist9.4 回滚与清理 SOP9.4.2 ConfigMap / Secret 配置回滚9.4.3 MySQL 数据回滚(从备份恢复)9.4.4 清理场景10. 排障手册10.1 排障:Pod10.1.1 状态速查表10.1.2 `Pending` —— 调度不上去10.1.3 `ContainerCreating` —— 卷挂载失败(NFS 高频坑)10.1.4 `ImagePullBackOff` —— 离线镜像问题10.1.5 `CrashLoopBackOff` —— 应用反复崩溃10.1.6 `CreateContainerConfigError` —— ConfigMap/Secret 引用问题10.1.7 `OOMKilled` / `Evicted` —— 资源问题10.1.8 `Running` 但 `NotReady` —— 就绪探针失败10.1.9 `Terminating` 卡住10.2 排障:PV / PVC10.3 排障:NFS10.4 排障:ConfigMap / Secret10.5 排障:探针(Probe)10.6 排障:Service / Endpoints10.7 排障:网络(CNI / Calico)10.8 排障命令速查表小结(本节要点)Kubernetes 存储实战:NFS PV/PVC、ConfigMap 与探针测试(修订版 v2)适用环境:K8s v1.24.17(3 Master + 2 Worker HA,containerd 1.6.21)、NFS Server192.168.30.249:/data/k8s核心目标:掌握 PV/PVC、NFS 静态与动态供给、ConfigMap、探针(Probe)四类存储与配置能力,并正确区分无状态应用(Nginx)与有状态应用(MySQL)。修订说明:本版修正了 v1 中的15 处技术错误/隐患(详见第 0 章),并补齐完整测试验证步骤、交付物 SOP、扩容与优化方案。0. 修订清单:v1 → v2 关键修正#分类v1 存在的问题影响v2 修正1MySQL 初始化MySQL