HPA не может получить показатели из-за 403 ошибок - PullRequest
0 голосов
/ 09 апреля 2020

Я использовал следующие метрики внутри 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

Наблюдение за наблюдением, Запись метрик наблюдения

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

1 Ответ

1 голос
/ 10 апреля 2020

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

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

2) Мне пришлось добавить hostNetwork:true в пользовательский модуль развертывания адаптера стека-драйвера spe c. Эта проблема упоминается здесь в репозитории github для csa

С этими двумя обновлениями автоскалер работает как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...