小编arm*_*rmb的帖子

如何使用仅运行一次的 init 容器复制 pod?

如果我想运行需要一次性初始化任务的某个容器的多个副本,是否有标准或推荐的做法?

可能性:

  • 使用 StatefulSet 即使在初始化后它不是必需的,并且有 init 容器来检查它们是否在集合中的第一个 pod 上,否则什么都不做。(如果出于其他原因需要 StatefulSet,这几乎肯定是最简单的答案。)
  • 使用使用领导者选举或一些类似方法的 init 容器只选择其中一个来进行初始化。
  • 使用 init 容器,并确保多个副本可以安全地并行运行。可能是理想的,但安排起来并不总是那么简单。(特别是在滚动更新期间 pod 随机失败的情况下,替换旧 pod 在启动新 pod 的同时运行其 init。)
  • 将单独的作业(或单独的部署)与单个副本一起使用。可能会使初始化变得容易,但会使管理它与 CI/CD 管道中的主容器之间的依赖关系变得更加困难(我们没有使用 Helm,但这与安装后/升级后挂钩大致相当) .

kubernetes

7
推荐指数
1
解决办法
1754
查看次数

标签 统计

kubernetes ×1