如何在一段时间不使用 Pod 时自动缩减到 0



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

例如:

abcde.example.com - 有状态集 1

pqrstu.example.com - 有状态集 2

所以在这里我想在一段时间内(例如:3 天)没有人访问它时将我的状态集副本缩小到 0。 这在 Kubernetes 中可能吗?

HPA 可以应用于 Statefulsets,但有一个警告。您将能够通过以下方式自动缩放:

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

你可以试试KEDA。它处于早期阶段,但它是一种有前途的技术,前景非常光明(恕我直言)。

KEDA 允许对 事件驱动的 Kubernetes 工作负载。KEDA 作为 Kubernetes Metrics 服务器,并允许用户使用专用的自动缩放规则 Kubernetes 自定义资源定义。

https://github.com/kedacore/keda

相关内容

  • 没有找到相关文章

最新更新