生产中的 Kubernetes。Pod 运行中的问题

生产中的 Kubernetes。Pod 运行中的问题

在部署新版本时,我对 kubernetes 有一个疑问。

我的 Kubernetes yaml 配置中有RollingUpdate strategy。当以这种方式更改版本时,问题就出现了。如果我有一个正在执行操作的 php-fpm,该操作会丢失吗?万一只是将该 pod 更改为新版本。

我的主要问题是,采用这种策略的 kubernetes 是否会考虑到 pod 是否正在被使用,如果是,它是否会等到它完成必须做的事情后再进行更改。

谢谢!

答案1

扩展一下@Fady 上面所说的内容,以满足那些仍然好奇的人的需求。

通过调用 PreStop 容器钩子,您可以在容器终止之前关闭所有未完成的事情。来自文档“PreStop:在容器终止之前立即调用此钩子。”[1]

PreStop 钩子可以执行特定命令或针对容器上的端点执行 HTTP 请求。此外,标准宽限期为 30 秒。但是,您可以通过附加 来传递自定义时间--grace-period=<seconds>。[2]

[1]https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

[2]https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods

相关内容