Kubernetes初始化容器快速失败

时间:2019-05-19 22:54:50

标签: kubernetes

我有一个Init Container负责数据库版本检查。如果初始化容器中的数据库版本检查失败,则整个部署应立即失败。但是我仍然希望Pod中的其他容器为restartPolicy=Always

但是,初始化容器是

  

根据Pod restartPolicy

重试

如果我可以为Init Container指定一个不同于Deployment的restartPolicy,那将是很好的选择,但这是不可能的。 Lifecycle Hooks也不起作用,因为此用例需要的是PreStart钩子。

是否有一种使Init Container快速失败的好方法?

1 个答案:

答案 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 放在一边。