title | weight | catalog | date | subtitle | header-img | tags | catagories | ||
---|---|---|---|---|---|---|---|---|---|
Karmada介绍 |
1 |
true |
2022-07-10 03:50:57 -0700 |
|
|
本文由网络资源整理以作记录
Karmada(Kubernetes Armada)是基于Kubernetes原生API的多集群管理系统。在多云和混合云场景下,Karmada提供可插拔,全自动化管理多集群应用,实现多云集中管理、高可用性、故障恢复和流量调度。
- 基于K8s原生API的跨集群应用管理,用户可以方便快捷地将应用从单集群迁移到多集群。
- 中心式操作和管理Kubernetes集群。
- 跨集群应用可在多集群上自动扩展,故障转移和负载均衡。
- 高级的调度策略:区域,可用区,云提供商,集群亲和性/反亲和性。
- 支持创建分发用户自定义(CustomResourceDefinitions)资源。
- ETCD:存储Karmada API对象。
- Karmada Scheduler:提供高级的多集群调度策略。
- Karmada Controller Manager: 包含多个Controller,Controller监听karmada对象并且与成员集群API server进行通信并创建成员集群的k8s对象。
- Cluster Controller:成员集群的生命周期管理与对象管理。
- Policy Controller:监听PropagationPolicy对象,创建ResourceBinding,配置资源分发策略。
- Binding Controller:监听ResourceBinding对象,并创建work对象响应资源清单。
- Execution Controller:监听work对象,并将资源分发到成员集群中。
基本概念
- 资源模板(Resource Template):Karmada使用K8s原生API定义作为资源模板,便于快速对接K8s生态工具链。
- 分发策略(Propagaion Policy):Karmada提供独立的策略API,用来配置资源分发策略。
- 差异化策略(Override Policy):Karmada提供独立的差异化API,用来配置与集群相关的差异化配置。比如配置不同集群使用不同的镜像。
Karmada资源分发流程图:
参考: