设置双栈服务和作业

借助双栈子网,您的 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 范围的双栈子网,请执行以下操作:

  1. 如需创建支持双栈子网的自定义模式网络,请运行以下命令:

    gcloud compute networks create NETWORK \
      --subnet-mode=custom \
      --enable-ula-internal-ipv6
    

    NETWORK 替换为将包含新子网的 VPC 网络的名称。

  2. 如需转换为或更新自定义模式网络以支持双栈子网,请运行以下命令:

    gcloud compute networks update NETWORK \
      --subnet-mode=custom \
      --enable-ula-internal-ipv6
    

    NETWORK 替换为将包含新子网的 VPC 网络的名称。

  3. 如需创建具有内部 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 区域。
  4. 在您创建的双栈子网上部署 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