You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Cloud Dataflow部署名变更致HPA失效,求固定部署名方案

固定Spring Cloud Dataflow流部署名称的解决方案

方案1:部署时指定固定Deployment名称

在创建或更新流的过程中,通过Spring Cloud Dataflow的部署属性直接指定固定的Deployment名称,覆盖Skipper默认的版本化命名规则:

# 创建流
dataflow:>stream create --name smsStream --definition "source | processor | sink"
# 部署时指定固定Deployment名称
dataflow:>stream deploy --name smsStream --properties "deployer.sms.kubernetes.deploymentName=sms"

这样每次重新部署该流时,Deployment名称都会保持为sms,不会自动追加版本后缀。

方案2:基于标签选择器配置HPA(无需固定Deployment名称)

绕过Deployment名称变更的问题,让HPA通过标签选择器关联目标资源,只要流应用的Deployment带有固定标签,HPA就能持续生效:

  1. 部署流时给应用添加固定标签:
dataflow:>stream deploy --name smsStream --properties "deployer.sms.kubernetes.labels.app=sms-stream"
  1. 配置HPA使用标签选择器匹配目标Deployment:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: sms-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: placeholder # 此处仅为占位,实际通过selector匹配
  selector:
    matchLabels:
      app: sms-stream
  minReplicas: 1
  maxReplicas: 5
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

方案3:自定义Skipper部署模板全局生效

如果需要所有流都使用固定命名规则,可以自定义Skipper的Kubernetes部署模板,移除版本号后缀:

  1. 复制Skipper默认的Kubernetes部署模板,找到名称定义部分(通常包含-v{{.Version}}的变量)
  2. 修改模板中的Deployment名称,移除版本变量,例如将{{.DeploymentName}}-v{{.Version}}改为{{.DeploymentName}}
  3. 将自定义模板配置到Skipper的skipper.server.platform.kubernetes.templates属性中,覆盖默认模板。

内容的提问来源于stack exchange,提问作者Anish Raut

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 06:13:29