【问题标题】:what will happen when codes in pod is running while hpa scale down?当 pod 中的代码在 hpa 缩减时运行时会发生什么?
【发布时间】:2021-09-01 10:42:33
【问题描述】:

我正在学习k8s hpa autoscale,有一个困惑。

如果有一些代码像这样在 pod 中运行:

# do something1
time.sleep(15)
# do something2

当执行到time.sleep(15),此时hpa scale down,这个pod会被移除,something2不会执行吗?

【问题讨论】:

  • 当 HPA 缩小 pod 时,它不会执行任何后续操作并终止 pod/容器中正在运行的进程。

标签: kubernetes autoscaling hpa


【解决方案1】:

关于如何控制服务中断时应该发生的事情,有几个选项。通常,K8S 会向容器的主进程发送一个soft termination,该进程可以使用它来优雅地处理(拦截中断信号)。 虽然,K8S 只会等待 PodSpec 中定义的terminationGracePeriod 时间。

您还可以使用名为preStop 的生命周期挂钩并在外部处理服务终止过程。

此 StackOverflow 答案中提供了一些信息:Is there a way to downscale pods only when message is processed (the pod finished its task) with the HorizontalPodAutoscaler in Kubernetes?

阅读 Kubernetes 文档,了解有关服务管理和 pod 生命周期的 pod 终止过程。 https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination

要回答您的问题,取决于terminationGracePeriod 是否会执行something2

【讨论】:

    猜你喜欢
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 2023-02-01
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多