news 2026/9/3 17:13:10

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Kubernetes 存储实战:NFS PV/PVC、ConfigMap 与探针测试(最终版)

文章目录

  • Kubernetes 存储实战:NFS PV/PVC、ConfigMap 与探针测试(最终版)
    • 目录
    • 1. 环境信息回顾
      • 1.1 集群信息
      • 1.2 节点规划
      • 1.3 NFS 存储信息
    • 2. 核心概念回顾
      • 2.1 PV、PVC 与 StorageClass
      • 2.2 NFS 存储
      • 2.3 ConfigMap 与 Secret
      • 2.4 探针(Probe)
    • 3. 准备工作
      • 3.1 所有 K8s 节点安装 NFS 客户端
      • 3.2 NFS 服务器上创建应用目录
      • 3.3 镜像准备与导入(离线环境关键步骤)
    • 4. 命名空间与静态 PV/PVC
      • 4.1 创建命名空间
      • 4.2 创建静态 PV 与 PVC(MySQL 方案 A 使用)
    • 5. 部署 Nginx 无状态应用
      • 5.1 创建 ConfigMap
      • 5.2 创建 Deployment
      • 5.3 创建 Service
      • 5.4 部署与验证
    • 6. 部署 MySQL 有状态应用
      • 6.1 创建 MySQL ConfigMap
      • 6.2 创建 Secret(密码管理)
      • 6.3 方案 A:单实例 + 静态 PVC(推荐先做,简单可靠)
      • 6.4 方案 B:多副本 + 动态供给(扩展,需 Provisioner)
        • 6.4.1 部署 NFS Subdir External Provisioner
        • 6.4.2 使用动态供给的 StatefulSet
      • 6.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 测试 readinessProbe
        • 8.2.2 测试 livenessProbe
        • 8.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. 回滚与清理 SOP
      • 10.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 排障:Pod
        • 11.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/PVC
      • 11.3 排障:NFS
      • 11.4 排障:ConfigMap / Secret
      • 11.5 排障:探针(Probe)
      • 11.6 排障:Service / Endpoints
      • 11.7 排障:网络(CNI / Calico)
      • 11.8 排障命令速查表
    • 12. 交付物 SOP
      • 12.1 清单文件索引
      • 12.2 部署 SOP
      • 12.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. 准备工作
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 17:12:15

黑悟空评论数据分析系统:从数据采集到可视化看板的完整链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 17:00:53

智谱GLM 5.3开发实战:API接入、本地部署与编码工具配置

智谱 GLM 5.3 和 GLM 6.0 规划最近热度不低,Emad Mostaque 也转评了相关消息。但说句实在话,真正让开发者停下来的不是某个人说了什么,而是“GLM 5.3 到底怎么用、能不能接进我的编码工具、要不要本地部署、和 DeepSeek 比怎么选”。从大家搜…

作者头像 李华
网站建设 2026/9/3 16:56:40

基于Spring Boot的自定义纪念日与祝福系统设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/3 16:54:11

从音频到乐谱:Deltarune配乐扒谱工作流全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华