Karmada:让跨集群弹性伸缩FederatedHPA突破新边界

karmada,集群,弹性,伸缩,federatedhpa,突破,边界 · 浏览次数 : 18

小编点评

**FederatedHPA 跨集群弹性伸缩,打破多云成本壁垒** **问题:** 随着云成本的不断上升,企业面临云成本支出超过预期的问题。 **解决方案:** Karmada 推出支持 FederatedHPA 的全新跨集群HPA (FederatedHPA),以实现业务跨集群弹性伸缩。 **关键优势:** * 支持多指标和多策略,提供灵活的伸缩配置。 * 基于 CPU/Memory 利用率自适应伸缩,优化资源利用率。 * 跨集群弹性伸缩,满足不同业务场景的需求。 ** benefits:** * 降低云成本支出。 * 提高资源利用率。 * 满足跨集群伸缩需求。 **应用场景:** * 多云架构。 * 多集群业务。 * 不同集群的负载均衡。 **示例配置文件:** ```yaml apiVersion: autoscaling.karmada.io/v1alpha1kind: FederatedHPA metadata: name: nginxspec scaleTargetRef: apiVersion: apps/v1kind: Deploymentname: nginxminReplicas: 1maxReplicas: 10 metrics: - type: Resourceresource:name: cputarget:type: UtilizationaverageUtilization: 10 ``` **结论:** FederatedHPA 是一款功能强大的跨集群HPA,可以帮助企业实现成本效益的提升和业务扩展。

正文

本文分享自华为云社区《Kubernetes多集群管理Karmada,跨集群弹性伸缩FederatedHPA突破新边界!》,作者:华为云云原生团队。

根据 Flexera 最新发布的《2023年云现状调查报告》,750家受访企业中,高达36%的企业表示云成本支出超过预期,另有9%的企业云成本严重超出预期,企业急需有效手段来降低云成本支出:

image.png

▲ 图片1

同时,在这些企业中,有高达87%的企业使用多云,多云架构的优势在于可以方便的提供业务高可用部署、满足安全合规的属地化部署、以及公有云弹性等能力,但如果缺少相应的成本管理,也容易导致云成本增加。

image.png

▲ 图片2

为了解决多云多集群下的成本难题,Karmada 率先提出并实现了支持多指标,多策略的全新跨集群HPA(即 FederatedHPA),实现业务跨集群弹性伸缩,为多云架构提供了新的玩法,比如本地数据中心+公有云的组合,业务优先使用本地数据中心资源,当本地资源不足时又可以借助公有云无限弹性能力,做到按需使用云资源,进而节省云成本开支。

FederatedHPA

Karmada FederatedHPA 可基于 CPU/Memory 利用率来自动伸缩业务,也可以基于各种自定义指标伸缩业务,其 YAML 配置示例为:

apiVersion: autoscaling.karmada.io/v1alpha1

kind: FederatedHPA

metadata:

name: nginx

spec:

scaleTargetRef:

apiVersion: apps/v1

kind: Deployment

name: nginx

minReplicas: 1

maxReplicas: 10

metrics:

- type: Resource

resource:

name: cpu

target:

type: Utilization

averageUtilization: 10

通过使用 FederatedHPA,可以实现应用跨集群弹性能力,如下图所示,应用部署在 cluster1 集群中,当流量洪峰到来时,应用可以先在 cluster1 集群中自动扩容,当 cluster1 资源受限时,应用可以自动在 cluster2 集群中扩容。

image.png

▲ 图片3

当然,Karmada FederatedHPA 带来的不仅仅是跨集群弹性伸缩,还能带来如下核心优势:

1.对于一个多集群业务,在每个集群中都有对应HPA资源,以伸缩业务。但分别管理这些HPA配置较为低效,而使用 Karmada FederatedHPA 能够统一配置多集群业务的伸缩,简化流程。

2.对于一个使用 Karmada FederatedHPA 的多集群业务,实例数会随着负载变化而变化。而这些新增或者减少的实例数,用户想要在不同集群,差异化的伸缩,如按可用资源比例,静态权重比例,优先顺序等。Karmada FederatedHPA 同样可满足这样的多集群差异化伸缩的诉求。

3.对于一个使用 Karmada FederatedHPA 的多集群业务,在某个集群因故障而无法弹性时,Karmada 会在其他正常集群弹性,从而解决单点故障问题。

统一弹性伸缩配置,提升管理效率

传统的部署方式下,用户如果想在多个集群中配置弹性伸缩,以匹配业务请求负载,需要逐一管理集群中的 HPA,繁琐而且容易出错,如下图:

image.png

▲ 图片4

使用 Karmade FederatedHPA,能够实现统一配置多集群业务的弹性伸缩,在集群数量较多的情况下,能极大提高效率,如下图:

image.png

▲ 图片5

通过单一 FederatedHPA 对象,Karmada 会自动监测多个集群的业务负载,根据配置的策略,在不同的集群伸缩,最终匹配多集群服务的业务负载。

优先扩容低成本集群业务,降低云成本支出

对于同一业务部署的多个集群,可能存在成本差异,用户可以利用 FederatedHPA 实现优先扩容成本更低集群的业务,实现更低的云成本消耗,例如:本地数据中心集群使用成本更低,公有云厂商提供的托管集群成本更高,因此,用户更愿意在本地数据中心中扩容业务。

下面我们给出一个优先扩容本地集群业务的例子:

apiVersion: autoscaling.karmada.io/v1alpha1

kind: FederatedHPA

metadata:

name: nginx

spec:

scaleTargetRef:

apiVersion: apps/v1

kind: Deployment

name: nginx

minReplicas: 1

maxReplicas: 10

metrics:

- type: Resource

resource:

name: cpu

target:

type: Utilization

averageUtilization: 80

---

apiVersion: policy.karmada.io/v1alpha1

kind: PropagationPolicy

metadata:

name: nginx

spec:

resourceSelectors:

- apiVersion: apps/v1

kind: Deployment

name: nginx

placement:

clusterAffinities:

- affinityName: local-cluster

clusterNames:

- local-cluster1

- affinityName: cloud-cluster

clusterNames:

- local-cluster1

- huawei-cluster1

replicaScheduling:

replicaDivisionPreference: Weighted

replicaSchedulingType: Divided

weightPreference:

dynamicWeight: AvailableReplicas

上面 PropagationPolicy 中配置有 本地集群组(local-cluster)和云上集群组(cloud-cluster)共两个集群组,Karmada 在扩容业务时,会优先尝试扩容在本地集群组中的业务,如果失败(缺乏资源),则继续扩容云上集群组的业务,从而实现在本地集群资源足够时,优先扩容本地集群的业务,实现更低的云成本消耗。

总结

FederatedHPA 为用户提供了跨集群弹性伸缩的能力,结合丰富的PropagationPolicy/ClusterPropagationPolicy 调度策略,能满足不同的跨集群伸缩场景。

Karmada 后续也会继续探索更多的跨集群伸缩场景,包括 定时联邦 HPA,分布式多集群 HPA,大家有任何感兴趣的想法,都欢迎大家来 Karmada 社区进行讨论和分享。

附:Karmada社区交流地址

Karmada官网:https://karmada.io/

项目地址:https://github.com/karmada-io/karmada

Slack地址:https://slack.cncf.io/

 

点击关注,第一时间了解华为云新鲜技术~

 

与Karmada:让跨集群弹性伸缩FederatedHPA突破新边界相似的内容:

Karmada:让跨集群弹性伸缩FederatedHPA突破新边界

为了解决多云多集群下的成本难题,Karmada 率先提出并实现了支持多指标,多策略的全新跨集群HPA(即 FederatedHPA),实现业务跨集群弹性伸缩,为多云架构提供了新的玩法。

Karmada跨集群优雅故障迁移特性解析

摘要:在 Karmada 最新版本 v1.3中,跨集群故障迁移特性支持优雅故障迁移,确保迁移过程足够平滑。 本文分享自华为云社区《Karmada跨集群优雅故障迁移特性解析》,作者:Karmada社区。 在多云多集群应用场景中,为了提高业务的高可用性,用户的工作负载可能会被部署在多个集群中。然而当某个

Karmada 结合 coreDNS 插件实现跨集群统一域名访问

本文基于Karmada v1.6.1版本,探索使用一致域名跨集群访问服务的方法。

Karmada大规模测试报告发布:突破100倍集群规模

摘要:在本文中,我们将介绍用于测试的相关指标,如何进行大规模测试,以及我们如何实现大规模的集群接入。 本文分享自华为云社区《突破100倍集群规模!Karmada大规模测试报告发布》,作者:华为云云原生团队。 摘要 随着云原生技术在越来越多的企业和组织中的大规模落地,如何高效、可靠地管理大规模资源池以

Karmada多云多集群生产实践专场圆满落幕

摘要:CNCF Karmada社区Cloud Native Days China 2022南京站成功举办。 本文分享自华为云社区《Karmada多云多集群生产实践专场圆满落幕|Cloud Native Days China 2022 南京站》,作者: 云容器大未来。 12月3日,CNCF Karma

Karmada v1.5发布:多调度组助力成本优化

摘要:在最新发布的1.5版本中,Karmada 提供了多调度组的能力,利用该能力,用户可以实现将业务优先调度到成本更低的集群,或者在主集群故障时,优先迁移业务到指定的备份集群。 本文分享自华为云社区《Karmada v1.5发布!多调度组助力成本优化》,作者:华为云云原生团队。 Karmada 是开

Karmada 多云容器编排引擎支持多调度组,助力成本优化

摘要:Karmada 社区也在持续关注云成本的管理,在最近发布的 v1.5 版本中,支持用户在分发策略 PropagationPolicy/ClusterPropagationPolicy 中设置多个集群调度组,实现将业务调度到成本更低的集群组中去。 本文分享自华为云社区《Karmada 多云容器编

揭秘Karmada百倍集群规模多云基础设施体系

摘要:本文结合Karmada社区对大规模场景的思考,揭示Karmada稳定支持100个大规模集群、管理超过50万个节点和200万个Pod背后的原理 本文分享自华为云社区《Karmada百倍集群规模多云基础设施体系揭秘》,作者: 云容器大未来 。 随着云原生技术在越来越多的企业和组织中的大规模落地,如

细数华为云云原生产品及五大开源实践

摘要:华为云已向CNCF贡献多个首创开源项目,包括云原生边缘计算平台项目KubeEdge,云原生批量计算项目Volcano,云原生多云容器编排项目Karmada,今年,华为云又开源了两个云原生领域的项目Kurator和Kappital,收到广大开发者的追捧。 本文分享自华为云社区《细数华为云云原生产