Kubernetes 对于“超过63个字符”的指标,通过自定义指标stackdriver适配器进行水平Pod自动缩放失败

Kubernetes 对于“超过63个字符”的指标,通过自定义指标stackdriver适配器进行水平Pod自动缩放失败,kubernetes,google-kubernetes-engine,hpa,Kubernetes,Google Kubernetes Engine,Hpa,我有一个运行在Google Kubernetes引擎中的Kubernetes集群,我希望根据GCP发布/订阅的未完成消息数量来扩展部署。 我找到并遵循了涉及部署的 但是,由于在运行kubectl Descripte hpa时,我的订阅名称长度超过63个字符,因此我得到以下事件 Events: Type Reason Age From Message ----

我有一个运行在Google Kubernetes引擎中的Kubernetes集群,我希望根据GCP发布/订阅的未完成消息数量来扩展部署。 我找到并遵循了涉及部署的

但是,由于在运行kubectl Descripte hpa时,我的订阅名称长度超过63个字符,因此我得到以下事件

Events:
  Type     Reason                        Age                From                       Message
  ----     ------                        ----               ----                       -------
  Warning  FailedGetExternalMetric       12s (x2 over 27s)  horizontal-pod-autoscaler  invalid label value: "<MY_VERBOSE_SUBSCRIPTION_NAME>": must be no more than 63 characters
  Warning  FailedComputeMetricsReplicas  12s (x2 over 27s)  horizontal-pod-autoscaler  failed to get pubsub.googleapis.com|subscription|num_undelivered_messages external metric: invalid label value: "<MY_VERBOSE_SUBSCRIPTION_NAME>": must be no more than 63 characters
但是,正如您所看到的,这返回了一个空项目列表,表明没有记录任何值。我认为这是因为我所有的订阅名称长度都超过63个字符。为了测试这一点,我用一个很短的名字创建了一个新订阅,并重新创建了由这个新订阅触发的HPA。 这一次,POD实际上按照我的预期进行了缩放,但当我像上面那样查询自定义度量API时,它仍然返回空项列表

我是否应该期望在响应中看到值及其标签?如果没有物品的话,库伯内特人是如何缩放豆荚的?

这是库伯内特人的照片。除了缩短标签名称之外,没有其他方法可以避免限制

rfc1035/rfc1123标签DNS_标签:字母数字a-z和0-9字符串,最大长度为63个字符,除第一个或最后一个字符外,允许在任何地方使用“-”字符,适合用作域名中的主机名或段

检查度量项目的外部度量API而不是自定义度量API

$ kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1" | jq

我理解Kubernetes中63个字符的限制。我希望有某种方法可以覆盖度量名称,或者自定义度量stackdriver适配器的别名标签超过63个字符,这就是我为什么要查看MetricValueList项的原因。也许我会在CustomMetrics stackdriver适配器上提出一个问题。使用您提供的代码段尝试外部度量API不会返回任何值。但是,如果对自定义度量API使用等效的度量,那么结果确实包含我希望使用的度量-
$ kubectl get --raw "/apis/external.metrics.k8s.io/v1beta1" | jq