思路:
有个常驻任务,白天的时候没有流量,晚上的时候流量激增,总是发生OOM,调研了一下k8s的VPA,感觉非常适合我,但是由于任务的特殊性,是单个pod。部署完VPA后,看到vpa-updater给我报错:

意思就是我目前只有1个pod,至少需要2个pod才能触发 vpa的自动更新。
通过日志我们查看pods_eviction_restriction.go:226行的代码

发现是通过minReplicas参数控制的,最终我们可以看到是通过命令行参数控制的,并且默认值为2,这样和报错信息就吻合了。

解决方案:
那我们只需要修改vpa-updater的Deployment,传入相应参数就行了:
apiVersion: apps/v1
kind: Deployment
spec:
...
template:
...
spec:
containers:
- args:
- --min-replicas=1
- --v=4
- --stderrthreshold=info
name: updater

527

被折叠的 条评论
为什么被折叠?



