0

我在 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

我在专用节点池上运行 pod,每个节点都在服务帐户下运行。

服务帐户确实具有这些 iam 角色

监控查看器,监控指标编写器

不确定如何修复此错误。非常感谢任何指针。谢谢。

4

1 回答 1

1

我有一个workload identity启用的集群。显然,当集群启用了工作负载身份时,指标获取失败。

1)我必须安装自定义堆栈驱动程序适配器并创建 David Kruk 在他的评论中指出的自定义指标

2)我必须hostNetwork:true在自定义堆栈驱动程序适配器部署 pod 规范中添加。这个问题csa 的 github 存储库中提到

通过这两个更新,自动缩放器按预期工作。

于 2020-04-10T17:14:50.513 回答