我可以在 GCP 上为一个虚拟机分配两个静态 IP 地址吗

我可以在 GCP 上为一个虚拟机分配两个静态 IP 地址吗

我们在 Google Cloud Platform 中有两个 Windows 服务器虚拟机,每个虚拟机都有自己的静态 IP 地址。我想暂时将其中一个静态 IP 的流量发送到另一个服务器,这样两个静态 IP 现在都会流向其中一个虚拟机。

目标是在进行一些服务器维护的同时将流量从一个服务器转移到另一个服务器。

从云控制台,我可以转到静态 IP 地址的管理页面,并相当简单地将 IP 地址的路由更改为其他 VM,但它给出了以下警告:

当前附加到实例 vm2(区域 us-central1-a)的静态 IP 地址将被分离。未附加到实例或负载均衡器的静态 IP 地址按小时费率计费 定价详情

这听起来像是我要用 VM1 替换 VM2 的静态 IP。这会干扰已经流向 VM2 的所有流量。有没有办法实现这一点,以便一段时间内两个 IP 地址都指向同一个 VM?当然,完成后我需要将它们切换回另一个方向。

也许我从一开始就做错了,任何帮助都将不胜感激。

答案1

实际上,你可以为一个虚拟机分配两个 IP 地址(有一些限制),方法是创建具有多个网络接口的实例。但是,我认为这种方式不可能实现您的目标,因为它有局限性。例如:

-单个实例中配置的每个网络接口都必须连接到不同的 VPC 网络。

-您只能在创建实例时配置网络接口。

我同意托德:更好的方法是配置负载均衡器。我建议您阅读负载平衡概述确定哪种类型的负载平衡更适合您的应用程序。例如,如果您决定使用网络负载平衡您可以按照描述的步骤进行这里

答案2

您可以为一个虚拟机实例获取多个外部 IP

默认情况下,虚拟机将分配一个临时外部 IP,您可以将其升级为静态外部 IP,该 IP 在停止和重启后将保持不变。额外的外部 IP 必须附加到指向虚拟机的转发规则。您也可以使用(或升级为)静态 IP。

您可能想要使用的命令:

为您的虚拟机实例创建一个 TargetInstance:

gcloud compute target-instances create <target-instance-name> --instance <instance-name> --zone=<zone>

请检查另一个线程

相关内容