K8s自动扩缩容工具KEDA发布2.0版本,全面升级应用扩展能力

  • Post author:
  • Post category:其他


一年前,红帽和微软共同发布了Kubernetes自动扩缩容工具KEDA 1.0,而现在官方强化KEDA的扩缩容器,发布第2个主要更新KEDA 2.0,能支持更多种类的触发器,更方便地自动扩展Kubernetes部署。在今年3月的时候,有越来越多厂商加入对KEDA项目贡献,因此发起厂商决定将KEDA贡献给云原生基金会(Cloud Native Computing Foundation,CNCF),现为CNCF沙盒项目。

KEDA的出现,是要解决Kubernetes自动扩缩容的需求。Kubernetes虽然提供了一个容器调度平台,但是在预设的情况,Kubernetes只能根据CPU等系统指标进行扩缩容,而无视来自Azure、AWS、GCP、Redis和Kafka等大量外部指标,这代表系统响应事件的时间,可能存在大量的延迟,使得扩展不够灵敏,赶不上流量的变化。

而KEDA能够解决这个问题,KEDA是一个以Kubernetes为基础的事件驱动自动扩缩容器,用户可以根据需要处理的事件数量,来驱动Kubernetes中容器的扩展,KEDA提供用户通过使用简单一致的API,就能进行自动扩展部署。

KEDA为一个单一用途的轻量组件,可以被加到Kubernetes集群中,与Horizontal Pod Autoscaler(HPA)等标准Kubernetes组件一起使用,扩展功能不会互相覆盖或是重复,官方提到,用户可以指定要使用事件驱动的应用,而不会影响其他应用,这使得KEDA可以灵活并安全地,与其他Kubernetes应用和框架共同使用。

在KEDA 1.0发布一年之后,现在发布了主要更新2.0正式版,更新重点在于KEDA支持更多的触发器,并且也增加许多新的模式和功能。KEDA 2.0现在可以自动扩展部署负载(Deployment)和作业(Jobs)工作负载,过去在KEDA 1.x的时候,用户需要通过ScaledObject资源,来指定要扩展的工作负载类型,且只能指定扩展Kubernetes部署或是资源其中一种。

而在KEDA 2.0,这两个选项被分开,并且引入独立的资源,除了之前就有的ScaledObject,现在还为Kubernetes增加ScaledJob自定义资源,以满足不同的需求。

另外,用户现在可以在ScaledObject和ScaledJob上,设定多个触发器,并根据例如Kafka和Prometheus等不同的触发器,自动缩放工作负载,KEDA会从扩展器中,挑选像是目标副本数等最大的值,来定义扩展决策。

KEDA 2.0还加入多个新的扩展器,用户除了能使用Azure Log Analytics和IBM MQ扩展器之外,还可应用新的CPU扩展器,不再需要混用HPA和ScaledObjects,KEDA能够完全替用户处理HPA。而且新的外部推送扩展器,允许用户使用推送模型(Push-Model),构建自己的扩展器和触发器扩展行为,而非使用现有的拉取模型(Pull-Model)。

最后,KEDA 2.0还加入新的Metrics API扩展器,能够自动缩放通过REST API提供的指标,让用户不需要建构自己的扩展器,这项新功能可以根据环境中可用的指标标准来源,诸如内部API或是微软Dynamics CRM API等,来自动化缩放决策。

由于KEDA 1.0发布之后,社群逐渐壮大,IBM、Pivotal、VMware和Astronomer等公司皆对KEDA做出贡献,而且KEDA也与Knative项目展开合作,开始进行整合,而为了要给KEDA更多独立的发展空间,并且确保项目不会受特定供应商控制,因此发起厂商将KEDA贡献给CNCF,作为沙盒项目,官方预计在今年稍晚或是明年初,将会进入孵化器项目。

参考:

https://www.ithome.com.tw/news/140966

https://keda.sh/blog/keda-2.0-release/

END

精彩文章推荐


安装kubernetes集群-灵活安装k8s各个版本高可用集群


Prometheus+Grafana+Alertmanager搭建全方位的监控告警系统-超详细文档


linux架构师成长路线图:如何从月薪3千涨到月薪3万


基于Jenkins共享库实践之自定义通知器


Spring Cloud基础面试题大集合


Kubernetes将弃用Docker,不必恐慌


手把手教你使用 Jenkins 配合 Github hook 持续集成


5个维度对 Kubernetes 集群优化


Docker+k8s+DevOps企业级架构师成长路线图


开源API网关Kong基本介绍和安装验证




用Python操作Kubernetes的Job

技术交流

为了大家更快速的学习知识,掌握技术,随时沟通交流问题,特组建了技术交流群,大家在群里可以分享自己的技术栈,抛出日常问题,群里会有很多大佬及时解答的,这样我们就会结识很多志同道合的人,长按或者扫描下图二维码可加我微信,备注运维或者k8s或者devops即可进群,让我们共同的努力,向着美好的未来出发吧~~~,

想要


免费获取


linux、

k8s、DevOps

、Openstack、Openshift、运维、开发、测试、架构师、Python、Go、面试文档、容器、岗位内推等资料也可进群获取


哈~~


微信:

luckylucky421302

好课推荐


《Docker+kubernetes(k8s)+DevOps企业级架构师实战培训》

微信公众号