如何在Kubernetes中创建post-init容器?

我正在尝试在K8上创建一个redis集群.在所需数量的redis容器联机后,我需要一个sidecar容器来创建集群.

我有两个容器,redis和一辆边车.我正在以6个副本的状态运行它们.我需要sidecar容器只为每个副本运行一次然后终止.它正在这样做,但K8s继续重新运行边车.

我已尝试在容器级别设置restartPolicy,但它无效.似乎K8s只支持pod级别.我不能使用它,因为我想重新启动redis容器,而不是边车.

是否有类似post-init容器的东西?我的sidecar需要在主redis容器之后运行才能使它加入集群.所以init容器没用.

用K8s 1.6解决这个问题的最佳方法是什么?

最佳答案 我建议你使用Kubernetes Jobs:

https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/

这种工作将一直运行,直到完成一次.在此作业中,您可以尝试检测是否所有必需节点都可用以形成群集.

点赞