我正在学习k8s-hpa自动缩放,有一个困惑
如果有一些代码在pod中运行,如下所示:
# do something1
time.sleep(15)
# do something2
当执行时间到了。睡眠(15(,此时hpa缩小,这个pod会被移除,一些g2不会执行
关于如何控制服务停止时应该发生的事情,有几个选项。通常,K8S会向容器的主进程发送一个soft termination
,该进程可以使用它来优雅地处理(拦截中断信号(。尽管如此,K8S将只等待PodSpec中定义的terminationGracePeriod
时间。
您还可以使用名为preStop
的生命周期挂钩,并从外部处理服务终止过程。
StackOverflow的回答中有一些信息:只有在Kubernetes中的HorizontalPodAutoscaler处理消息(pod完成任务(时,才有办法缩小pod的规模吗?
阅读Kubernetes关于服务管理和pod生命周期方面的pod终止过程的文档。https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-终止
要回答您的问题,将取决于terminationGracePeriod
是否执行something2
。