kubernetes - 如何在 kubernetes 中维护一组唯一的数字运算容器?
问题描述
我想在 kubernetes 中运行一组“容器”,每个容器仅在 docker 环境变量中有所不同(每个都搜索它自己的数据集,该数据集位于网络存储中,然后缓存到容器的 ram 中)。例如:
- 容器 1 -> 数据集 1
- 容器 2 -> 数据集 2
随着时间的推移,我想从这个“集合”中添加(有时删除)容器,但不想在这样做时重新启动所有容器。
根据我对 Kubernetes 的(幼稚)知识,我能看到的唯一方法是:
- 每个容器都可以是它自己的部署——但是有成千上万个容器,所以修改和管理会很痛苦。
所以我的问题是:
我可以使用 StatefulSet 来管理它吗?
1.1。当 StatefulSet 被“更新”时,它是否必须重新启动所有 pod,即使它们的“规范”没有改变?1.2 StatefulSets 是否允许每个独特的容器/pod 拥有自己的环境变量?
- 是否有任何 kubernetes 概念将部署“分组”到某个逻辑单元中?
- 关于如何在 Kubernetes 中实现这一点还有其他想法吗?
- docker swarm(或其他容器管理平台)会更适合我的用例吗?
解决方案
如果您希望您的容器最终完成其工作负载并终止(而不是永远处理加载到 RAM 中的单个项目),您应该在 Kubernetes 之上使用诸如 Celery 之类的作业队列来管理执行。在这种情况下,Celery 将完成所有的编排,包括在作业失败时重新启动作业。这比直接使用 Kubernetes 更易于管理。
Kubernetes 甚至提供了这种设置的官方示例。
推荐阅读
- php - 在浏览器中查看 xlsx 文件:php
- r - 在 Shiny 应用程序中使用 Python Selenium 和 ChromeDriver
- .net - Mono 可以创建静态库(.a 文件)以链接到 Rust 可执行文件吗?
- python - 使用 Python 将文件上传到 Google Drive(如果不存在)
- visual-studio - 试图卸载 Visual Studio。InstallCleanup.exe 不存在并且运行安装不会创建它
- python - 以倒计时间隔跳过python中的迭代
- python - 如何在 groupby 之后将 pandas.core.series.Series 转换回 Dataframe?
- github - 如何阻止 Vercel 预览部署出现在拉取请求中?
- javascript - 我如何获取数据统计值
- c# - 当前上下文中不存在“logonType”