共计 1781 个字符,预计需要花费 5 分钟才能阅读完成。
SegmentFault 思否音讯,4 月 25 日,在华为开发者大会 2021 上,华为云 CTO 张宇昕发表云原生多云容器编排我的项目 Karmada 正式开源,将来还打算将该我的项目捐献给云原生计算基金会 CNCF,CNCF 英文全称为 Cloud Native Computing Foundation,中文译为“云原生计算基金会”,是 Linux 基金会旗下的非盈利基金会。
华为云作为云原生计算基金会(CNCF)在亚洲惟一的初创成员,始终致力于推动云原生社区和产业的凋敝和倒退,此次 Karmada 的开源印证了华为云“拥抱开源, 回馈开源”的精力,同时通过更大力度的开源凋谢,Karmada 的开源也能够更好地帮忙企业迎接云原生 2.0 时代的到来。
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 对象时,它负责将资源分配给成员集群。
三、Karmada 概念
资源模板:Karmada 应用 Kubernetes 本机 API 定义的联结资源模板,以使其易于与 Kubernetes 上已采纳的现有工具集成
流传策略:Karmada 提供独立的流传(搁置)策略 API,以定义多集群调度和流传需要。
- 反对策略 1:n 映射:工作负载,用户无需在每次创立联结应用程序时都指出调度束缚。
- 应用默认策略,用户能够仅与 K8s API 进行交互
笼罩策略:Karmada 提供独立的笼罩策略 API,用于专门针对与群集相干的配置自动化。例如:
- 依据成员群集区域笼罩图像前缀
- 依据云提供商笼罩 StorageClass
下图显示了将资源传播到成员集群时如何应用 Karmada 资源。
值得一提的是本次大会上,华为云还回应华为云业务是否会剥离进去独立运作的问题,华为云 BU 总裁张安全示意,云业务的投资和倒退速度正在减速,如何能让华为云失去更好的倒退,外部还在探讨,临时没有定论。
Karmada 开源我的项目链接:https://github.com/karmada-io…