为什么 KEDA 是 Kubernetes 自动伸缩的游戏规则改变者

网友投稿 320 2022-11-02

为什么 KEDA 是 Kubernetes 自动伸缩的游戏规则改变者

KEDA 可以根据几乎任何指标提供商可以想象的任何指标轻松扩展,并且在世界上一些最大的公司的云生产中大规模运行

介绍

在这篇文章中,我将介绍 Kubernetes 事件驱动的自动缩放 (KEDA) 使 Kubernetes 管理员能够完成什么以及如何开始。

先决条件:

Kubernetes 集群 1.5 或以上版本Kubernetes 集群的管理员权限

什么是 KEDA

Kubernetes 事件驱动自动缩放 (KEDA) 是对内置 Kubernetes Horizontal Pod Autoscaler (HPA) 的补充自动缩放技术。KEDA 并没有取代 HPA,它仍然使用它来发挥它的魔力。

可在​​此处​​找到 KEDA 的官方网站。KEDA 有很好的文档,所以很容易设置。KEDA 是一个由微软支持的开源云原生项目,它在 Azure AKS(Azure 的 Kubernetes 产品)中得到完全支持。它被微软、Zapier 和阿里巴巴云等大公司使用,因此在大规模生产中运行。

为什么 KEDA 是 Kubernetes 世界的游戏规则改变者

KEDA 使 Kubernetes 能够根据标准内置 Kubernetes 指标(如 CPU 和内存)以及高级指标(如消息队列的队列深度、每秒请求数、计划的 cron 作业)等指标将 pod 副本扩展到零和向上,来自您自己的应用程序日志记录的自定义指标以及您可以想象的任何其他指标。这是 Kubernetes 中内置的 HPA 无法轻易做到的。​​这里​​ 是 KEDA 支持的扩展提供商列表,可跳转查看。

KEDA 的工作原理

KEDA 监控来自外部指标提供程序系统(例如 Azure Monitor)的指标,然后根据基于指标值的缩放规则进行缩放。它直接与度量提供者系统通信。它作为 Kubernetes Operator 运行,它只是一个 pod 并持续监控。

如何设置 KEDA

安装 KEDA 最简单的方法是使用 helm chart。

这可以根据​​文档​​这样做。

helm repo add kedacore repo updatekubectl create namespace kedahelm install keda kedacore/keda --namespace keda

配置缩放

所有支持的缩放类型和来源都可以在​​文档中找到​​。

缩放被定义为一个清单 YAML 文件,和 deployments 类似,类型是 ScaledObject。

可以使用以下命令查询现有的 scaling objects:

kubectl get scaledobject

可以使用以下命令删除缩放的对象:

kubectl delete scaledobject

内存缩放

可以设置规则以根据 pod 内容器内的内存使用情况进行扩展。内存扩展文档可以在​​这里找到​​。

缩放可以基于以下类型的值:

​​Utilization​​,目标值是所有相关 pod 的资源指标的平均值,表示为 pod 资源请求值的百分比。

​​AverageValue​​,目标值是所有相关 pod(数量)的指标平均值的目标值。

已为以下特定清单示例选择了利用率:

apiVersion: keda.sh/v1alpha1kind: ScaledObjectmetadata: name: memory-scaledobject namespace: defaultspec: scaleTargetRef: name: sandboxapi triggers: - type: memory metadata: type: Utilization value: "50"

此示例创建一个基于内存利用率伸缩 pod 的规则。scaleTargetRef 是指应该扩展的 Deployment。

CPU 缩放

缩放也可以基于 pod 中容器内的 CPU 使用率。

缩放可以基于以下类型的值:

​​Utilization​​,目标值是所有相关 pod 的资源指标的平均值,表示为 pod 资源请求值的百分比。

​​AverageValue​​,目标值是所有相关 pod(数量)的指标平均值的目标值。

已为以下特定清单示例选择了利用率:

apiVersion: keda.sh/v1alpha1kind: ScaledObjectmetadata: name: memory-scaledobject namespace: defaultspec: scaleTargetRef: name: sandboxapi triggers: - type: cpu metadata: type: Utilization value: "50"

此示例创建一个基于当前 CPU 利用率扩展 pod 的规则。scaleTargetRef 是指应该扩展的 Deployment。

结论

本文介绍了 KEDA,它如何帮助您尽可能轻松地在 Kubernetes 中构建最具可扩展性的应用程序以及如何使用。目前已存在的​​缩放器​​,应该能够根据您的要求进行缩放。

翻译

​​Why KEDA is a game-changer for scaling in Kubernetes​​

关注

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:低压差分信号(LVDS) 接口的静电防护
下一篇:Redis的三种模式 (主从,哨兵,集群)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~