HPA не может получить показатели из-за ошибки 403

Я использовал следующие показатели внутри hpa

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: app-svc-hpa
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: extensions/v1beta1
    kind: Deployment
    name: app-svc
  minReplicas: 1
  maxReplicas: 1000
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 50
  - type: Pods
    pods:
      metric:
        name: packets-per-second
      target:
        type: AverageValue
        averageValue: 1k

Но HPA не может получить метрики

Warning FailedGetPodsMetric 14s (x6 over 1m) horizontal-pod-autoscaler unable to get metric packets-per-second: unable to fetch metrics from custom metrics API: the server could not find the descriptor for metric custom.googleapis.com/packets-per-second: googleapi: Error 403: Permission monitoring.metricDescriptors.get denied (or the resource may not exist)., forbidden

Я запускаю модули в выделенном пуле узлов, и каждый узел работает под учетной записью службы.

У учетной записи службы есть эти роли iam

Мониторинг Viewere, средство записи метрик мониторинга

Не знаю, как исправить эту ошибку. Любые указатели приветствуются. Спасибо.

1 ответ

У меня был кластер с workload identityвключен. Очевидно, когда в кластере включена идентификация рабочей нагрузки, выборка метрик не выполнялась.

1) Мне пришлось установить адаптер настраиваемого драйвера стека и создать настраиваемую метрику, как указал Дэвид Крук в своих комментариях.

2) Мне пришлось добавить hostNetwork:trueв спецификации модуля развертывания настраиваемого адаптера stack driver. Проблема упоминается здесь в репозитории github для csa

С этими двумя обновлениями автомасштабирование работает должным образом.

Другие вопросы по тегам