Karmada:开放式,多云,多簇Kubernetes Orchestration

2021-04-28 11:02:06

KARMADA(Kubernetes Armada)是一个Kubernetes管理系统,使您可以在多个Kubernetes集群和云中运行云原生应用程序,而且您的应用程序没有更改。通过讲Kubernetes-Native API并提供高级调度功能,Karmada允许真正开放的多云Kubernetes。

KARMADA旨在为多云和混合云场景中的多集群应用管理提供交钥匙自动化,具有集中式多云管理,高可用性,故障恢复和流量调度等关键功能。

注意:该项目是在Kubernetes联邦v1和v2的延续开发的。一些基本概念是从这两个版本继承的。

ettd存储了Karmada API对象,API服务器是REST端点所有其他组件通话,而KAMADACANCLER Manager根据您通过API服务器创建的API对象执行操作。

Karmada Controller Manager运行各种控制器,控制器观看Karmada对象,然后与底层集群的API服务器交谈以创建常规的Kubernetes资源。

群集控制器:将Kubernetes集群连接到Karmada,通过创建群集对象来管理群集的生命周期。

策略控制器:控制器观看传播Policy对象。添加了传播的对象时,它选择匹配资源选择器的一组资源,并使用每个单个资源对象创建ResourceBinding。

绑定控制器:控制器监视ResourceBinding对象,并创建与单个资源清单的每个群集对应的工作对象。

执行控制器:控制器监视工作对象。创建工作对象时,它将将资源分发给成员群集。

资源模板:KARMADA使用Kubernetes用于联合资源模板的本机API定义,使其可以轻松地与已在Kubernetes采用的现有工具集成

传播策略:Karmada提供独立的传播(Placement)策略API,用于定义多群集调度和传播要求。

支持1:n策略的映射:工作负载,用户每次都需要指示调度约束,每次创建联合应用程序。

覆盖策略:KARMADA为专门的集群相关配置自动化提供独立的覆盖策略API。例如。:

下图显示了在将资源传播到成员集群时如何涉及KARMADA资源。

在Kubernetes集群中安装Karmada控制平面组件,如同主机群集。

如果一切顺利,在脚本输出的末尾,您将看到类似的消息,如下所示:

当地的KARMADA正在运行。要开始使用您的KARMADA,RUN:EXPORT KUBECONFIG = / var / RUN / KARMADO / KAMA-APISERVER.CONFIGTO开始检查HARMADA组件在主机群集上运行状态,请运行:导出Kubeconfig =" / root / .kube / karmada-host.config"

Karmada-Apiserver.config是与Karamda控制平面交互时要使用的主要Kubeconfig,而Karmada-host.config仅用于使用主机群集调制Karmada安装。

在以下步骤中,我们将创建成员群集,然后加入群集托卡马达控制平面。

我们将创建一个名为Member1的群集,我们希望Kubeconfig Filein /Root/.kube/member1.config。运行以下命令:

命令Karmadactl将有助于将成员集群加入Karmada控制平面,然后,我们应该将Kubeconfig设置为Karmada Apiserver:

如果您'遗嘱感兴趣的是作为贡献者并希望参与第15次开发的Karmada代码,请参阅在提交补丁和贡献工作流程上有贡献的ofdetail。