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

如何配置Kube-downscaler实现指定StatefulSet/Deployment缩容?

关于Kube-downscaler指定StatefulSet缩容的解决方案

一、精准指定单个/多个StatefulSet的方法

Kube-downscaler支持通过资源注解实现对特定StatefulSet的缩容控制,这是指定3-4个目标实例的最优方案:

  • 给需要缩容的StatefulSet添加注解,直接复用你现有时间规则即可:
    annotations:
      downscaler/force-downtime: "Sat-Sun 00:00-06:30 Asia/Kolkata,Mon-Fri 15:33-15:43 Asia/Kolkata"
    
  • 保留ConfigMap中的INCLUDE_RESOURCES: "deployments,horizontalpodautoscalers,statefulsets",确保downscaler会扫描StatefulSet资源
  • 只要目标StatefulSet不在EXCLUDE_NAMESPACES列表中,无需修改排除规则

若需让部分StatefulSet豁免缩容,可添加注解:downscaler/exclude: "true"

二、INCLUDE_NAMESPACES配置失效的原因

你尝试的INCLUDE_NAMESPACES: "test"未生效,核心是Kube-downscaler的规则优先级:
资源注解 > EXCLUDE_NAMESPACES > INCLUDE_NAMESPACES

  • 现有配置中EXCLUDE_NAMESPACES包含多个命名空间,若test不在排除列表内,需调整规则:
    1. 若仅需test命名空间内的资源被缩容,删除EXCLUDE_NAMESPACES配置,同时保留INCLUDE_NAMESPACES: "test"
    2. 若要保留EXCLUDE_NAMESPACES,需确保test不在排除列表中,且同时配置INCLUDE_NAMESPACES: "test"(但这种组合易引发规则冲突,不推荐)

三、命名空间维度控制的ConfigMap示例

若坚持用命名空间方式实现,修改后的ConfigMap如下:

apiVersion: v1
kind: ConfigMap
metadata:
  name: kube-downscaler
data:
  DEFAULT_DOWNTIME: "Sat-Sun 00:00-06:30 Asia/Kolkata,Mon-Fri 15:33-15:43 Asia/Kolkata"
  INCLUDE_RESOURCES: "deployments,horizontalpodautoscalers,statefulsets"
  INCLUDE_NAMESPACES: "test"
  # 移除EXCLUDE_NAMESPACES,或确保test不在该列表中
  # EXCLUDE_NAMESPACES: "kube-system, kube-downscaler, cert-manager, default, monitoring, operator, dev"

内容的提问来源于stack exchange,提问作者Alexy Pulivelil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:52:22