介绍在Kubernetes上实现事件驱动处理的KEDA!
这篇文章是求Mu!Cloud Native应用程序开发的技巧!【PR】日本Microsoft Advent Calendar 2020的第4天(事后补写的)。
我将介绍KEDA。
KEDA 是什么?
KEDA是Kubernetes可引入组件的名称。正如其源自“Kubernetes Event-driven Autoscaling”的名称所示,它在Kubernetes上实现了基于事件的自动缩放。
2020年4月,CNCF(Cloud Native Computing Foundation)宣布将其纳入sandbox项目,并成为新闻头条。
KEDA 的使用场合是什么?
「Kubernetes事件驅動自動擴展」這個術語的源頭就是「事件驅動(Event-driven)」,它指的是根據事件來進行處理的機制,相信大家都很熟悉。
我們將以不定期收到大量訊息的網頁系統作為例子來解釋。
让我们考虑在Web服务器上搭建而不是使用事件驱动(Event-driven)。
当一直等待着随时到来的消息时,大部分时间都没有任何需要处理的内容,导致资源被浪费。而如果将浪费的资源最小化构建,一旦大量消息到来时可能无法处理完毕。
当消息队列为空时,不会执行任何操作;而当大量消息被放入队列中,我们需要根据消息数量并行处理(即事件驱动)。通过事件驱动,我们能够有效利用资源而不浪费。
对于这种类型的处理,在Azure中可以使用ServiceBus和Azure Functions,在AWS中可以使用SQS和Lambda等等。
在Kubernetes上实现此类事件驱动处理的工具是我们今天介绍的KEDA。
“KEDA的使用方法”
可以在Kubernetes上安装和使用KEDA。
请查看官方网站以获取更详细信息。
在浏览官方网站时,您可能会看到一个陌生的词“Scaler”,它是用于缩放的基本信息。Scaler是可扩展的规格,适用于多种服务和组件,并且在撰写本文时已支持以下服务。
当您阅读此信息时,您会理解KEDA并不依赖于特定的服务,而是可以广泛适用的。
当然,在Azure Kubernetes Service(AKS)中也可以使用。
-
- ActiveMQ Artemis
-
- Apache Kafka
-
- AWS CloudWatch
-
- AWS Kinesis Stream
-
- AWS SQS Queue
-
- Azure Blob Storage
-
- Azure Event Hubs
-
- Azure Log Analytics
-
- Azure Monitor
-
- Azure Service Bus
-
- Azure Storage Queue
-
- CPU
-
- Cron
-
- External
-
- External Push
-
- Google Cloud Platform Pub/Sub
-
- Huawei Cloudeye
-
- IBM MQ
-
- Liiklus Topic
-
- Memory
-
- Metrics API
-
- MySQL
-
- NATS Streaming
-
- PostgreSQL
-
- Prometheus
-
- RabbitMQ Queue
-
- Redis Lists
- Redis Streams
第五天的活动是由 @changeworld 主持的”新一代.NET 5有什么新特性”讲座。请继续享受。