我有N个状态集,每个状态集都通过nginx入口部署到了其唯一的主机上。
例如:
abcde.example.com-Statefulset 1
pqrstu.example.com-Statefulset 2
因此,在这里我想在没有人访问一段时间(例如:3天)时将我的有状态集副本缩小为0。 在kubernetes中有可能吗?
答案 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自定义资源定义。