我正在使用Jenkins Kubernetes 插件,它在充当 Jenkins 代理的 Kubernetes 集群中启动 Pod。Pod 包含 3 个容器以提供从属逻辑、一个 Docker 套接字以及gcloud
命令行工具。
通常的工作流程是slave完成它的工作并通知master它完成了。然后主节点终止 pod。但是,如果从属容器由于丢失网络连接而崩溃,则容器将终止并显示错误代码 255,其他两个容器继续运行,Pod 也将继续运行。这是一个问题,因为 Pod 有大量 CPU 请求,并且设置成本很低,slave 只在必要时运行,但是让多台机器 24 小时或周末运行会造成明显的经济损失。
我知道在同一个 pod 中启动多个容器并不是 Kubernetes 的艺术,但是如果我知道我在做什么并且我假设我会这样做,那也没关系。我敢肯定,鉴于 Jenkins Kubernetes 插件的工作方式,很难以不同的方式解决这个问题。
如果一个容器在没有重生的情况下失败,我可以让 pod 终止吗?作为具有超时的解决方案也是可以接受的,但是不太优选。