这是我的问题:
- 我有一些服务器
- 我想将 REST 服务部署为 Docker 容器(但我做什么并不重要 - 因为它们是容器)
- 我想在虚拟机中运行它们 - 我的理解是这很常见 - 我的问题不是“是否在裸机上运行 Docker”,这个问题已经在网络上的其他地方得到解决,例如https://blog.docker.com/2016/04/physical-virtual-container-deployment/
我的理解是,您通常希望虚拟机与物理服务器的比例较高(整合率),但如果您计划部署到虚拟机的只是 Docker 容器,那么每个物理服务器是否有理由拥有超过 1 个虚拟机?
答案1
感谢您的澄清,但我的最初答案仍然很合适(我相信)。
您所做的实际上是在裸机上运行 Docker 容器。至少如果您真的要将单个 VM 固定到物理机上。您只是为其添加了额外的虚拟化层。通常这会为您提供有关资源限制等方面的更多选项。但如果您真的将 1 个 VM 匹配到 1 个物理机,您将不会使用任何这些。
您在澄清中链接的博客已经告诉您很多信息,并且还为您提供了在运行裸机或在虚拟机内运行时需要考虑的事项列表。
这些 REST 服务会产生多少负载?它们会“饱和”那台物理机吗?将虚拟环境扩展一台物理机会产生哪些额外的许可成本?正如您自己所说,您通常希望每台物理机拥有大量虚拟机,以提高硬件的利用率。另一方面,您总是希望这个数量足够低,以便有足够的备用资源来处理突然的激增,并且通常能够顺利运行这些虚拟机。
如果您查看这些 Docker 容器造成的平均和最大负载,这些 Docker 容器是否会使用足够的内存、CPU 能力等来有效利用硬件?如果是这样,您可能可以选择 1:1 匹配。如果不行,您可能可以向该物理机添加更多虚拟机。