Горизонтальный модуль автоматического масштабирования (HPA) в Google Kubernetes Engine (GKE), использующий задержку бэкенда из Ingress LoadBalancer через внешнюю метрику Stackdriver - PullRequest
1 голос
/ 20 марта 2019

Я пытаюсь настроить горизонтальный модуль автоматического масштабирования (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?

...