产品动态
公告
产品发布记录
prometheus 类型的触发器,即根据自定义的 PromQL 查询到的 Prometheus 指标数据进行伸缩,完整配置参数请参见 KEDA Scalers: Prometheus,本文将给出使用案例。istio_requests_total,可以通过这个指标计算 QPS。apiVersion: keda.sh/v1alpha1kind: ScaledObjectmetadata:name: b-scaledobjectnamespace: prodspec:scaleTargetRef:apiVersion: apps/v1kind: Deploymentname: a # 对 A 服务进行伸缩pollingInterval: 15minReplicaCount: 1maxReplicaCount: 100triggers:- type: prometheusmetadata:serverAddress: http://monitoring-kube-prometheus-prometheus.monitoring.svc.cluster.local:9090 # 替换 Prometheus 的地址query: | # 计算 B 服务 QPS 的 PromQLsum(irate(istio_requests_total{reporter=~"destination",destination_workload_namespace=~"prod",destination_workload=~"b"}[1m]))threshold: "100" # A服务副本数=ceil(B服务QPS/100)
prometheus-adapter 的配置,且改配置是集中式管理的,不支持通过 CRD 管理,配置维护较为繁琐。而 KEDA 方案只需要配置 ScaledObject 或 ScaledJob 这种 CRD,不同业务可以使用不同的 YAML 文件维护,利于配置维护。prometheus-adapter 的配置语法晦涩难懂,不能直接写 PromQL,需要学习 prometheus-adapter 的配置语法,增加了学习成本,而 KEDA 的 prometheus 配置则非常简单,指标可以直接使用 PromQL 查询语句,简单明了。prometheus-adapter 仅支持根据 Prometheus 监控数据进行伸缩,而对于 KEDA 来说,Prometheus 只是众多触发器中的一种。文档反馈