公众号关注 「奇妙的 Linux 世界」
设为「星标」,每天带你玩转 Linux !
Karmada(Kubernetes Armada)是华为主导开源的 Kubernetes 多云容器编排管理系统,可以跨多个Kubernetes 集群和云运行你的云原生应用程序,而无需更改应用程序。通过使用 Kubernetes 原生 API 并提供高级调度功能,Karmada 可以实现真正的开放式多云 Kubernetes 集群管理。
Karmada 旨在为多云和混合云场景中的多集群应用程序提供自动化管理,其关键功能包括集中式多云管理、高可用性,故障恢复和流量调度。
1特性
-
兼容 K8s 原生 API
-
-
零变化升级,从单集群到多集群
-
无缝整合现有的 K8s 工具链
-
-
开箱即用
-
-
内置一系列场景的策略集合,包括
Active-active
、远程灾难恢复、地理冗余等等 -
跨集群应用的自动扩展、故障转移和多集群的负载均衡
-
-
避免锁定供应商
-
-
与主流云供应商整合
-
自动分配,跨集群迁移
-
不依赖于专有的供应商编排
-
-
集中化管理
-
-
与地点无关的集群管理
-
支持公有云、企业内部或边缘集群
-
-
高效的多集群调度策略
-
-
集群亲和力、多集群拆分/重新平衡
-
多维度 HA:区域/可用区/集群等
-
-
开放和中立
-
-
由互联网、金融、制造业、电信、云计算供应商等联合发起
-
以 CNCF 的开放治理为目标
-
本项目是在 Kubernetes Federation v1 和 v2 的基础上进行开发的,一些基本概念继承自这两个版本。
2架构

Karmada 控制平面由以下几个组件组成:
-
Karmada API 服务器
-
Karmada 控制管理器
-
Karmada 调度器
ETCD 存储 karmada API 对象,API 服务器是所有其他组件进行通信的 REST 端点,Karmada 控制管理器根据你通过 API 服务器创建的 API 对象执行操作。
Karmada 控制管理器运行各种控制器,控制器观察 karmada 对象,然后与底层集群的 API 服务器通信,创建常规的 Kubernetes 资源对象。
-
集群控制器:将 kubernetes 集群附加到 Karmada,通过创建集群对象管理集群的生命周期。
-
策略控制器:该控制器观察传播策略对象。当
PropagationPolicy
对象被添加时,它选择一组与resourceSelector
匹配的资源,并为每个单一的资源对象创建ResourceBinding
。 -
绑定控制器:该控制器 watch
ResourceBinding
对象,并通过单个资源清单创建对应于每个集群的工作对象。 -
执行控制器:该控制器 watch 工作对象,当工作对象被创建时,它将把资源分配给成员集群。
3概念
资源模板: Karmada 使用 Kubernetes 原生 API 定义联邦资源模板,以使其易于与已经在 Kubernetes 上使用的现有工具集成。
传播策略: Karmada 提供独立的传播策略 API,来定义多集群调度和传播要求。
-
支持
1:n
的映射策略:工作负载,用户不需要每次在创建联合应用时都表明调度限制。 -
使用默认的策略,用户只需与 K8s API 进行交互即可。
覆盖策略: Karmada 提供独立的 覆盖策略 API,专门用于集群的相关配置自动化。例如:
-
根据成员集群区域覆盖镜像前缀
-
根据云供应商覆盖 StorageClass 存储类
下图显示了在传播资源到成员集群时,Karmada 资源是如何参与的。

关于 Karmada 的更多使用请查看项目仓库 https://github.com/karmada-io/karmada
本文转载自:「Github爱好者」,原文:http://t.cn/A6cR2f0o,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com。
你可能还喜欢
点击下方图片即可阅读
无需太多,30 秒搞定在 Kubernetes 中部署 Kubernetes 集群
点击上方图片,打开小程序,加入「玩转 Linux」圈子
更多有趣的互联网新鲜事,关注「奇妙的互联网」视频号全了解!
更多推荐
所有评论(0)