集群故障迁移
在多云多集群场景中, 为了提高业务的高可用性,用户工作负载可能会被部署在多个不同的集群中。在 Karmada 中,当集群发生故障或是用户不希望在某个集群上继续运行工作负载时,用户可以通过管理集群污点来将工作负载从该集群驱逐,或阻止新的工作负载调度到目标集群。
被驱逐的工作负载将会被调度到其他最合适的集群,从而实现集群故障迁移,保障用户服务的可用性和连续性。
为何需要集群故障迁移
下面来介绍一些多集群故障迁移的场景:
- 管理员在 Karmada 控制面部署了一个离线业务,并将业务 Pod 实例分发到了多个集群。突然某个集群发生故障,管理员希望 Karmada 能够把故障集群上的 Pod 实例迁移到其他条件适合的集群中去。
- 普通用户通过 Karmada 控制面在某一个集群上部署了一个在线业务,业务包括数据库实例、服务器实例、配置文件等,服务通过控制面上的ELB对外暴露,此时某一集群发生故障,用户希望把整个业务能迁移到另一个情况较适合的集群上,业务迁移期间需要保证服务不断服。
- 管理员将某个集群进行升级,作为基础设施的容器网络、存储等发生了改变,管理员希望在集群升级之前把当前集群上的应用迁移到其他适合的集群中去,业务迁移期间需要保证服务不断服。
- ......