Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jenkins 如果一个容器发生故障,如何杀死多容器吊舱?_Jenkins_Kubernetes_Kubernetes Pod_Jenkins Kubernetes - Fatal编程技术网

Jenkins 如果一个容器发生故障,如何杀死多容器吊舱?

Jenkins 如果一个容器发生故障,如何杀死多容器吊舱?,jenkins,kubernetes,kubernetes-pod,jenkins-kubernetes,Jenkins,Kubernetes,Kubernetes Pod,Jenkins Kubernetes,我使用的是Kubernetes集群中作为Jenkins代理的启动吊舱。POD包含3个容器,用于提供从属逻辑、Docker套接字以及gcloud命令行工具 通常的工作流程是从机完成其工作并通知主机该工作已完成。然后主机终止pod。但是,如果从属容器由于丢失网络连接而崩溃,则容器终止,错误代码为255,其他两个容器保持运行,pod也保持运行。这是一个问题,因为POD有大量的CPU请求,并且安装成本很低,只有在必要时才运行从机,但是让多台机器24小时或周末运行会造成明显的经济损失 我知道在同一个豆荚中

我使用的是Kubernetes集群中作为Jenkins代理的启动吊舱。POD包含3个容器,用于提供从属逻辑、Docker套接字以及
gcloud
命令行工具

通常的工作流程是从机完成其工作并通知主机该工作已完成。然后主机终止pod。但是,如果从属容器由于丢失网络连接而崩溃,则容器终止,错误代码为255,其他两个容器保持运行,pod也保持运行。这是一个问题,因为POD有大量的CPU请求,并且安装成本很低,只有在必要时才运行从机,但是让多台机器24小时或周末运行会造成明显的经济损失

我知道在同一个豆荚中启动多个容器不是很好的Kubernetes arts,但是如果我知道我在做什么,并且我假设我知道的话,那么就可以了。我确信,鉴于Jenkins-Kubernetes插件的工作方式,很难以不同的方式解决这个问题


如果一个容器发生故障而没有重新启动,我可以使吊舱终止吗?由于超时解决方案也是可以接受的,但不太可取。

免责声明,我对kubernetes的了解相当有限,但考虑到以下问题:

也许您可以运行第四个容器,它公开一个简单的“活动性”端点 它可以运行
ps-ef
或任何其他方式来联系3个现有容器,以确保它们处于活动状态

只有当所有容器都在运行时,此端点才能返回“OK”,如果至少有一个容器被检测为“crasted”,则返回“ERROR”

然后,您可以设置kubernetes的活跃度探测器,以便它在第四个容器返回错误时停止pod


当然,如果第四个进程因任何原因自行崩溃(除非有bug或其他原因,否则不应该崩溃),那么liveness探测器将不会响应,kubernetes应该停止pod,这可能是您真正想要实现的。

有趣的想法让我走上了一条好路,谢谢。结合活性探针的特性(这将避免额外的pod)在.Nice讨论中讨论。谢谢你的链接,卡尔。我没有意识到。。。