据我了解,它不会为每个新服务创建一个虚拟机,但它会将 Warden 容器中的所有服务运行到“DEA”虚拟机中,该虚拟机位于 IaaS 提供商(如 Openstack、AWS 等)的某个位置。
如果将“服务”一词替换为“应用程序”,则此说法是正确的。区分这一点很重要,因为 Cloud Foundry 也有服务的概念,这与应用程序不同。
总而言之,Cloud Foundry 运行一个或多个 DEA VM。这些是在您的 IaaS 上配置的,通常使用 Bosh。推送到 Cloud Foundry 的应用程序将在 DEA VM 内运行。在 DEA 上,应用程序将在一个容器内运行,该容器将应用程序隔离开来。
我不明白的是:DEA VM 是否随时“保留”X 资源(所以即使没有部署服务)?在这种情况下,我将始终为最大资源付费。
DEA 虚拟机是在您部署 Cloud Foundry 时创建的。此时,它们被分配了资源限制(RAM、VCPUS 等)。在没有部署任何应用程序的情况下,DEA VM 上运行的东西并不多,因此这些资源中的大部分都未被使用。
当您或您的用户部署应用程序时,DEA 将创建新容器来运行您的应用程序。容器的创建速度非常非常快,因此不需要预先分配。此外,容器本身并不真正消耗资源,它们只是为在其中运行的应用程序设置了限制。
是应用程序本身消耗了大量资源,例如磁盘空间、内存和 CPU。不过,这只发生在应用程序运行时。
另一个问题:如果 DEA 已“满”怎么办?
Cloud Foundry 只会在有空间的情况下在 DEA 上部署应用程序。当一个填满时,它会停止使用新的应用程序。其他 DEA(如果您有的话)将需要使用新应用,否则您的用户会收到错误消息,指出新应用没有足够的空间。
我也需要扩展它是可能的吗?即时创建另一个 DEA VM 并将一些服务移到那里?
如果您使用 Bosh 进行部署,答案是肯定的。你可以告诉 Bosh 你想部署多少 DEA,它会成功的。
我怎样才能找到一些相关的文档?我发现 CloudFoundry 网站没有太多信息
我建议从 Bosh 文档开始。那些是here。然后查看文档页面here 上的“Running Cloud Foundry”列。
对于 OpenStack,您可以查看这些instructions,如果您有任何问题,vcap-dev 邮件列表是向他们提问的好地方。