Kubernetes 是否可以从configmap为HorizontalPodAutoscaler设置外部度量的名称?吉凯恩

Kubernetes 是否可以从configmap为HorizontalPodAutoscaler设置外部度量的名称?吉凯恩,kubernetes,google-kubernetes-engine,google-cloud-pubsub,Kubernetes,Google Kubernetes Engine,Google Cloud Pubsub,我正在修改一个使用HorizontalPodAutoscaler(HPA)自动缩放的部署。此部署是管道的一部分,在该管道中,工作人员从pubsub订阅读取消息,执行一些工作并发布到下一个主题。现在,我使用configmap来定义部署的管道(configmap包含输入订阅和输出主题)。HPA根据输入订阅上的消息数自动缩放。如果可能,我希望能够从configmap中提取HPA的订阅名称?有办法做到这一点吗 HPA示例: apiVersion: autoscaling/v2beta1 kind: Ho

我正在修改一个使用HorizontalPodAutoscaler(HPA)自动缩放的部署。此部署是管道的一部分,在该管道中,工作人员从pubsub订阅读取消息,执行一些工作并发布到下一个主题。现在,我使用configmap来定义部署的管道(configmap包含输入订阅和输出主题)。HPA根据输入订阅上的消息数自动缩放。如果可能,我希望能够从configmap中提取HPA的订阅名称?有办法做到这一点吗

HPA示例:

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: my-deployment-hpa
  namespace: default
  labels:
    name: my-deployment-hpa
spec:
  minReplicas: 1
  maxReplicas: 10
  metrics:
    - external:
        metricName: pubsub.googleapis.com|subscription|num_undelivered_messages
        metricSelector:
          matchLabels:
            resource.labels.subscription_id: "$INPUT_SUBSCRIPTION"
        targetAverageValue: "2"
      type: External
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-deployment

HPA当前
$INPUT\u订阅的值理想情况下可以来自configmap。

将此答案发布为社区wiki,以提高可见性,并在评论中提供答案

回答邮报上的问题:

如果可能,我希望能够从configmap中提取HPA的订阅名称?有办法做到这一点吗

正如user@Abdennour TOUMI所指出的,无法使用
ConfigMap
设置
HPA
使用的度量:


不幸的是,你不能。。但是你可以使用普罗米修斯适配器+HPA。检查这首短裙:


至于手动解决方案,您可以使用脚本从
configMap
提取所需的度量名称,并使用模板替换和应用新的
HPA

使用
configMap
类似:

apiVersion:v1 种类:配置地图 元数据: 名称:示例 数据:
metric_name:“new_awesome_metric”#将此答案发布为社区wiki,以获得更好的可视性,并在评论中提供答案

回答邮报上的问题:

如果可能,我希望能够从configmap中提取HPA的订阅名称?有办法做到这一点吗

正如user@Abdennour TOUMI所指出的,无法使用
ConfigMap
设置
HPA
使用的度量:


不幸的是,你不能。。但是你可以使用普罗米修斯适配器+HPA。检查这首短裙:


至于手动解决方案,您可以使用脚本从
configMap
提取所需的度量名称,并使用模板替换和应用新的
HPA

使用
configMap
类似:

apiVersion:v1 种类:配置地图 元数据: 名称:示例 数据:
度量单位名称:“新度量单位很棒”#不幸的是,你不能。。但是你可以使用普罗米修斯适配器+HPA。检查这首短裙:@AbdennourTOUMI谢谢。即使存在这样的情况,您似乎仍然需要在HPA的对象度量中硬编码服务名称。如果HPA本身不能动态配置,那么我想你是对的,这是不可能的。@AbdennourTOUMI请提供你的评论作为回答,因为它澄清了HPA可以/不能做什么。不幸的是,你不能。。但是你可以使用普罗米修斯适配器+HPA。检查这首短裙:@AbdennourTOUMI谢谢。即使存在这样的情况,您似乎仍然需要在HPA的对象度量中硬编码服务名称。如果HPA本身不能动态配置,那么我想你是对的,这是不可能的。@AbdennourTOUMI请提供你的评论作为回答,因为它澄清了HPA可以/不能做什么。