适用场景

有状态服务上 K8s 的坑主要在存储:StorageClass 选错、卷无法在线扩容、快照没做导致数据无法回滚。

配置步骤(快照、备份与恢复演练)

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata: { name: data-snap-01, namespace: app }
spec:
  volumeSnapshotClassName: csi-snapclass
  source: { persistentVolumeClaimName: data }

关键参数与建议

  • StorageClass 按性能分级:SSD/HDD、是否支持快照与扩容
  • 访问模式:RWO(单节点读写)为主,RWX 需共享存储支持
  • 在线扩容:确认驱动支持,扩容后文件系统也要扩容
  • 快照与备份:VolumeSnapshot 配合备份工具,定期演练恢复
  • 容量治理:PVC 使用率监控,避免节点磁盘写满

容易踩的坑

  • CSI 驱动未部署快照组件,快照创建失败
  • 只做快照不做异地备份,集群级故障全丢
  • 从不验证从快照恢复,恢复时发现不可用

验证与巡检

kubectl get volumesnapshot -A
  • 巡检:快照计划执行、恢复演练记录

小结

存储类资源的验收:能创建、能扩容、能快照、能恢复,四条都验证过才敢放有状态服务。

> 说明:文中命令为通用写法,不同型号/版本可能略有差异,落地前请对照设备实际版本的官方文档;带外管理与安全设备变更建议先在测试设备验证。