gpt4 book ai didi

kubernetes - preStop 钩子(Hook)和终止GracePeriodSeconds 之间的关系

转载 作者:行者123 更新时间:2023-12-02 11:39:50 24 4
gpt4 key购买 nike

基本上,我想做的是玩转 pod 生命周期,并检查我们是否可以在 pod 终止之前进行一些清理/备份,例如复制日志。

我需要的 :
在终止之前将日志/堆转储从容器复制到 hostPath/S3

我尝试了什么:

我使用带有 bash 命令的 preStop 钩子(Hook)来回显一条消息(只是为了看看它是否有效!!)。使用带有延迟的terminationGracePeriodSeconds preStop 并切换它们以查看该过程是否有效。前任。保持 terminateGracePeriodSeconds:30 秒(默认)并将 preStop 命令设置为休眠 50 秒,并且不应生成消息,因为届时容器将被终止。这按预期工作。

我的问题:

  • preStop 钩子(Hook)允许(推荐)什么样的进程?因为复制 15 个或更多的日志/堆转储将花费大量时间。该时间将用于定义终止GracePeriodSeconds
  • 当 preStop 花费的时间超过设置的 gracePeriod 时会发生什么?
    (如果日志很大,比如 10 个演出)
  • 如果我没有任何钩子(Hook)但仍然设置了 terminateGracePeriodSeconds 会发生什么?容器会一直保持到那个宽限期吗?

  • 我发现这篇文章与此密切相关,但无法通过 https://github.com/kubernetes/kubernetes/issues/24695

    所有输入表示赞赏!

    最佳答案

    what kind of processes are allowed(recommended) for a preStop hook? As copying logs/heapdumps of 15 gigs or more will take a lot of time. This time will then be used to define terminationGracePeriodSeconds



    任何事情都在这里,它更多的是一种意见,以及你希望你的 pod 如何流连忘返。另一种选择是让您的 pod 终止并将您的数据存储在某个地方(即 AWS S3、EBS),其中数据将在 pod 生命周期之后持续存在,然后使用类似 Job 的内容清理数据等

    what happens when preStop takes more time than the set gracePeriod? (in case logs are huge say 10 gigs)



    您的 preStop 将无法完成,这可能意味着数据不完整或数据损坏。

    what happens if I do not have any hooks but still set terminationGracePeriodSeconds ? will the container remain up until that grace time ?



    这解释了以下顺序:
  • 一个 SIGTERM 信号被发送到每个容器中的主进程,“宽限期”倒计时开始。
  • 如果容器没有在宽限期内终止,则会发送 SIGKILL 信号和容器。
  • 关于kubernetes - preStop 钩子(Hook)和终止GracePeriodSeconds 之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54676124/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com