使用 kube-downscaler 降低 Kubernetes 集群成本( 三 )

基于periods的替代逻辑您可以选择升级或缩减的时间段 , 而不是严格的正常运行时间或停机时间 。时间定义是相同的 。在这种情况下 , 放大或缩小只发生在时间段,其余时间将被忽略 。
如果配置了升级或缩减周期,将忽略正常运行时间和停机时间 。这意味着某些选项是互斥的 , 例如 , 您可以使用或 --default-downtime ,但不能同时使用 --downscale-period 两者 。
此定义将在 19:00 到 20:00 之间缩减群集 。如果手动升级集群,则在第二天 19:00-20:00 之前不会缩减集群 。
DOWNSCALE_PERIOD="Mon-Sun 19:00-20:00 Europe/Berlin"命令行选项可用的命令行选项:

  • --dry-run仅运行模式:不更改任何内容,只需打印将要执行的操作
  • --debug调试模式:打印更多信息
  • --once仅运行一次循环并退出
  • --interval循环间隔(默认:30 秒)
  • --namespace将downscaler限制为仅在单个命名空间(默认:所有命名空间)中工作 。这主要适用于 kube-downscaler 的部署者只能访问给定命名空间(而不是集群访问权限)的部署场景 。如果与 同时 --exclude-namespaces使用  , 则不应用任何应用 。
  • --include-resources将此类资源缩小为逗号分隔列表 。
  • --grace-period新部署在缩减部署之前的宽限期(以秒为单位)(默认值:15 分钟) 。宽限期从创建部署时开始计算 , 即无论宽限期如何,更新的部署都将立即缩减 。
  • --upscale-period仅在给定时间段内纵向扩展的替代逻辑(默认:从不),也可以通过环境变量 UPSCALE_PERIOD 或通过每个部署 downscaler/upscale-period 上的注释进行配置
  • --downscale-period仅在给定时间段内缩减的替代逻辑(默认:从不),也可以通过环境变量 DOWNSCALE_PERIOD 或通过每个部署 downscaler/downscale-period 上的注释进行配置
  • --default-uptime要纵向扩展的默认时间范围(默认:始终),也可以通过环境变量 DEFAULT_UPTIME 或通过每个部署 downscaler/uptime 上的注释进行配置
  • --default-downtime要缩减的默认时间范围(默认:从不),也可以通过环境变量 DEFAULT_DOWNTIME 或通过每个部署 downscaler/downtime 上的注释进行配置
  • --exclude-namespaces从降级中排除命名空间(正则表达式模式列表,默认:kube-system),也可以通过环境变量 EXCLUDE_NAMESPACES 进行配置 。如果与 同时 --namespace 使用,则不应用任何应用 。
  • --exclude-deployments从降级中排除特定部署/状态集/cronjobs(默认:kube-downscaler,downscaler),也可以通过环境变量 EXCLUDE_DEPLOYMENTS 进行配置 。尽管名称如此,但此选项将与任何包含的资源类型(Deployment,StatefulSet,CronJob等)的名称匹配 。
  • --downtime-replicas缩小到的副本的默认值,注释 downscaler/downtime-replicas 优先于此值 。
  • --deployment-time-annotation可?。航?褂玫淖⑹偷拿??,而不是资源的创建时间戳 。如果您希望资源在部署后的宽限期 ( --grace-period ) 内保持纵向扩展 , 则应使用此选项 。注释的时间戳值的格式必须与 Kubernetes 的格式完全相同: creationTimestamp %Y-%m-%dT%H:%M:%SZ  。建议:通过部署工具自动设置此批注 。
  • --matching-labels可?。簁ube-downscaleer 范围涵盖的工作负载标签列表 。标签与列表中的任何工作负载都不匹配的所有工作负载都将被忽略 。为了向后兼容 , 如果未指定此参数,kube-downscaler 将应用于所有资源 。
Namespace Defaults命名空间默认值DEFAULT_UPTIME 、 DEFAULT_DOWNTIME 和 FORCE_UPTIME 排除也可以使用命名空间注释进行配置 。在配置的情况下,这些值将取代其他全局默认值 。
apiVersion: v1kind: Namespacemetadata:name: foolabels:name: fooannotations:downscaler/uptime: Mon-Sun 07:30-18:00 CET命名空间级别支持以下批注: