随着各行业数字化转型的深入,企业应用上云已迈入深度用云阶段。企业在全面拥抱云原生技术的同时,也会采用多云技术路线。基于k8s的容器集群被企业用户广泛应用,在多云的应用场景下,企业对于跨地域、跨云的k8s集群管理已成为云原生领域构建多云分布式应用的重要需求。目前业界有一种多云容器集群管理的技术,就是基于开源社区的Karmada项目,该开源技术项目是CNCF的正式孵化项目,其技术生态受到业界广泛认可,已被多家企业用于自身实践。Karmada具备多云多集群的k8s编排能力,兼容k8s API,为用户提供即插即用的自动化集群管理、流量调度、应用灾备等功能,给企业构建多云跨集群的分布式应用带来了便利性。
一、Karmada架构
图片来源:karmada.io
控制平面主要组件:
Karmada API Server:API Server 对外提供 Karmada API ,是 Karmada 控制平面的前端。
ETCD:用于存储Karmada 的资源对象数据。
Karmada Scheduler:负责多集群调度策略。
Karmada Controllers: Karmada 控制器管理器包括各种自定义的控制器,控制器监视Karmada对象,负责与成员集群的API服务器通信。
二、Karmada的特点
1)兼容 K8s 原生 API
2)开箱即用
3)丰富的调度策略
4)开放中立
三、应用场景
1)基于 Karmada 构建混合多云多集群平台
2)基于Karmada 构建分布式云原生产品
3)基于 Karmada 构建基于多云、多区域集群的统一应用管理平台
4)基于Karmada实现多集群应用多活容灾和故障切换
5)基于Karmada实现多集群资源合理调配