我们在 Google Compute Engine 中运行了两个 VM 实例。第一个实例运行 NodeJs 实例,这些实例连接到安装在第二个 VM 实例上的 mongodb 服务器。大多数情况下,这些实例的 CPU 占用率较高,约为 70%。
我想为这些实例添加自动缩放功能以提高性能,但我不想完全重新安装实例,并尽可能保留公共和内部 IP 地址。
如果我是对的,我必须创建一个新的组实例并将两个现有实例添加到其中。
我的问题如下:
- 它会让我的实例保持运行并使用相同的 IP、防火墙设置……吗?
- 这是正确的做法吗?或者是否有办法根据需要增加现有实例的 CPU?
谢谢您的回答。
答案1
托管实例组的自动扩缩功能通常适用于无状态虚拟机实例。自动扩缩器会从托管实例组中添加或删除实例。因此,存储在虚拟机根磁盘上的任何数据都可能会丢失。
对于 NodeJs VM,如果它是无状态 VM,则可以使用自动缩放器。但是,对于 MongoDB VM,一种选择是升级机器的种类虚拟机并增加处理资源以适应您的工作负载。这称为Vertical Scaling
。另一个选择是Horizontal Scaling
通过分片功能MongoDB 的。
关于您的其他问题:
要保留你的 IP 外部地址(如果是临时地址),你可以推广它静态外部 IP 地址,并将其分配给HTTP(S) 负载均衡器。负载均衡器将在您的 NodeJs VM 实例(后端)之间分配用户请求。
您的 GCE 防火墙规则可能需要修改以符合负载均衡器要求。