在AWS集群重新启动后重新启动已完成的K8作业容器

时间:2020-08-04 22:44:51

标签: kubernetes kubernetes-pod

我有一个k8s作业吊舱,当我们使用kubectl apply部署服务时,该吊舱将休息呼叫发送到微服务以初始化Redis。但是,当aws集群重新启动时,k8s作业吊舱并没有恢复,因为它处于完成状态,只有微服务吊舱正在重新启动。

如何通过AWS Cluster重新启动来重新启动完成的作业窗格?

1 个答案:

答案 0 :(得分:0)

Kubernetes的设计具有很高的可用性,可以正常工作而不会出现故障和停机,因此“重启kubernetes集群” 并不常见。尽管我理解有些情况下您可能想在周末关闭一个开发集群以节省资金,并希望当启动它时,它将恢复到以前的状态。

完成后无法重新启动作业,因此这不是一个好选择。

您可以使用部署并以initcontainer的形式运行初始化脚本(发送其余调用的脚本),并在运行完成后运行pause container(因此它不使用资源)。

因此,现在当您重新启动cluser时,将安排初始化pod并运行init容器。请注意,在这种情况下,当运行Pod的节点发生故障时,该Pod将被重新安排,并且初始化Pod将再次运行。这看起来是一个合理的选择,但是您需要确保其余的调用是幂等的。

您可以做的另一件事是使用redis oparator为您处理配置。在this list个运算符上查找redis运算符。