Kubernetes 灾难恢复与备份策略

概述 Kubernetes 集群的灾难恢复是运维中最容易被忽视的领域——直到灾难发生。etcd 损坏导致整个集群不可用、PV 数据误删无法恢复、集群升级失败无法回滚……这些场景没有备份就是灾难,有备份就是一次常规恢复。 详细梳理 K8s 灾难恢复的三个层次:etcd 备份恢复(集群元数据)、Velero 备份(K8s 资源)、PV 数据备份(持久化数据),以及跨集群恢复和恢复演练的实践。 本文基于 Kubernetes v1.30 和 Velero v1.14。参考 Kubernetes 灾难恢复文档 灾备基础概念 RTO 与 RPO 指标 全称 含义 目标 RTO Recovery Time Objective 恢复时间目标(多快恢复) < 30min RPO Recovery Point Objective 数据丢失目标(丢多少数据) < 5min 故障发生 恢复完成 |◄────── RTO ──────────►| | | |◄── RPO ──►| | | | | 最后一次备份 故障点 恢复点 备份层次 层次 备份对象 工具 RPO 恢复粒度 etcd 集群所有元数据 etcdctl snapshot 分钟级 整个集群 K8s 资源 Deployment/Service/ConfigMap 等 Velero 分钟级 命名空间/资源 PV 数据 持久化卷数据 Velero/Restic/Kasten 小时级 单个 PV 应用数据 数据库/对象存储 应用自身机制 秒级 应用级 灾备分类 类型 说明 适用场景 备份恢复 定期备份,故障时恢复 通用 活跃-备用 备集群 standby,故障切换 核心业务 活跃-活跃 多集群同时服务,故障切流 全球业务 混沌演练 模拟故障验证恢复能力 灾备成熟度 etcd 备份与恢复 为什么 etcd 备份最重要 etcd 是 K8s 的"大脑"——所有集群状态(Pod、Service、ConfigMap、Secret、Deployment 等)都存储在 etcd 中。etcd 损坏等于整个集群的数据丢失。没有 etcd 备份,其他备份都无意义。...

October 21, 2024 · 9 分钟 · 1797 字 · 徐保金