我们有Openshift集群3.11,我们在其中配置了水平自动缩放器:
Min Pods: 5
Max Pods:10
Cpu Request Target: 80%
1)我们有一个在Pod中运行的spring应用程序,该应用程序将数据持久保存到mongodb。我观察到,处理开始时,确实会增加容器数量。但是,当CPU使用率较低时,它也会开始终止pod。
我观察到,当Pod终止时,它不考虑在该Pod上运行的任何处理。由于相同的原因,我确实发现很少丢失数据库记录(即将从终止的Pod中保存的记录):mongodb收集计数。
2)当我以固定数量的Pod运行时,我不会丢失数据。
如果Pod上有任何处理(例如,异步数据库保存操作)正在运行,是否有任何方法可以调整Autoscaler,使其不会终止pod
还是仅在特定持续时间后才终止Pod,即使CPU利用率较低?
答案 0 :(得分:0)
(引用)“ ...或仅在特定持续时间后才终止Pod,即使CPU利用率较低?” -看看PodSpec中的terminationGracePeriodSeconds
。
如果您在应用程序的控制权之内,并且假设启动了外壳程序脚本,则可以在外壳程序脚本中进行一些处理,以响应SIGTERM(TERM信号)来处理正常终止。另请参见Termination of Pods。