我有两台带有临时外部 IP 的服务器。
服务器A 服务器B
我有一个静态外部 IP 地址(ABCD),当前连接到 ServerA。
ServerA 是我的主负载均衡器,ServerB 是我的辅助负载均衡器。如何在 Google Cloud 上使用浮动 IP。
我需要使用 gcloud 吗?这是一个好的解决方案吗?
故障转移命令示例:
gcloud config set project project-name
gcloud compute instances delete-access-config ServerA --access-config-name 'External NAT
gcloud compute instances delete-access-config ServerB --access-config-name 'External NAT'
gcloud compute instances add-access-config ServerB --address A.B.C.D
答案1
发布我的评论作为对其他正在查看此主题的用户的回答:
GCE 目前不支持虚拟 IP/浮动 IP。功能请求已创建。您可以参考此关联订阅更新。目前的解决方法是使用 GCE 负载均衡器
答案2
Google 最近进行了更改并允许使用浮动 IP,如下所述。
解决方案归结为下面 ----- 和 ----- 之间的两行代码,不考虑创建您将在其中启动实例的 ip-fallover 网络
#!/bin/bash
export CLOUDSDK_PYTHON=/opt/rh/python27/root/usr/bin/python2.7
export PATH=/opt/rh/python27/root/usr/bin:$PATH
export token=$(gcloud auth print-identity-token)
export instance_name=$(curl -H "Authorization: Bearer $token" -s -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/name")
export instance_zone=$(curl -H "Authorization: Bearer $token" -s -H "Metadata-Flavor: Google" "http://metadata.google.internal/computeMetadata/v1/instance/zone" | awk -F '/' '{ print $NF }')
export vip=10.11.12.13/32
ip ad del $vip dev eth0
gcloud compute routes delete floating --quiet
gcloud compute routes create floating --destination-range $vip --network ip-failover --priority 500 --next-hop-instance-zone $instance_zone --next-hop-instance $instance_name --quiet
ip ad ad $vip dev eth0
要更完整地了解需要做什么,请查看下面链接的选项4。
https://cloud.google.com/solutions/best-practices-floating-ip-addresses