gpt4 book ai didi

kubernetes - 是否可以从 configmap 为 Horizo​​ntalPodAutoscaler 设置外部指标的名称? GKE

转载 作者:行者123 更新时间:2023-12-02 12:26:48 24 4
gpt4 key购买 nike

我正在修改使用 Horizo​​ntalPodAutoscaler (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_SUBSCRIPTION理想情况下可以来自配置映射。

最佳答案

将此答案发布为社区 wiki 以获得更好的可见性,并在评论中提供了答案。
回答帖子中的问题:

I would like to be able to pull the subscription name for the HPA from a configmap if possible? Is there a way to do this?


正如用户@Abdennour TOUMI 所指出的,无法设置 HPA 使用的指标。与 ConfigMap :

Unfortunately, you cannot.. but you can using prometheus-adapter + HPA . Check this tuto: itnext.io/...



至于 手动解决方法 您可以使用脚本从 configMap 中提取所需的指标名称并使用模板替换和应用新的 HPA .
configMap像:
apiVersion: v1
kind: ConfigMap
metadata:
name: example
data:
metric_name: "new_awesome_metric" # <-
not_needed: "only for example"
和以下脚本:
#!/bin/bash

# variables
hpa_file_name="hpa.yaml"
configmap_name="example"
string_to_replace="PLACEHOLDER"

# extract the metric name used in a configmap
new_metric=$(kubectl get configmap $configmap_name -o json | jq '.data.metric_name')

# use the template to replace the $string_to_replace with your $new_metric and apply it
sed "s/$string_to_replace/$new_metric/g" $hpa_file_name | kubectl apply -f -

This script will need to have a hpa.yaml with the template to apply it as resource (example from question could be used with a change:

  • resource.labels.subscription_id: PLACEHOLDER


有关更多引用,此 HPA 定义可以基于本指南:

Cloud.google.com: Kubernetes Engine: Tutorials: Autoscaling-metrics: PubSub

关于kubernetes - 是否可以从 configmap 为 Horizo​​ntalPodAutoscaler 设置外部指标的名称? GKE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62851002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com