将外部 IPv4 地址移动到其他项目
静态外部 IPv4 地址与 Google Cloud 项目相关联,只能在该项目中使用。不过,您可以将静态外部 IPv4 地址从一个项目移动到另一个项目。
IAM 角色和权限
如需移动区域 IP 地址,您必须拥有以下权限:
- 源项目中的
compute.addresses.delete
- 目的地项目中的
compute.addresses.create
如需移动全球 IP 地址,您必须拥有以下权限:
- 源项目中的
compute.globalAddresses.delete
- 目的地项目中的
compute.globalAddresses.create
包含这些权限的示例角色:
- Compute Admin (
roles/compute.admin
) - Compute Network Admin (
roles/compute.networkAdmin
) - Compute Public IP Admin (
roles/compute.publicIpAdmin
)
准备工作
- 验证您是否可以根据项目的系统限制移动 IP 地址。请参阅以下每项目系统限制:
如果系统限制值为
0
,则您无法移动 IP 地址。如果您需要迁移 IP 地址,请与您的 Google Cloud 销售团队联系。 - 验证您想要将 IP 地址移动到的项目是否存在。如果不存在,请创建项目。
- 在目标项目中启用 Compute Engine API。
- 验证目标项目在您要移动的 IP 地址的相应配额中是否有足够的可用容量:
- 对于区域级外部 IP 地址,请查看静态 IP 地址配额。
- 对于全球外部 IP 地址,请查看静态 IP 地址全球配额。
- 验证您要移动的 IP 地址是否具有以下属性:
- 访问类型是外部。
- IP 版本为 IPv4。
- 该 IP 地址已预留(静态),不是临时性的。 如需预留 IP 地址,请参阅预留新的静态外部 IP 地址。
- 该 IP 地址未被任何资源(例如虚拟机实例或转发规则)使用。如需取消分配 IP 地址,请参阅取消分配静态外部 IP 地址。
- 该 IP 地址未被 Cloud 支持团队作为连续 IP 地址范围的一部分进行预留。如需了解详情,请参阅移动外部 IPv4 地址失败。
限制
如果您取消分配某个 IP 地址,则必须等待一段时间,然后才能移动该地址:
- 对于全球 IP 地址,等待 10 分钟。
- 对于区域 IP 地址,请等待 20 分钟。
您无法更改区域 IP 地址的区域。
您无法将全球 IP 地址转换为区域 IP 地址或将区域 IP 地址转换为全球 IP 地址。
您无法在项目之间移动 BYOIP 地址。
将外部 IPv4 地址移动到其他项目
您可以将区域或全球外部 IPv4 地址从一个项目移动到另一个项目。移动 IP 地址时,默认情况下,系统会为 IP 地址资源分配相同的名称和说明。但是,您可以选择分配新名称或说明。将外部 IPv4 地址移动到新项目后,您可以将其分配给该项目中的合格资源。
控制台
在 Google Cloud 控制台中,前往 IP 地址。
在要移动的 IP 地址的更多操作菜单 (
) 中,选择移至其他项目。点击选择项目,然后选择要将 IP 地址移动到的项目。
可选:为 IP 地址输入新的名称。
可选:为 IP 地址输入新的说明。
点击移动。
gcloud
命令选项取决于您是移动区域 IP 地址还是全球 IP 地址,以及您是保留还是替换地址名称或说明。以下示例介绍其中一些组合。
将区域级外部 IPv4 地址移动到另一个项目:
gcloud compute addresses move ADDRESS_NAME \ --target-project=TARGET_PROJECT \ --region=REGION
将区域外部 IPv4 地址移动到其他项目,并在新项目中为该地址分配新名称和说明:
gcloud compute addresses move ADDRESS_NAME \ --target-project=TARGET_PROJECT \ --new-name=NEW_NAME \ --description=NEW_DESCRIPTION \ --region=REGION
将全球外部 IPv4 地址移动到另一个项目:
gcloud compute addresses move ADDRESS_NAME \ --target-project=TARGET_PROJECT \ --global
请替换以下内容:
ADDRESS_NAME
:您要移动的 IP 地址资源的名称。TARGET_PROJECT
:要将 IP 地址移动到的项目的名称或 ID。REGION
:IP 地址的区域。NEW_NAME
:新项目中 IP 地址资源的新名称。NEW_DESCRIPTION
:新项目中 IP 地址资源的新名称。如果省略,则系统将使用资源的现有说明(如果有)。
如需了解详情,请参阅 gcloud compute addresses
move
参考文档。
API
请求详细信息取决于您是移动区域 IP 地址还是全球 IP 地址,以及您是保留还是替换地址名称或说明。以下示例介绍其中一些组合。
将区域级外部 IPv4 地址移动到另一个项目:
POST https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT/regions/REGION/addresses/ADDRESS_NAME/move { "destination_address": "projects/TARGET_PROJECT/global/addresses/ADDRESS_NAME", }
将区域外部 IPv4 地址移动到其他项目,并在新项目中为该地址分配新名称和说明:
POST https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT/regions/REGION/addresses/ADDRESS_NAME/move { "destination_address": "projects/TARGET_PROJECT/global/addresses/NEW_NAME", "description": "NEW_DESCRIPTION", }
将全球外部 IPv4 地址移动到另一个项目:
POST https://www.googleapis.com/compute/v1/projects/SOURCE_PROJECT/global/addresses/ADDRESS_NAME/move { "destination_address": "projects/TARGET_PROJECT/global/addresses/ADDRESS_NAME", }
请替换以下内容:
ADDRESS_NAME
:您要移动的 IP 地址资源的名称。SOURCE_PROJECT
:要将 IP 地址移动到的项目的名称或 ID。TARGET_PROJECT
:要将 IP 地址移动到的项目的名称或 ID。REGION
:IP 地址的区域。NEW_NAME
:新项目中 IP 地址资源的新名称。NEW_DESCRIPTION
:新项目中 IP 地址资源的新名称。如果省略,则系统将使用资源的现有说明(如果有)。
问题排查
移动外部 IPv4 地址失败
当您尝试移动外部 IPv4 地址时,可能会看到以下错误消息:
Invalid resource usage: 'Cannot move address that belongs to a reserved address
range. Address range must be disassembled first.'
如果您看到此消息,则表示该 IP 地址已被 Cloud 支持团队作为连续 IP 地址范围的一部分进行预留。如需迁移此类型的 IP 地址,请与 Cloud 支持团队联系。Cloud 支持团队可以将整个 IP 地址范围移至其他项目。不支持仅移动部分范围。
如需检查 IP 地址是否属于 Cloud 支持团队预留的范围,请执行以下操作:
- 列出静态外部 IP 地址,然后找到要检查的 IP 地址。
- 检查 IP 地址的名称。如果 IP 地址被 Cloud 支持团队预留,则其名称由一个字符串后跟 IP 地址的四个字节组成,以连字符分隔。例如,如果 IP 地址为
198.51.100.2
并且被 Cloud 支持团队预留,则名称采用以下格式:STRING-198-51-100-2
。作为同一范围的一部分预留的其他 IP 地址共享同一字符串,后跟其 IP 地址。