如何在不停止运行应用程序的情况下垂直扩展谷歌云实例

Posted

技术标签:

【中文标题】如何在不停止运行应用程序的情况下垂直扩展谷歌云实例【英文标题】:How to vertically scale google cloud instance without stopping running app 【发布时间】:2017-12-15 16:09:54 【问题描述】:

我有一个 Node.js 应用程序,它提供了一个不可中断的服务。

但是应用程序的负载会随着时间的推移而变化并节省成本,我希望 vm 实例机器类型能够根据负载自动缩放(即当 CPU 利用率超过 80% 时,从 1 个 vCPU(3.75 GB 内存,n1 -standard-1) 到 2vCPU(7.5 GB 内存,n1-standard-2))

这可能吗?

PS:我已经研究过使用容器引擎和 kubernetes,但由于应用程序的运行方式,应用程序无法复制到多个 pod 并继续工作

【问题讨论】:

您可以实例化新虚拟机并在其上运行应用程序(不杀死旧虚拟机),然后将所有流量路由到新虚拟机,最后杀死旧虚拟机。由于您说“应用程序无法复制到多个 pod”,因此不确定此设置是否适合您。是吗? 这种设置对我来说是不可能的,但我可能不得不改变我的应用程序才能像这样工作。感谢@NikhilJindal 的帮助 【参考方案1】:

您只能更改已停止实例的机器类型,并且仅当实例处于 TERMINATED 状态时,该实例才被视为已停止。无法更改正在运行的实例的机器类型。

https://cloud.google.com/compute/docs/instances/changing-machine-type-of-stopped-instance

【讨论】:

以上是关于如何在不停止运行应用程序的情况下垂直扩展谷歌云实例的主要内容,如果未能解决你的问题,请参考以下文章

如何在不下载文件的情况下查找放置在谷歌云存储中的 csv 文件中的记录数

如何在谷歌云数据流中停止流式传输管道

谷歌云控制台中的磁盘空间问题

停止和启动深度学习谷歌云虚拟机实例导致 tensorflow 停止识别 GPU

谷歌云 AI 平台 jupyter notebook 实例即使在重置后也不会打开并且正在运行

谷歌云如何通过虚拟化实现可扩展性?