gpt4 book ai didi

Kubernetes 检查 "silent"pod 是否完成执行

转载 作者:行者123 更新时间:2023-12-02 11:43:37 27 4
gpt4 key购买 nike

假设我定义了一个 pod,它只运行几段代码然后退出。我需要确保这个 pod 在允许其他 pod 运行之前退出。实现这一点的最佳方法是什么?

我曾经通过执行网络请求来检查 pod 是否准备就绪,例如一旦准备就绪,一些 webapps pod 将阻止并监听预定义的端口,因此我可以让等待的 pod 向它们执行 netcat 请求。但在这种特殊情况下,pod 不需要打开任何端口,因此这种方法不起作用。谁能提出替代方案?

谢谢

最佳答案

如果“代码片段”需要在每次 pod 启动/重启时运行,您可能正在寻找 Init Container实现:

Init Containers are specialized Containers that run before app Containers and can contain utilities or setup scripts not present in an app image.

如果您的代码是多个 pod 的依赖项并且需要运行一次(例如,在每次新部署时),您可以考虑使用 Job Controller ,并实现一个逻辑来检查它是否在部署新的 pod/容器之前完成。(您可以在部署脚本中使用 kubectl wait --for=condition=complete job/myjob 等命令)。

如果您使用 helm 进行部署,最好的选择是使用 k8s 作业结合 pre-installpre-upgrade helm hooks .

关于Kubernetes 检查 "silent"pod 是否完成执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55166112/

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