一段时间不使用Pod时,如何自动缩小为0?

时间:2019-08-27 11:04:29

标签: google-kubernetes-engine kubernetes-ingress

我有N个状态集,每个状态集都通过nginx入口部署到了其唯一的主机上。

例如:

abcde.example.com-Statefulset 1

pqrstu.example.com-Statefulset 2

因此,在这里我想在没有人访问一段时间(例如:3天)时将我的有状态集副本缩小为0。 在kubernetes中有可能吗?

2 个答案:

答案 0 :(得分:0)

HPA可以应用于状态集,但是有一个警告。您将可以通过以下方式自动缩放:

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: YOUR_HPA_NAME
spec:
  maxReplicas: 3
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: StatefulSet
    name: YOUR_STATEFUL_SET_NAME
  targetCPUUtilizationPercentage: 80

但是设置minReplicas: 0会产生以下错误

The HorizontalPodAutoscaler "xxxxxx" is invalid: spec.minReplicas: Invalid value: 0: must be greater than 0

答案 1 :(得分:0)

您可以尝试KEDA。它尚处于初期阶段,但它是一项有前途的技术,确实有光明的前景。

  

KEDA允许细粒度的自动缩放(包括从零到零)   事件驱动的Kubernetes工作负载KEDA用作Kubernetes指标   服务器并允许用户使用专用的自定义缩放规则   Kubernetes自定义资源定义。

https://github.com/kedacore/keda