繁体   English   中英

Kubernetes pod 中的“Sidecar”容器

[英]“Sidecar” containers in Kubernetes pods

我想要一个包含几个组件的多容器 pod:

  • 包含构建作业的“主”容器
  • 包含 HTTP 代理的“sidecar”容器,由“main”容器使用

这似乎很符合Kubernetes 文档中描述的 pod 设计理念,但我相信只要“sidecar”运行,pod 就会保持活动状态。 就我而言,“主”容器不是长期存在的; 一旦退出,“边车”就应该终止。

我怎样才能做到这一点?

只要其中一个容器正在运行,Pod 就会运行。 如果你需要他们一起退出,你必须安排边车死亡。 我们没有“主要”与“次要”容器wrt生命周期的概念,尽管这有点有趣。

一种选择是使用 emptyDir 卷并写入一个文件,告诉边车“该走”了。 Sidecar 会在看到该文件时退出。

对于仍在寻找答案的任何人来说,sidecar 功能正在开发中,应该会在 Kubernetes 的 v1.17 中推出,它将具有这种确切的请求行为。

从提案:

单行增强描述:容器现在可以标记为边车,以便它们在正常容器之前启动并在所有其他容器终止后关闭。

https://github.com/kubernetes/enhancements/issues/753

更新:看起来它现在计划用于 v1.18

您是否考虑过使用http://kubernetes.io/docs/user-guide/jobs/资源?

提出问题时该功能可能不可用,但是现在可以为 pod 定义 postStart 和 preStop 处理程序。 您可能可以在主容器中定义 preStop 来终止 sidecar 容器。

您可以使用活性探针来帮助解决此问题。 探针检查“主”容器(以及它自己的任何检查)。 一旦主容器宕机,活性探针就会失败,然后 pod 应该被回收。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM