尝试使用 KEDA 进行扩展时,我在 keda-operator-metrics-apiserver pod 日志上遇到以下错误。
E0602 05:26:23.321583 1 status.go:71] apiserver received an error that is not an metav1.Status: &status.Error{s:(*status.Status)(0xc00105e2c0)}: rpc error: code = Unknown desc = error when getting metric values no matching metrics found for s0-prometheus-http_requests_in_progress
正如我们在这个错误中看到的,它说,
no matching metrics found for s0-prometheus-http_requests_in_progress
。它已自动将 s0-prometheus-
添加到 metricName 中。这是什么原因呢?
如何解决这个问题并读取指标并扩展我的容器?
我创建了一个 KEDA ScaledObject,如下所示。
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: keda-so-prmts
namespace: mynamespace
spec:
scaleTargetRef:
name: abc-test-yy
pollingInterval: 10
cooldownPeriod: 300
minReplicaCount: 1
maxReplicaCount: 10
triggers:
- type: prometheus
metadata:
serverAddress: http://10.1.254.12:9090
metricName: http_requests_in_progress
query: sum(http_requests_in_progress{action="getData", container="abc-test-yy", controller="Fetching", endpoint="8080", exported_endpoint="api/FetchService/getData/{productId}", job="abc-test-yy", method="POST", namespace="mynamespace", service="abc-test-yy"})by(container)
threshold: '1'
namespace: mynamespace
有同样的问题,最后这个对我有用:
kubectl get --raw /apis/external.metrics.k8s.io/v1beta1/namespaces/mynamespace/s0-prometheus?labelSelector=scaledobject.keda.sh%2Fname%3Dname-of-scaled-object
和kubectl get --raw /apis/external.metrics.k8s.io/v1beta1/namespaces/mynamespace/s1-prometheus?labelSelector=scaledobject.keda.sh%2Fname%3Dname-of-scaled-object