Pra*_*ade 5 kubernetes devops minikube kubernetes-deployment kubernetes-pod
基本上我想做的是研究 Pod 生命周期,并检查我们是否可以在 Pod 终止之前进行一些清理/备份,例如复制日志。
我需要什么:在终止之前将日志/堆转储从容器复制到主机路径/S3
我尝试过的:
我使用了带有 bash 命令的 preStop 钩子来回显一条消息(只是为了看看它是否有效!!)。使用带有延迟的终止GracePeriodSeconds 来预停止并切换它们以查看进程是否有效。前任。保持终止GracePeriodSeconds:30秒(默认)并将preStop命令设置为休眠50秒,并且不应生成该消息,因为容器将在那时终止。这按预期工作。
我的问题:
我发现这篇文章与此密切相关,但无法通过https://github.com/kubernetes/kubernetes/issues/24695
所有投入表示赞赏!
\n\n\npreStop 钩子允许(推荐)什么样的进程?因为复制 15 GB 或更多的日志/堆转储将花费大量时间。该时间将用于定义终止GracePeriodSeconds
\n
这里什么都可以,这更多的是一种意见以及你希望你的豆荚如何徘徊。另一种选择是让您的 Pod 终止并将数据存储在某个位置(即 AWS S3、EBS),数据将在 Pod 生命周期结束后持续存在,然后使用Job之类的方法来清理数据等。
\n\n\n\n\n当 preStop 花费的时间超过设置的 GracePeriod 时会发生什么?(如果日志很大,比如 10 场)
\n
您的 preStop 将无法完成,这可能意味着数据不完整或数据损坏。
\n\n\n\n\n如果我没有任何钩子但仍设置终止GracePeriodSeconds 会发生什么?容器会一直保持到宽限期吗?
\n
这解释了顺序:
\n\n| 归档时间: |
|
| 查看次数: |
3308 次 |
| 最近记录: |