场景目标
对一个批准的快照完成离线检查和隔离恢复,形成文件完整性、新逻辑集群启动、计划内客户端同步三个独立验收结果;实测恢复耗时并与 RPO/RTO 对照,证明原成员、生产客户端和外部业务不会接入演练,保留未覆盖的业务数据依赖与恢复边界。
云原生与容器 · 高级
以 etcd 3.6 工具链验证快照可恢复性,覆盖完整性、隔离新集群、revision 边界、客户端验收和回退停止点。
对一个批准的快照完成离线检查和隔离恢复,形成文件完整性、新逻辑集群启动、计划内客户端同步三个独立验收结果;实测恢复耗时并与 RPO/RTO 对照,证明原成员、生产客户端和外部业务不会接入演练,保留未覆盖的业务数据依赖与恢复边界。
以 etcd 3.6 服务端、etcdctl 与 etcdutl 支持组合为参考,实施前记录 Kubernetes 和发行版兼容要求。需要受审阅 TLS 管理配置、受控备份副本、专用隔离主机与新目录、独立证书和网络限制、足够恢复与保留空间。备份获取、原集群状态查询、隔离服务启动与客户端测试分别授权;KMS、API Server 加密配置和外部依赖必须纳入清单。预计 180 分钟用于小规模隔离演练,文件传输、大容量恢复和完整业务验证另计。不得在原生产数据目录执行恢复。
受控快照副本先做离线校验,再恢复到独立成员和新目录;新集群只向隔离测试客户端开放,文件完整、服务启动与客户端同步分别验收。
点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。
审阅新成员、TLS、网络和 revision 处理;KMS 与 API Server 加密材料分开保管,不输出秘密。
表示获批备份或既有备份副本的取得,不是生产与演练集群持续复制。
校验通过后才用于恢复,原件保持不变。
根据快照年龄和客户端缓存评估 revision bump/mark-compacted,不机械复用固定增量。
恢复生成新逻辑集群数据与成员身份;启动服务另经已批准的演练配置。
只返回隔离客户端获准读取和 watch 的结果,不存在图中的生产接管路径。
验证实际集群身份、成员及运行状态,单成员启动不代表多成员多数已验证。
分别记录实际执行、替代证据和未验证项目,不将备份成功写成业务恢复成功。
新 token 不能代替 TLS 与网络隔离;原成员、生产 API Server 和外部业务不能连接演练端点。
业务数据库、持久卷、密钥与 KMS 等依赖另有恢复责任,不能据此宣称应用已整体恢复。
本图不执行强制新集群或生产切流,真实多数丢失后的恢复需单独批准和完整依赖评审。
适用于自管 etcd 的定期备份恢复演练,以受控快照副本在隔离环境建立新的逻辑集群。生产多数丢失后的正式恢复需要另行批准,本场景不自动停机或切换现有控制面。托管 Kubernetes 使用服务商支持的恢复通道,不能推断具备 etcd 直连权限。
内容为 PENDING(待环境验证),不是已部署或已完成演练的记录。示例以 etcd 3.6 为基准:etcdctl 保存快照,etcdutl 检查与恢复;其他版本重新核对工具支持。新集群使用新目录、成员身份和隔离地址,不能与原成员及生产客户端互联。revision bump 与 mark-compacted 必须按客户端缓存、快照年龄及工具参数支持审阅,不机械使用固定增量。
分别证明快照文件完整、隔离 etcd 可启动、计划内客户端可按快照时间点正确同步,并记录所有未测试项。备份成功不等于恢复验证,单成员启动不等于已验证多成员多数与生产接管。etcd 恢复不能代替业务数据库、持久卷、密钥材料和外部依赖恢复。
由恢复负责人界定定期演练或真实灾难,不将单成员异常自动处理为全量重建。记录 RPO、RTO、快照时间点和数据取舍审批人,盘点服务端及工具版本、成员、故障域、加密配置与外部依赖。以下命令仅在获准的管理环境读取状态,TLS 凭据来自受控配置,不输出密钥;多数丢失导致超时时保留结果,不重复施压。
etcdctl version
etcdutl version
etcdctl endpoint status --write-out=table
etcdctl member list --write-out=table版本、成员清单、恢复目标和责任人经过复核;已明确哪些资源不在 etcd 快照内,Kubernetes 与 KMS 依赖各有恢复责任。权限与工具支持可证明,尚无恢复记录时标注待验证,没有把现有备份成功当作前置演练完成。
盘点不改变成员关系。目标、版本、备份来源或授权不清时停止后续恢复;保留原集群、服务入口和既有备份策略,不运行强制新集群或成员删除命令,也不临时禁用 TLS 绕过连接失败。
优先选择已有可追溯快照;确需新建时,先审批单一端点、时间、资源开销和唯一输出路径。快照操作会占用读取带宽与存储 I/O,不等同于无影响的状态查看。确认空间、权限和传输加密,保存任务起止时间、文件校验与来源。以下示例不含真实地址,禁止覆盖唯一可用备份。
# 需备份授权,并替换端点与不存在的新文件路径。
etcdctl --endpoints=BACKUP_ENDPOINT snapshot save NEW_SNAPSHOT_FILE
etcdutl snapshot status NEW_SNAPSHOT_FILE --write-out=table快照有明确来源、生成时间、revision、文件大小和校验记录,唯一文件路径未覆盖旧备份。访问受限且传输可追溯,生成期间集群负载未超预算;没有把运行中数据目录的随意复制冒充一致快照。
备份增加明显延迟、空间不足或输出路径冲突时停止本次新增备份任务并保留错误记录,不中断原 etcd 服务。未完成文件单独标记并按保留策略处理,保持上一份可用备份不变,不清空目录释放空间。
对受控副本执行离线状态检查,对照源文件和传输校验,检查 revision、键数与体积变化是否有业务解释。分开保存快照与 CA、API Server 加密配置、KMS 接入材料,验证有授权的恢复渠道,不打印 Secret 或遍历导出业务键值。校验失败、快照过旧或缺少加密依赖时停止,不使用跳过校验来掩盖原因。
文件来源与传输完整性一致,快照状态合理且满足批准的恢复时间点;必要加密材料可以按权限流程取得。验收表将文件可读、etcd 可启动和客户端可用分为不同项,目前仅确认完成的检查,其余保持待验证。
离线检查不写入原集群。发现损坏或依赖缺失时隔离有疑问的副本,保留原文件和差异证据,重新选择获准备份;不修改原备份、不关闭数据加密,也不继续启动无法解释来源的恢复集群。
在恢复前确认演练主机、路由、DNS、监听地址、证书及服务启动参数全部独立,拒绝与原 etcd 客户端和 peer 地址互通;生产 API Server 与其他客户端也不能访问演练端点。审阅新成员名称、新 token 和新目录,token 不能替代认证与网络隔离。若启动测试 Kubernetes 控制器,阻断云 API、Webhook 及业务外部副作用并使用批准的测试替身。
网络负责人和恢复负责人共同确认原成员与新集群无连接路径,服务配置不含生产端点、原数据目录或自动发现入口。计划测试的客户端在独立范围内,外部副作用有阻断证据;隔离失败项不存在或明确阻止推进。
隔离未通过时禁止启动恢复服务,撤回本次尚未启用的演练配置并修正方案。若误启动立即停止本次演练服务对外访问并升级事件,保留审计记录;不得通过更改原生产防火墙来迁就错误的演练地址。
运行实际 etcdutl 的帮助确认参数,以 etcd 3.6 文档作为基准。涉及 Kubernetes 或 watch 缓存客户端时,按快照年龄、已观察最高 revision、写入上界和余量评估 --bump-revision,并与 --mark-compacted 配合验证客户端重新列举。不同发行版和旧版本必须重新确认,不能复制固定十亿增量,也不能把不支持的参数简单删除后宣称等价。
etcdutl snapshot restore --help工具支持、快照 revision、客户端可能见过的 revision 范围和选定增量计算有审阅记录;恢复后的逻辑版本单调性与 watch 重建策略可解释。无法证明边界时标记阻塞并停在方案阶段,不把旧客户端缓存一致性留给上线后观察。
本阶段只审阅离线工具能力,不修改数据。计算依据不足、版本不支持或客户端未知时停止恢复,选择经验证的兼容方案后重新审批;不随意升级生产工具、不对在线集群直接执行 compact 作为替代。
仅在第四、五步通过且获得离线恢复授权后操作。下例为单成员隔离模板,全部大写项和 example.invalid 地址须替换为审阅后的演练值;它不启动服务。需要客户端接管验证时,必须把第五步批准的 revision 参数加入最终命令后复核。多成员演练全部使用同一快照,各自新名称、新目录和一致的新成员清单,不引用原成员。
etcdutl snapshot restore SNAPSHOT_COPY \
--name=drill-a \
--data-dir=NEW_DRILL_DATA_DIR \
--initial-cluster=drill-a=https://drill-a.example.invalid:2380 \
--initial-advertise-peer-urls=https://drill-a.example.invalid:2380 \
--initial-cluster-token=UNIQUE_DRILL_TOKEN恢复输出只写入新演练目录,原快照与生产目录均未变化;恢复记录包含实际参数、工具版本和新成员映射。revision 相关参数与第五步一致,单成员文件恢复没有被写成已验证生产多成员恢复或客户端接管。
命令失败、路径指向现存数据或参数不一致时立即停止,不启动该目录。保留失败目录与日志,再次尝试使用另一个经过确认的新目录;不删除原数据、不覆盖唯一快照、不添加 force-new-cluster 或跳过校验参数强行继续。
通过获批的演练服务配置启动恢复成员,复查隔离监听、TLS 与端点清单。只对明确列出的演练端点检查身份、成员、告警与受控健康测试,不沿用生产 ETCDCTL 端点变量或自动发现未审阅成员。抽样读取获准脱敏对象,必要时在独立客户端验证 API 读取、加密对象解密和 watch 重新同步;所有功能测试都记入授权演练记录。
新逻辑集群身份、期望成员数与快照对象相符,计划内客户端按恢复点正确同步且没有外部副作用。分别记录文件恢复、成员启动和客户端通过状态,单成员启动未覆盖多成员多数和业务接管的部分明确列为未验证。
发现生产访问、原成员连接、数据不符或客户端持续异常时停止本次隔离服务与测试入口,保留证据并通知负责人。保持原集群不变;不能把回退到更旧快照当成撤销新业务写入,真实接管必须另行进行数据取舍审批。
分别统计备份、传输、离线恢复、启动、客户端验证和人工等待耗时,对照 RPO/RTO 及批准的数据时间点。记录 KMS、持久卷、外部数据库和多成员故障等覆盖缺口,把备份成功率、备份年龄和最近恢复演练结果分别展示。按保留策略关闭本次演练入口、临时权限和快照副本访问,交接可复查的脱敏证据及下次演练计划。
交接记录包含版本、审批、隔离证据、阶段耗时、对象核对和未验证项,每个结论都能定位对应证据。原生产集群未改动,演练残留权限和入口已处理;只有实际完成的范围更新验证结论,不宣称已具备未经测试的生产容灾能力。
清点发现权限残留、证据缺失或恢复目标未达到时重新打开演练记录,先关闭不必要入口并保留必要证据。撤回过度的完成声明,明确负责人和补测期限;不删除唯一恢复材料,也不为缩短耗时跳过业务一致性核对。