高可用与韧性 (High Availability & Resilience)
在跨越多个大陆和提供商的分布式系统中,故障不是一种可能性,而是一种必然性。Cyberun Cloud 采用 “纵深防御 (Defense in Depth)” 策略构建,确保故障被隔离、遏制并自愈。
第 1 层:入口韧性 (前门)
如果负载均衡器节点发生故障会怎样?
- 技术: Keepalived (VRRP)
- 机制: 我们成对运行 HAProxy 节点。它们通过心跳互相监控。如果主节点停止心跳,备用节点会立即接管浮动 IP (VIP)。
- 影响: < 2 秒的停机时间。现有的 TCP 连接可能会重置,但服务保持可达。
第 2 层:控制面韧性 (大脑)
如果 API 服务器无法从互联网访问会怎样?
- 技术: Localhost Proxy (Kubespray)
- 机制: 每个工作节点 (Worker) 都在本地运行一个轻量级的 Nginx 代理,监听
127.0.0.1:6443。此代理将请求负载均衡到所有健康的控制面节点。 - 影响: 即使外部负载均衡器(第 1 层)完全失效,内部集群通信(Kubelet <-> API Server)也会不间断地继续。集群不会“分崩离析”。
第 3 层:应用韧性 (工作负载)
如果计算节点崩溃会怎样?
- 技术: Kubernetes Controller Manager & Karmada
- 本地故障: 本地 Kubernetes 调度器检测到节点状态为
NotReady,并将 Pod 重新调度到同一集群内的健康节点。 - 区域故障: 如果整个集群(例如 Destroyer)下线,Karmada 会检测到集群健康状况变化,并根据您的故障转移策略将工作负载传播到备用集群(例如 Aegis)。
第 4 层:数据韧性 (金库)
如果存储硬盘损坏会怎样?
- 技术: Ceph 自愈 (Self-Healing)
- 机制: Ceph 中的数据在不同的物理节点上复制 3 份 (Replica=3)。
- 故障场景: 当硬盘发生故障时,Ceph 将该 OSD 标记为
down。它会立即开始“回填 (Backfilling)”——在其他可用硬盘上重建丢失的数据块,以恢复完整的冗余度。 - 影响: 零数据丢失。重建期间性能可能会略有下降,但数据完整性得到数学上的保证。
灾难恢复 (DR) 策略
针对灾难性场景(例如数据中心火灾),我们实施:
- 卷快照: 自动化快照(通过 VolumeSnapshotClass)允许从逻辑损坏(例如意外删除)中进行时间点恢复。
- 异地备份: 关键状态(etcd 备份、PV 快照)被传输到地理位置隔离区域(例如从纽约到东京)的 S3 兼容对象存储中。