借助双栈子网,您的 Cloud Run 服务和作业可以将 IPv4 和内部 IPv6 流量发送到具有直接 VPC 出站流量的 VPC 网络。您可以更改现有 Cloud Run 服务或作业的栈类型,也可以将现有子网更新为双栈子网。
子网类型
VPC 网络支持以下 Compute Engine 子网类型:
双栈限制
在更改现有 Cloud Run 服务或作业的堆栈类型之前,请考虑以下限制:
Cloud Run 仅支持 IPv6 访问权限类型设置为内部的子网。详细了解 IPv6 地址的内部和外部访问权限类型。
只有自定义模式 VPC 网络中的子网支持双栈。如需为双栈子网提供内部访问权限类型,必须启用 VPC 网络内部 IPv6 范围。将 VPC 网络设置或转换为自定义模式。
与仅 IPv4 子网相比,双栈子网可能会出现较高的冷启动延迟时间,从而限制应用扩容的速度。
不支持 NAT64。
在服务或作业中添加双栈子网
双栈子网同时具有 IPv4 和 IPv6 地址范围。Cloud Run 服务和作业只能通过使用内部 IPv6 地址的子网发送 IPv6 流量。
如需在 Cloud Run 服务或作业中添加具有内部 IPv6 范围的双栈子网,请执行以下操作:
控制台
在 Google Cloud 控制台中:
启用 Compute Engine API:
前往 VPC 网络页面:
如果您要创建新的自定义模式网络,请点击创建 VPC 网络。如果您使用的是现有 VPC 网络,请点击该 VPC 网络的名称以显示其 VPC 网络详情页面。
如果您要创建新的网络或转换现有网络,请输入名称,并确保子网创建模式设置为自定义,然后选择为此 VPC 网络配置 ULA 内部 IPv6 范围。
在子网标签页中,点击添加子网。在显示的面板中:
- 提供名称。
- 选择区域。
- 对于 IP 栈类型,请选择 IPv4 和 IPv6(双栈)。
- 输入 IPv4 范围。这是子网的主要 IPv4 地址范围。
为 IPv6 访问权限类型选择内部。
如果内部选项不可用,请检查是否为网络分配了内部 IPv6 范围。
点击完成,然后点击创建。
在您创建的双栈子网上部署 Cloud Run 服务或执行作业。输入所需的服务或作业详细信息时,您可以按照以下步骤选择新的 IPv6 地址范围:
- 点击容器、卷、网络、安全性,然后选择网络标签页。
- 依次点击连接到 VPC 以获取出站流量和将流量直接发送到 VPC。
- 选择您在上一步中创建的网络。
- 点击子网字段,选择新创建的 IPv6 地址范围。
系统会使用子网的堆栈类型自动预配服务或作业。
gcloud
- 如需创建支持双栈子网的自定义模式网络,请运行以下命令:
gcloud compute networks create NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
将 NETWORK
替换为将包含新子网的 VPC 网络的名称。
- 如需转换为或更新自定义模式网络以支持双栈子网,请运行以下命令:
gcloud compute networks update NETWORK \ --subnet-mode=custom \ --enable-ula-internal-ipv6
将 NETWORK
替换为将包含新子网的 VPC 网络的名称。
- 如需创建具有内部 IPv6 范围的双栈子网,请使用双栈设置运行
subnets create
命令:
gcloud compute networks subnets create SUBNET \ --network=NETWORK \ --range=PRIMARY_IPv4_RANGE \ --stack-type=IPV4_IPV6 \ --ipv6-access-type=INTERNAL \ --region=REGION
替换以下内容:
SUBNET
:新子网的名称。NETWORK
:将包含新子网的 VPC 网络的名称。PRIMARY_IPv4_RANGE
:新子网的主要 IPv4 范围(采用 CIDR 表示法)。如需了解详情,请参阅 IPv4 子网范围。REGION
:将在其中创建新子网的 Google Cloud 区域。
- 在您创建的双栈子网上部署 Cloud Run 服务或执行作业。系统会使用子网的堆栈类型自动预配服务或作业。
将子网从单栈更改为双栈
如需将内部 IPv6 子网范围添加到自定义模式 VPC 网络中的现有 IPv4 子网,请参阅将子网的栈类型更改为双栈。然后,在双栈子网上部署服务或执行作业。
将子网从双栈更改为单栈
由于 Compute Engine IPv6 访问权限类型为内部,因此不支持将子网的栈类型从 IPv4 和 IPv6(双栈)更改为仅限 IPv4(单栈)。如需将服务或作业的双栈子网更改为单栈子网,请在仅限 IPv4(单栈)子网上部署服务或执行作业。
验证网络和子网
如需检查您的服务或作业是否在 VPC 网络中,请运行以下命令:
gcloud run services describe SERVICE_NAME --region=REGION
将 REGION
替换为新子网的 Google Cloud 创建区域。
以下示例输出显示了您的网络和子网:
VPC Access:
Network: example-network
Subnet: example-subnet
Egress: private-ranges-only