微软已经发布了 KEDA 1.0,这是KEDA的生产就绪版本,它是Kubernetes的开源组件,可为容器提供事件驱动的自动缩放。 伸缩基于事件或消息队列的大小,例如Apache Kafka或RabbitMQ。
Kubernetes已经具有根据需求扩展容器的能力。 但是,开箱即用的Kubernetes仅支持基于CPU和内存需求的自动缩放。 缩放其他触发器(例如,事件队列中等待消息的数量)需要自定义编程(例如,在Horizontal Pod Autoscaler中 )。
KEDA(基于Kubernetes的事件驱动自动缩放的缩写)使使用事件队列活动作为度量标准来扩展Kubernetes成为可能。 KEDA充当Kubernetes指标服务器,提供有关在常用队列(Kafka,Amazon CloudWatch,Azure事件中心或Azure Service Bus,Prometheus,Redis列表,NATS,Google Cloud Platform发布/订阅)中待处理的未决事件数的信息等等。 也可以为自定义队列或消息总线构建自己的缩放器,或使用外部缩放器。
您可以使用Kubernetes部署作为扩展操作的默认方式,如果没有待处理的需求,则可以将容器部署完全清零。 您还可以使用Kubernetes的容器生命周期挂钩或Kubernetes的作业控制功能来管理容器在长期运行的处理事件中的生存方式。
微软提供了Helm图表来将KEDA部署到任何Kubernetes集群中,但是KEDA也可以使用kubectl手动进行部署,并且也可以在Minikube集群中使用。
由于KEDA是Microsoft的一项创新,因此它自然带有用于处理Azure事件处理的钩子,例如使用Kubernetes部署的Azure函数对Azure存储队列消息进行触发 。 但是,KEDA还打算与其他常见的Kubernetes实现一起使用,包括Red Hat OpenShift和Google Kubernetes Engine,即使它不支持与Azure中相同的本机功能。