我有一个Init Container负责数据库版本检查。如果初始化容器中的数据库版本检查失败,则整个部署应立即失败。但是我仍然希望Pod中的其他容器为restartPolicy=Always
。
但是,初始化容器是
根据Pod
重试restartPolicy
如果我可以为Init Container指定一个不同于Deployment的restartPolicy
,那将是很好的选择,但这是不可能的。 Lifecycle Hooks也不起作用,因为此用例需要的是PreStart
钩子。
是否有一种使Init Container快速失败的好方法?
答案 0 :(得分:1)
您想旋转一个单独的容器,该容器将检查数据库版本,如果成功,会在主机驱动器上创建一些伪像,例如文件/tmp/db_version
,然后只需添加 livenessProbe / readinessProbe 到您的主要部署中,它将检查/tmp/db_version
的存在,例如
livenessProbe:
exec:
command:
- ls
- /tmp/db_version
initialDelaySeconds: 5
periodSeconds: 5
因此,您可以将db_version_check容器和主容器的 restartPolicy 放在一边。