我想在kubernetes中运行“一组”容器,每个容器只在docker环境变量中不同(每个容器都搜索位于网络存储中的自己的数据集,然后缓存到容器的ram中)。例如:
随着时间的推移,我想从这个"set“中添加(有时是移除)容器,但是在这样做的时候不想重新启动所有的容器。
从我对kubernetes的(天真的)了解来看,我看到这样做的唯一方法是:
所以我的问题是:
发布于 2019-07-03 10:11:22
根据你的描述,StatefulSet是你所需要的。
1.1。当一个StatefulSet被“更新”时,它必须重新启动所有的豆荚,即使它们的“规范”没有改变?
您可以选择合适的更新策略。我建议RollingUpdate,但你可以尝试任何适合你的。
还可以查看这个教程。
1.2 StatefulSets是否允许每个唯一的容器/吊舱都有自己的环境变量?
是的,因为它们的命名是一致的(name-0、name-1、name-2等)。您可以使用主机名(荚名称)索引。
如果有帮助的话请告诉我。
发布于 2019-07-09 13:57:40
如果您期望容器最终完成其工作负载并终止(而不是永远处理加载在RAM中的单个项目),则应该使用一个作业队列,例如Kubernetes之上的芹菜来管理执行。在这种情况下,芹菜将做所有的编曲,包括重新开始工作,如果他们失败了。这比直接使用Kubernetes更易于管理。
Kubernetes甚至提供了这样一个设置的官方的例子。
https://stackoverflow.com/questions/56695045
复制相似问题