
4 月 25 日,华为开发者大会(HDC.Cloud)2021 在深圳召开。华为云 CTO 张宇昕在主题演讲中宣布正式开源云原生多云容器编排项目 Karmada,未来还计划将该项目捐赠给云原生计算基金会 CNCF。
Karmada 开源项目链接:https://github.com/karmada-io/karmada

据了解,Karmada(Kubernetes Armada)是一个 Kubernetes 管理系统,基于 Kubernetes Federation v1 和 v2 开发,它可以跨多个 Kubernetes 集群和云运行云原生应用程序,而无需对应用程序进行更改。通过直接使用 Kubernetes 原生 API 并提供高级调度功能,Karmada 可以实现真正的开放式多云 Kubernetes。
Karmada 旨在为多云和混合云场景下的多集群应用程序管理提供 turnkey 自动化,其关键功能包括集中式多云管理、高可用性、故障恢复和流量调度。
Karmada 关键特性
兼容 K8s 原生 API
零修改实现从单集群到多集群的升级
无缝集成现有 K8s 工具链
开箱即用
内置针对不同场景的策略集,包括:Active-Active、远程灾难恢复、地理冗余等
支持跨集群应用程序在多集群上的自动扩展、故障转移和负载均衡
避免供应商锁定
支持与主流云厂商集成
支持自动分配和跨集群迁移
不依赖于某家专有供应商编排
集中管理
支持位置不可知集群管理
支持公有云、本地端(on-prem)或边缘端集群管理
高效的多集群调度策略
支持集群亲和性调度,多集群拆分和重新平衡
多维 HA:区域/可用区/集群/提供商
开放中立
由多家互联网、金融、制造业、电信、云服务厂商共同发起
以捐赠给 CNCF 进行开放治理为目标
Karmada 的架构设计

Karmada 的控制面板包含 API 服务器(API Server)、控制器管理器(Controller Manager )和调度器三大组件。
ETCD 存储 karmada API 对象,API 服务器作为 REST 端点,可以与所有其他组件通信,而 Karmada 控制器管理器将根据用户创建的 API 对象执行操作。
Karmada 控制器管理器运行各种控制器,这些控制器监视 karmada 的对象,然后与基础集群的 API 服务器对话以创建常规的 Kubernetes 资源。
集群控制器:将 Kubernetes 集群添加到 Karmada,通过创建集群对象来管理集群的生命周期;
策略控制器:监控 PropagationPolicy 对象,当有新增 PropagationPolicy 对象时,它将选择与 resourceSelector 匹配的一组资源,并为每个资源对象创建 ResourceBinding;
绑定控制器:监控 ResourceBinding 对象,并使用单个资源清单创建与每个集群相对应的 Work 对象;
执行控制器:监控 Work 对象,当出现新创建的 Work 对象时,它负责将资源分配给成员集群。
评论 3 条评论