ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Kubernetes 存储实战:NFS PV/PVC、ConfigMap 与探针测试(最终版)

Kubernetes 存储实战:NFS PV/PVC、ConfigMap 与探针测试(最终版) 文章目录Kubernetes 存储实战:NFS PV/PVC、ConfigMap 与探针测试(最终版)目录1. 环境信息回顾1.1 集群信息1.2 节点规划1.3 NFS 存储信息2. 核心概念回顾2.1 PV、PVC 与 StorageClass2.2 NFS 存储2.3 ConfigMap 与 Secret2.4 探针(Probe)3. 准备工作3.1 所有 K8s 节点安装 NFS 客户端3.2 NFS 服务器上创建应用目录3.3 镜像准备与导入(离线环境关键步骤)4. 命名空间与静态 PV/PVC4.1 创建命名空间4.2 创建静态 PV 与 PVC(MySQL 方案 A 使用)5. 部署 Nginx 无状态应用5.1 创建 ConfigMap5.2 创建 Deployment5.3 创建 Service5.4 部署与验证6. 部署 MySQL 有状态应用6.1 创建 MySQL ConfigMap6.2 创建 Secret(密码管理)6.3 方案 A:单实例 + 静态 PVC(推荐先做,简单可靠)6.4 方案 B:多副本 + 动态供给(扩展,需 Provisioner)6.4.1 部署 NFS Subdir External Provisioner6.4.2 使用动态供给的 StatefulSet6.5 方案 A 与方案 B 对比7. 持久化测试7.1 单实例静态 PVC 验证(方案 A)7.2 多副本动态供给验证(方案 B)7.3 Nginx 无状态验证(反向对照)8. 探针测试8.1 Nginx 探针测试8.1.1 测试 readinessProbe(就绪探针)8.1.2 测试 livenessProbe(存活探针)8.2 MySQL 探针测试8.2.1 测试 readinessProbe8.2.2 测试 livenessProbe8.2.3 测试 startupProbe(保护慢启动)8.3 探针测试记录表(交付时填写)9. 扩容、优化与备份9.1 扩容9.1.1 无状态应用水平扩缩容9.1.2 有状态应用扩展9.2 优化建议9.2.1 调度与高可用9.2.2 资源配置9.2.3 安全加固9.2.4 存储优化9.3 备份策略9.3.1 手动备份(测试/应急)9.3.2 定时备份 CronJob(推荐)10. 回滚与清理 SOP10.1 回滚10.1.1 应用版本回滚(Deployment / StatefulSet)10.1.2 ConfigMap / Secret 配置回滚10.1.3 MySQL 数据回滚(从备份恢复)10.2 清理(四个场景)场景一:仅删除应用,保留数据与存储(最常见)场景二:删除应用 + PVC(数据仍在 NFS,因 PV 为 Retain)场景三:彻底清理(含 PV 与命名空间)场景四:清理 NFS 数据(⚠️ 不可恢复,务必先确认已备份)11. 排障手册11.1 排障:Pod11.1.1 Pod 状态速查表11.1.2 Pending —— 调度不上去11.1.3 ContainerCreating —— 卷挂载失败(NFS 高频坑)11.1.4 ImagePullBackOff —— 离线镜像问题11.1.5 CrashLoopBackOff —— 应用反复崩溃11.1.6 CreateContainerConfigError —— ConfigMap/Secret 引用错误11.1.7 OOMKilled / Evicted —— 资源问题11.1.8 Running 但 NotReady —— 就绪探针失败11.1.9 Terminating 卡住11.2 排障:PV/PVC11.3 排障:NFS11.4 排障:ConfigMap / Secret11.5 排障:探针(Probe)11.6 排障:Service / Endpoints11.7 排障:网络(CNI / Calico)11.8 排障命令速查表12. 交付物 SOP12.1 清单文件索引12.2 部署 SOP12.3 验收检查表12.4 日常运维要点13. 总结附录 A:清单文件索引Kubernetes 存储实战:NFS PV/PVC、ConfigMap 与探针测试(最终版)适用环境:Kubernetes v1.24.17(三主两从 HA)+ containerd 1.6.21 + CentOS 7 离线部署 + NFS 存储统一命名空间:storage-lab核心结论先行:Nginx 是无状态应用(Deployment + ConfigMap + 探针,不依赖持久化);MySQL 是有状态应用(StatefulSet + PVC + NFS,数据必须持久化)。目录1. 环境信息回顾2. 核心概念回顾3. 准备工作
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进