借助双栈子网,您的 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 流量。
如需在 Google Cloud CLI 中为 Cloud Run 服务或作业添加包含内部 IPv6 范围的双栈子网,请执行以下操作:
如需创建支持双栈子网的自定义模式网络,请运行以下命令:
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