当 pod 中的代码为 运行 而 hpa 缩小时会发生什么?
what will happen when codes in pod is running while hpa scale down?
正在学习k8s hpa autoscale,有一个困惑。
如果 pod 中有这样的代码 运行:
# do something1
time.sleep(15)
# do something2
当执行到time.sleep(15),此时hpa scale down,这个pod会不会被移除,something2不会执行?
关于如何控制服务中断时应该发生的事情,有几个选项。通常情况下,K8S 会向容器的主进程发送一个 soft termination
,主进程可以使用它来优雅地处理(拦截中断信号)。
虽然,K8S 只会等待 PodSpec 中定义的 terminationGracePeriod
时间。
您还可以使用名为 preStop
的生命周期挂钩并在外部处理服务终止过程。
此 Whosebug 答案中包含一些信息:Is there a way to downscale pods only when message is processed (the pod finished its task) with the HorizontalPodAutoscaler in Kubernetes?
阅读有关服务管理和 pod 生命周期的 pod 终止过程的 Kubernetes 文档。
https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
要回答你的问题,这将取决于 terminationGracePeriod
something2
是否会执行。
正在学习k8s hpa autoscale,有一个困惑。
如果 pod 中有这样的代码 运行:
# do something1
time.sleep(15)
# do something2
当执行到time.sleep(15),此时hpa scale down,这个pod会不会被移除,something2不会执行?
关于如何控制服务中断时应该发生的事情,有几个选项。通常情况下,K8S 会向容器的主进程发送一个 soft termination
,主进程可以使用它来优雅地处理(拦截中断信号)。
虽然,K8S 只会等待 PodSpec 中定义的 terminationGracePeriod
时间。
您还可以使用名为 preStop
的生命周期挂钩并在外部处理服务终止过程。
此 Whosebug 答案中包含一些信息:Is there a way to downscale pods only when message is processed (the pod finished its task) with the HorizontalPodAutoscaler in Kubernetes?
阅读有关服务管理和 pod 生命周期的 pod 终止过程的 Kubernetes 文档。 https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination
要回答你的问题,这将取决于 terminationGracePeriod
something2
是否会执行。