Я пытаюсь настроить горизонтальный модуль автоматического масштабирования (HPA) в Google Kubernetes Engine (GKE), используя внешние метрики из Ingress LoadBalancer, основываясь на такой конфигурации, как
https://cloud.google.com/kubernetes-engine/docs/tutorials/external-metrics-autoscalingи https://blog.doit -intl.com / autoscaling-k8s-hpa-with-google-http-s-load-balancer-rps-stackdriver-metric-92db0a28e1ea
с HPA как
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: my-api
namespace: production
spec:
minReplicas: 1
maxReplicas: 20
metrics:
- external:
metricName: loadbalancing.googleapis.com|https|request_count
metricSelector:
matchLabels:
resource.labels.forwarding_rule_name: k8s-fws-production-lb-my-api--63e2a8ddaae70
targetAverageValue: "1"
type: External
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-api
автоматическое масштабирование срабатывает при увеличении числа запросов - но при большой нагрузке на службу, например, при 100 одновременных запросах в секунду, внешняя метрика request_count
не увеличивается, значительно превышая 6 RPS,в то время как наблюдаемая метрика backend_latencies
в Stackdriver действительно значительно увеличивается;поэтому я хотел бы использовать этот показатель, добавив к конфигурации HPA, например, так:
- external:
metricName: loadbalancing.googleapis.com|https|backend_latencies
metricSelector:
matchLabels:
resource.labels.forwarding_rule_name: k8s-fws-production-lb-my-api--63e2a8ddaae70
targetValue: "3000"
type: External
, но это приводит к ошибке:
...unable to fetch metrics from external metrics API: googleapi: Error 400: Field aggregation.perSeriesAligner had an invalid value of "ALIGN_RATE": The aligner cannot be applied to metrics with kind DELTA and value type DISTRIBUTION., badRequest
что можно наблюдать с помощью команды
$ kubectl describe hpa -n production
или путем посещения
http://localhost:8080/apis/external.metrics.k8s.io/v1beta1/namespaces/default/loadbalancing.googleapis.com%7Chttps%7Cbackend_latencies
после настройки прокси с
$ kubectl proxy --port=8080
Arehttps/backend_latencies
или https/total_latencies
не поддерживаются в качестве показателей внешнего накопителя в конфигурации HPA для GKE?