使用Pod Readinessgate进行Terraform kubernetes部署

时间:2020-04-02 20:10:40

标签: kubernetes terraform

我们使用地形资源“ kubernetes_deployment”来部署我们的Pod。 我们的广告连播具有“准备就绪”探测,但是这些探测还不够好,因为我们需要外部反馈来确定是否准备就绪。在我们的情况下,只有在外部程序在AWS S3存储桶中创建文件之后,才能准备好Pod,这是一个手动步骤,可能会在随机时间(可能是几天/几周)完成,因此准备就绪探针不好,​​因为它将失败,并使我们的Pod处于“未就绪”状态。 我们了解kubernetes 1.14引入了一个称为“就绪门”的东西。参见https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-readiness-gate 但是,似乎地形资源“ kubernetes_deployment”不支持pod就绪门。

请注意,我们更喜欢使用kubernetes部署(而不是直接定义pod),因为我们需要滚动更新策略。

我们如何用Terraform定义吊舱就绪门?

2 个答案:

答案 0 :(得分:0)

尝试使用initcontainer检查S3存储桶的状态。我向您发送了以下示例:

’’ initContainers: -名称:安装 图片:busybox 命令: -wget -“ -O” -“ /work-dir/index.html” -http://kubernetes.io

答案 1 :(得分:0)

当前,您无法使用Terraform定义吊舱就绪门。

您可以在terreform-kubernetes github repo上创建功能请求,也可以自己添加此功能并创建请求请求。

目前,您可以使用initContainers(如Yuri所述) 或使用带有bash的命令将就绪探针与命令一起使用,以检查应用程序是否就绪以及文件是否存在。

但是,您可能最好的办法就是重写应用程序,这样它就可以处理尚不存在文件的情况。