【发布时间】:2020-02-12 17:48:49
【问题描述】:
我们有 Openshift 集群 3.11,我们在其中配置了 Horizontal Autoscaler:
Min Pods: 5
Max Pods:10
Cpu Request Target: 80%
1) 我们有一个运行在 pod 中的 spring 应用程序,它将数据持久化到 mongodb。我观察到,当处理开始时,它确实增加了 pod 数量。但是,当 CPU 利用率较低时,它也会开始终止 pod。
我观察到,当 Pod 终止时,它不会考虑在该 Pod 上运行的任何处理。由于同样的原因,我发现很少有数据库记录丢失(即将从终止的 pod 中保存的记录):mongodb 集合计数。
2) 当我使用固定数量的 pod 运行时,我不会丢失数据。
如果 pod 上正在运行任何处理(例如异步数据库保存操作),是否有任何方法可以调整 Autoscaler 使其不会终止 pod
或者即使 CPU 利用率较低,也仅在特定持续时间后终止 pod?
【问题讨论】:
-
看看使用
preStop钩子在容器中执行某些东西,这会延迟关闭,直到完成任何需要的数据清除处理。见kubernetes.io/docs/concepts/workloads/pods/pod/…
标签: spring kubernetes openshift autoscaling