Kubernetes AWS Cloudwatch适配器未获取EKS HPA自动缩放的自定义指标值

林德堡

我正在尝试通过Kubernetes Cloudwatch适配器基于自定义Cloudwatch指标启用AWS EKS自动缩放。我已将自定义指标推送到AWS Cloudwatch,并验证它们是否出现在Cloudwatch控制台中以及是否可以使用boto3客户端get_metric_data检索到。这是我用于将自定义指标发布到Cloudwatch的代码:

import boto3
from datetime import datetime

client = boto3.client('cloudwatch')

cloudwatch_response = client.put_metric_data(
    Namespace='TestMetricNS',
    MetricData=[
        {
            'MetricName': 'TotalUnprocessed',
            'Timestamp': datetime.now(),
            'Value': 40,
            'Unit': 'Megabytes',
        }
    ]
)

我有以下yaml文件,用于在kubernetes中建立外部指标和hpa自动缩放器:

extMetricCustom.yaml:

apiVersion: metrics.aws/v1alpha1
kind: ExternalMetric
metadata:
  name: test-custom-metric
spec:
  name: test-custom-metric
  resource:
    resource: "deployment"
  queries:
    - id: sqs_test
      metricStat:
        metric:
          namespace: "TestMetricNS"
          metricName: "TotalUnprocessed"
        period: 60
        stat: Average
        unit: Megabytes
      returnData: true

hpaCustomMetric.yaml

kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta1
metadata:
  name: test-scaler
spec:
  scaleTargetRef:
    apiVersion: apps/v1beta1
    kind: Deployment
    name: sqs-consumer
  minReplicas: 1
  maxReplicas: 4
  metrics:
  - type: External
    external:
      metricName: test-custom-metric
      targetAverageValue: 2

当我评估Kubernetes Cloudwatch适配器是否正确获取我的自定义指标(kubectl get hpa)时,它始终显示该指标为0:

NAME          REFERENCE                 TARGETS     MINPODS   MAXPODS   REPLICAS   AGE
test-scaler   Deployment/sqs-consumer   0/2 (avg)   1         4         1          161m

如何根据Cloudwatch自定义指标正确地自动缩放?

在这个带外与OP一起工作,并且在当天晚些时候仍然打开该问题的选项卡,因此将结果发布在这里,供那些偶然发现此问题的人使用。

该问题的根本原因是时区冲突。指标监视器基于“当前”指标,但是指标生成器脚本的以下行在未指定时区的情况下生成时间戳,并且该时间戳也在本地时区。

            'Timestamp': datetime.now(),

由于当前时区没有“数据”(由于-X UTC偏移,过去只有X个小时的数据),因此系统没有启动缩放,因为有效值为“ 0” / nil / null。而是可以指定UTC时间字符串以确保生成的度量标准是及时的:

            'Timestamp': datetime.utcnow(),

第二个考虑因素是,Kubernetes节点需要访问权限才能从CloudWatch轮询指标。这是通过将此策略附加到节点的IAM角色来完成的:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "cloudwatch:GetMetricData"
            ],
            "Resource": "*"
        }
    ]
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Kubernetes HPA无法在istio上使用Prometheus适配器使用自定义指标进行扩展

来自分类Dev

AWS CloudWatch自定义指标作为弹性beantalk自动缩放触发器

来自分类Dev

使用自定义指标设置Kubernetes自动缩放

来自分类Dev

使用自定义指标设置Kubernetes自动缩放

来自分类Dev

AWS CloudWatch自定义指标数据不可见

来自分类Dev

如何监控Datadog上的AWS Cloudwatch自定义指标?

来自分类Dev

控制自定义指标在AWS Cloudwatch中存储的时间

来自分类Dev

AWS CloudWatch自定义指标发布示例

来自分类Dev

如何使用AWS Lambda自定义CloudWatch指标

来自分类Dev

AWS Cloudwatch:如何从AWS Elastic Beanstalk获取自定义指标

来自分类Dev

AWS EKS Kubernetes和DockerHub

来自分类Dev

在自定义适配器notifyDataSetChanged上获取NullPointerException

来自分类Dev

从自定义适配器获取父布局

来自分类Dev

自定义光标适配器(获取位置)

来自分类Dev

使用自定义适配器获取检查的项目

来自分类Dev

GKE-使用自定义指标的HPA-无法获取指标

来自分类Dev

AWS Cloudwatch get-metric-statistics 命令返回指标名称而不是自定义 Cloudwatch 指标的值

来自分类Dev

AWS自动缩放可以运行自定义代码吗?

来自分类Dev

AWS自动缩放可以运行自定义代码吗?

来自分类Dev

自定义适配器的问题

来自分类Dev

ListView的自定义适配器

来自分类Dev

自定义ListView的适配器

来自分类Dev

C#如何获取网络适配器指标?

来自分类Dev

带有Weave CNI插件的AWS EKS K8s集群不能具有自定义指标

来自分类Dev

如何从ListView中的自定义适配器获取数据?

来自分类Dev

无法从自定义适配器中的edittext获取数据

来自分类Dev

通过onClickListener在自定义适配器中按位置获取数据

来自分类Dev

获取自定义适配器中的项目列表

来自分类Dev

根据自定义视图适配器的TAG值获取Item的位置

Related 相关文章

  1. 1

    Kubernetes HPA无法在istio上使用Prometheus适配器使用自定义指标进行扩展

  2. 2

    AWS CloudWatch自定义指标作为弹性beantalk自动缩放触发器

  3. 3

    使用自定义指标设置Kubernetes自动缩放

  4. 4

    使用自定义指标设置Kubernetes自动缩放

  5. 5

    AWS CloudWatch自定义指标数据不可见

  6. 6

    如何监控Datadog上的AWS Cloudwatch自定义指标?

  7. 7

    控制自定义指标在AWS Cloudwatch中存储的时间

  8. 8

    AWS CloudWatch自定义指标发布示例

  9. 9

    如何使用AWS Lambda自定义CloudWatch指标

  10. 10

    AWS Cloudwatch:如何从AWS Elastic Beanstalk获取自定义指标

  11. 11

    AWS EKS Kubernetes和DockerHub

  12. 12

    在自定义适配器notifyDataSetChanged上获取NullPointerException

  13. 13

    从自定义适配器获取父布局

  14. 14

    自定义光标适配器(获取位置)

  15. 15

    使用自定义适配器获取检查的项目

  16. 16

    GKE-使用自定义指标的HPA-无法获取指标

  17. 17

    AWS Cloudwatch get-metric-statistics 命令返回指标名称而不是自定义 Cloudwatch 指标的值

  18. 18

    AWS自动缩放可以运行自定义代码吗?

  19. 19

    AWS自动缩放可以运行自定义代码吗?

  20. 20

    自定义适配器的问题

  21. 21

    ListView的自定义适配器

  22. 22

    自定义ListView的适配器

  23. 23

    C#如何获取网络适配器指标?

  24. 24

    带有Weave CNI插件的AWS EKS K8s集群不能具有自定义指标

  25. 25

    如何从ListView中的自定义适配器获取数据?

  26. 26

    无法从自定义适配器中的edittext获取数据

  27. 27

    通过onClickListener在自定义适配器中按位置获取数据

  28. 28

    获取自定义适配器中的项目列表

  29. 29

    根据自定义视图适配器的TAG值获取Item的位置

热门标签

归档