我在部署中使用 initContainers。为每个 Pod 创建一个 init 容器。
是否可以为整个部署只获得一个 init 容器?
编辑:
用例:需要在创建 pod 之前运行一些数据库迁移命令。所以我将这些命令放在 init pods 中。
问题: - 每次创建 Pod 时,都会创建 init 容器 - 向上扩展时会创建 init 容器
解决方案:我终于在这篇文章中找到了一个很好的例子来解决这个问题
虽然不可能让整个部署共享一个 init 容器(根据定义这是不可能的,因为 kube 中的工作负载调度单位是 pod),但您可以使用一些东西来轻松获得类似的功能。
实现此目的的一种方法是在每个 pod 上都有一个 init 容器,等待成功执行特定作业,以及执行实际 init 逻辑的作业。
另一种方法是在 init 容器中使用领导者选举,这样只有一个执行,其余的只需等待锁被释放,然后才能成功退出。
| 归档时间: |
|
| 查看次数: |
1610 次 |
| 最近记录: |