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
С этими двумя обновлениями автомасштабирование работает должным образом.