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