设置双栈服务和作业

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

控制台

  1. 在 Google Cloud 控制台中:

    1. 启用 Compute Engine API:

      启用 Compute Engine API

    2. 前往 VPC 网络页面:

      进入 VPC 网络页面

  2. 如果您要创建新的自定义模式网络,请点击创建 VPC 网络。如果您使用的是现有 VPC 网络,请点击该 VPC 网络的名称以显示其 VPC 网络详情页面。

  3. 如果您要创建新的网络或转换现有网络,请输入名称,并确保子网创建模式设置为自定义,然后选择为此 VPC 网络配置 ULA 内部 IPv6 范围

  4. 子网标签页中,点击添加子网。在显示的面板中:

    1. 提供名称
    2. 选择区域
    3. 对于 IP 栈类型,请选择 IPv4 和 IPv6(双栈)
    4. 输入 IPv4 范围。这是子网的主要 IPv4 地址范围
    5. IPv6 访问权限类型选择内部

      如果内部选项不可用,请检查是否为网络分配了内部 IPv6 范围。

    6. 点击完成,然后点击创建

  5. 在您创建的双栈子网上部署 Cloud Run 服务执行作业。输入所需的服务或作业详细信息时,您可以按照以下步骤选择新的 IPv6 地址范围:

    1. 点击容器、卷、网络、安全性,然后选择网络标签页。
    2. 依次点击连接到 VPC 以获取出站流量将流量直接发送到 VPC
    3. 选择您在上一步中创建的网络
    4. 点击子网字段,选择新创建的 IPv6 地址范围。

    系统会使用子网的堆栈类型自动预配服务或作业。

gcloud

  1. 如需创建支持双栈子网的自定义模式网络,请运行以下命令:
gcloud compute networks create NETWORK \
    --subnet-mode=custom \
    --enable-ula-internal-ipv6

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

  1. 如需转换为或更新自定义模式网络以支持双栈子网,请运行以下命令:
gcloud compute networks update NETWORK \
    --subnet-mode=custom \
    --enable-ula-internal-ipv6

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

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