kubernetes 删除父作业后Pod仍在运行

nxowjjhe  于 2023-06-28  发布在  Kubernetes
关注(0)|答案(2)|浏览(209)

我在我的kubernetes集群中创建了一个作业,这个作业需要很长时间才能完成,我决定取消它,所以我删除了这个作业,但我注意到关联的pod没有自动删除。这是预期的行为吗?为什么与部署删除不一致?有办法让pod自动删除吗?

xnifntxz

xnifntxz1#

如果您要删除一个部署,很可能您不需要任何底层pod,因此默认情况下很可能会强制删除pod。此外,荚的期望状态将是未知的。
另一方面,如果您正在删除一个pod,它不知道什么类型的复制控制器可能会连接到它,以及它下一步在做什么。因此它向容器发出关闭的信号,以便它可以优雅地清理。可能有一些进程仍在使用pod,如Web请求等。并且如果可能需要一秒钟来完成,则终止他们的请求将是不好的。如果您可能要扩展您的pod或推出新的部署,并且您不希望任何用户经历任何停机时间,就会发生这种情况。这实际上是Kubernetes的好处之一,而不是传统的应用程序服务器,它需要您关闭系统才能升级(或使用负载均衡器重定向流量),这可能会对用户产生负面影响。

rslzwgfq

rslzwgfq2#

在我的例子中,将propagation_policy设置为“Foreground”,然后在作业删除后立即删除pod。
Python代码示例:

api_response = jobApiInstance.delete_namespaced_job(name=jobName, namespace=namespace, propagation_policy="Foreground")

相关问题