
ryaneorth/scheduled-volume-snapshotter本镜像专为Kubernetes集群设计,提供定时卷快照功能,通过集成Kubernetes原生VolumeSnapshot API,实现持久卷(PersistentVolume)的自动化定时备份。其核心价值在于简化数据备份流程,确保关键业务数据的定期保存与可恢复性,降低手动操作成本并提升数据安全性。
以下为通过CronJob部署定时快照任务的示例:
yamlapiVersion: batch/v1 kind: CronJob metadata: name: pvc-snapshotter namespace: default spec: schedule: "0 3 * * *" # 每天凌晨3点执行 jobTemplate: spec: template: spec: serviceAccountName: snapshotter-sa # 具备快照操作权限的SA containers: - name: snapshotter image: [镜像名称]:[版本号] # 替换为实际镜像地址 env: - name: SCHEDULE value: "0 3 * * *" # 与CronJob调度一致(冗余配置,便于容器内日志) - name: TARGET_PVC_NAME value: "app-data-pvc" # 目标PVC名称 - name: TARGET_NAMESPACE value: "default" # PVC所在命名空间 - name: SNAPSHOT_CLASS value: "csi-aws-ebs-snapshotclass" # 目标VolumeSnapshotClass名称 - name: RETENTION_DAYS value: "7" # 保留最近7天的快照 - name: SNAPSHOT_LABELS value: '{"backup":"daily","app":"my-app"}' # 快照标签(JSON格式) restartPolicy: OnFailure
| 参数名 | 描述 | 必选 | 默认值 |
|---|---|---|---|
SCHEDULE | Cron表达式,定义快照执行频率(如"0 */6 * * *"每6小时) | 是 | - |
TARGET_PVC_NAME | 目标PVC名称 | 是 | - |
TARGET_NAMESPACE | PVC所在命名空间 | 否 | default |
SNAPSHOT_CLASS | VolumeSnapshotClass名称,指定快照存储后端 | 否 | 集群默认快照类 |
RETENTION_DAYS | 快照保留天数,超过此天数的快照将被自动清理 | 否 | 30 |
RETENTION_COUNT | 快照保留数量,仅保留最近N个快照(与RETENTION_DAYS二选一,优先COUNT) | 否 | - |
SNAPSHOT_NAME_TEMPLATE | 快照名称模板,支持变量{{.PVCName}}、{{.Timestamp}}(如"snap-{{.PVCName}}-{{.Timestamp}}") | 否 | "snap-{{.PVCName}}-{{.Timestamp}}" |
SNAPSHOT_LABELS | 快照标签,JSON格式字符串(如'{"env":"prod","owner":"team-a"}') | 否 | {} |
LOG_LEVEL | 日志级别(debug/info/warn/error) | 否 | info |
kubectl get volumesnapshot -n <namespace>kubectl logs <pod-name> -c snapshotter/metrics端点,包含快照成功/失败次数、执行时长等指标。FLUSH TABLES WITH READ LOCK)确保数据一致性,再执行快照。RETENTION_DAYS和RETENTION_COUNT时,将优先按RETENTION_COUNT保留快照。



manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务