如何使用预加载的内存启动n个应用程序/容器的实例

时间:2018-09-24 06:50:48

标签: docker kubernetes amazon-ecs amazon-elastic-beanstalk

背景: 我有一个语言处理Java应用程序,需要大约16MB的内存,并且在暴露Web服务之前需要大约40秒钟将资源初始化到该内存中。我是容器和相关技术的新手,所以很抱歉,如果我的问题很明显...

目标: 我想按需并以预加载/预配置状态提供数百个应用程序实例。 (例如,我可以打电话给AWS来建立我的应用程序的'n'个实例,它们将在<10秒内准备就绪。)

问题: 我期待我“能够”创建该应用程序的docker映像,对其进行初始化并暂停,从而能够按需克隆并“取消暂停”?您能否建议我想要做的事情是否可行,如果可行,您将如何处理。

AWS是我选择的平台,因此任何AWS风格的细节都将非常有用。

1 个答案:

答案 0 :(得分:0)

如果您不介意,我会将您的问题一分为二:
1.启动N个容器(或更可能按需扩展)
2.预加载内存。

#1是Kubernetes的面包和黄油,您可以在网上找到大量有关它的资源,所以让我专注于#2。

真正的问题是,您过于关注可能的解决方案,无法查看大图:
您想“预加载内存”以加快启动时间(嗯,您认为Java在40年代Magick内存预加载器不会做的事情?)。

另一种方法是启动容器,让Java消耗40秒钟的资源,但在此期间不将该容器提供给全世界。
Kubernetes提供了实现此目标的工具,请参见:
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/

希望这会有所帮助!