我正在寻找一个“简单”的部署系统,可以管理一个计算机集群。
我有一个Docker映像(托管在DockerHub上),它将在这个集群中以不同的环境参数运行。对于这个映像,我有一个docker_compose文件,我可以直接在机器上启动(这个文件现在正在工作)。
我正在寻找的是一个集群管理系统,我可以在其中添加物理计算机(节点),然后发出以下命令:
$ docker-compose up或
$ docker run --device /dev/sda -e ENV1 -e ENV2 image_id理想情况下,集群(管理器)将其调度在一个可用的节点上。我将加入到集群中的所有节点都有运行容器所需的资源,因此我对能够根据容器的硬件需求调度容器的集群管理系统不感兴趣。而且,它不一定需要支持Docker,只需能够在集群的节点上远程发出命令。理想情况下,这也是一个API,而不是命令行,我可以交谈。
我试过/看过的东西

欢迎任何建议!
发布于 2020-07-16 15:45:04
当谈到kubernetes和支持类似--device in docker的内容时,这的回答应该可以消除您的疑虑。
它在github的这线程中得到了广泛的讨论。虽然在kubernetes中没有确切的--device等效,但值得重复的是,可以在kubernetes Pods中使用主机设备,方法是按照这注释中的建议启用特权模式:
集装箱:-名称: foo .volumeMounts:- mountPath: /dev/snd名称: dev-snd securityContext: securityContext: true卷:- name: dev-snd hostPath: path: /dev/snd
它使您能够使用Pod将任何在特定节点上可用的设备挂载到您的hostPath中,并从上面的示例中提供诸如/dev/snd之类的辅助路径,从而使您能够使用主机上可用的声卡。
但是,您需要从安全的角度来决定在特定情况下运行特权容器是否可以接受。
如果您寻找更安全的方式来安装特定的主机设备,从而提供更细粒度的控制级别,请看一看设备插件,例如所提到的用于公开/dev/kvm或更一般的的特定主机,允许您通过设备cgroup将主机/dev下的几乎任何设备配置到kubernetes Pods中。
当您计划在多节点集群上运行和管理您的码头容器时,Kubernetes并不一定会造成过度,特别是如果您决定使用@DannyB在评论中已经建议的托管解决方案。值得一提的是,它目前可在所有主要云提供商中使用:GKE on GCP、EKS on AWS或AKS on E 236onE 137AzureE 238,这也说明了它的日益流行。
库伯内斯也是一个非常可扩展和动态开发的解决方案,在最近几年得到了迅速的普及,因此它绝对值得一看。
https://stackoverflow.com/questions/62932599
复制相似问题