为 Cloud Workstations 设置自定义网域

如需访问工作站,您可以指定受信任的自定义网域,而不是使用 cloudworkstations.dev 网域。

架构

如需将 Cloud Workstations 与自定义主机名搭配使用,请设置专用集群,并为专用集群的 HTTP 入站流量设置 Private Service Connect (PSC) 端点。您还必须创建一个具有 PSC 后端的应用负载均衡器,该后端以针对您的专用集群创建的 PSC 端点为目标。此应用负载均衡器可以是外部或内部负载均衡器,用于管理自定义网域的 SSL 证书。

下图展示了具有自定义网域的集群:

图 1. 具有自定义网域的集群

准备工作

如需设置 Cloud Workstations 自定义域名,请按照以下步骤操作:

  1. 创建专用集群,并使用 gcloud CLI 或 REST API 命令指定可信的自定义网域。

  2. 在用于工作站集群项目的同一项目中创建具有 Private Service Connect (PSC) 后端的应用负载均衡器。请注意以下几点:

    1. 如果您希望工作站是专用的(无法通过公共互联网访问),请务必创建内部负载均衡器。为此,请创建一个专用 DNS 区域,并添加一条记录,将该网域映射到负载均衡器使用的内部 IP 地址。如需详细了解如何创建内部负载均衡器,请参阅内部应用负载均衡器。

    2. 您需要在负载均衡器中引用的服务连接可在创建集群后在工作站集群资源中获取。

    3. 请务必获取证书,并在负载均衡器上将其指定为网域的通配符证书,例如 *.us-west1-cluster1.example.com。如需了解您选择的负载均衡器支持的证书类型,请参阅证书和 Google Cloud 负载均衡器。

    4. 您也可以在其他项目中创建负载均衡器,只要将其添加到 PrivateClusterConfig.allowedProjects 列表即可。

    5. 如果您的组织中有多个工作站集群,则可以使用单个负载均衡器,并为每个集群配置单独的后端服务、证书和路由规则。

  3. 设置域名系统 (DNS)。由于此网域由您管理,因此请通过将所提供网域的所有子网域映射到负载均衡器,为此网域设置 DNS。例如,为 us-west1-cluster1.example.com 创建 DNS 区域,并添加一个条目,将 *.us-west1-cluster1.example.com 映射到负载均衡器使用的外部 IP 地址。

  4. 如需使用自定义域名访问工作站,请使用您创建的集群创建工作站配置,然后使用该工作站配置创建工作站。

  5. 启动工作站并检查网址。指定自定义网域后,工作站网址将采用以下格式:

    https://PORT-WORKSTATION_NAME.DOMAIN
    

    网址的以下部分取决于您的配置:

    • PORT:端口号,默认为端口 80。
    • WORKSTATION_NAME:您的工作站名称。
    • DOMAIN:您的集群专用域名

创建专用集群

创建具有专用端点的专用工作站集群:

gcloud

  1. 在开始之前,请确保您已通过运行 gcloud init 初始化 gcloud CLI,并指定了默认项目。以下示例假定您已设置默认项目。

  2. 如需创建专用工作站集群,请运行以下命令:

    gcloud workstations clusters create WORKSTATION_CLUSTER \
      --region=REGION \
      --domain=DOMAIN \
      --network=NETWORK \
      --subnetwork=SUBNETWORK \
      --enable-private-endpoint
    

    替换以下内容:

    • WORKSTATION_CLUSTER:要创建的工作站集群的名称。
    • REGION:集群所在区域的名称。
    • DOMAIN:Cloud Workstations 用于 HTTP 入站流量的域名。使用此集群独有的子网域,例如 us-west1-cluster1.example.com。
    • NETWORK:VPC 网络的名称。如果省略,则使用默认 VPC 网络。
    • SUBNETWORK:VPC 网络中的子网名称。如果同时省略网络和子网,则使用默认 VPC 网络,并使用指定 REGION 中的默认子网。

如需详细了解此 gcloud CLI 命令,请参阅 gcloud workstations clusters create 参考文档。

curl

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"  -d '{"domain_config": {"domain": "DOMAIN"}, "private_cluster_config": {"enable_private_endpoint":true}, "network": "NETWORK", "subnetwork": "SUBNETWORK"}'  https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstation_cluster_id=WORKSTATION_CLUSTER

替换以下内容:

  • DOMAIN:Cloud Workstations 用于 HTTP 入站流量的域名。这必须是此集群独有的子网域,例如 us-west1-cluster1.example.com。
  • NETWORK:VPC 网络的名称。 如果省略,则使用默认 VPC 网络。
  • SUBNETWORK:VPC 网络中的子网名称。如果同时省略网络和子网,则使用默认 VPC 网络,并使用指定 REGION 中的默认子网。
  • PROJECT_NAME:项目的名称。
  • REGION:集群所在区域的名称。
  • WORKSTATION_CLUSTER:要创建的工作站集群的名称。

如需详细了解此 API 方法,请参阅 workstationClusters.create 参考文档。

REST

POST https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstationClusterId=WORKSTATION_CLUSTER
{
  "domainConfig": {
    "domain": "DOMAIN"
  },
  "privateClusterConfig": {
    "enablePrivateEndpoint": true
  },
  "network": "NETWORK",
  "subnetwork": "SUBNETWORK"
}

替换以下内容:

  • PROJECT_NAME:项目的名称。
  • REGION:集群所在区域的名称。
  • WORKSTATION_CLUSTER:要创建的工作站集群的名称。
  • DOMAIN:Cloud Workstations 用于 HTTP 入站流量的域名。这应该是此集群独有的子网域,例如 us-west1-cluster1.example.com。
  • NETWORK:VPC 网络的名称。 如果省略,则使用默认 VPC 网络。
  • SUBNETWORK:VPC 网络中的子网名称。如果同时省略网络和子网,则使用默认 VPC 网络,并使用指定 REGION 中的默认子网。

如需详细了解此 API 方法,请参阅 workstationClusters.create 参考文档。

创建具有 PSC 后端的应用负载均衡器

请按照以下 gcloud CLI 和 REST API 步骤创建具有 PSC 后端的应用负载均衡器:

  1. 创建 NEG 以连接到已发布的服务
  2. 向全球外部应用负载均衡器添加后端
  3. 创建网址映射以将传入请求路由到相应后端服务
  4. 创建目标 HTTPS 代理
  5. 创建全局地址
  6. 创建转发规则
  7. 可选:配置区域级或内部应用负载均衡器

创建 NEG 以连接到已发布的服务

创建指向已发布服务的 NEG 时,您需要该服务的服务连接 URI。服务连接的格式为 projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME。 您可以在工作站集群资源中找到该 URI。

gcloud

gcloud compute network-endpoint-groups create NEG_NAME \
  --network-endpoint-type=private-service-connect \
  --psc-target-service=TARGET_SERVICE \
  --region=REGION \
  --network=NETWORK \
  --subnet=SUBNET

替换以下内容:

  • NEG_NAME:网络端点组的名称。
  • TARGET_SERVICE:服务连接的 URI。
  • REGION:要在其中创建网络端点组的区域。该区域必须与目标服务的区域相同。
  • NETWORK:要在其中创建网络端点组的 VPC 网络。如果省略,则使用默认网络。
  • SUBNET:要在其中创建网络端点组的子网。子网必须与目标服务位于同一区域。如果您指定了网络,则必须指定子网。如果同时省略网络和子网,则使用默认网络,并使用指定 REGION 中的默认子网。

如需详细了解此 gcloud CLI 命令,请参阅 gcloud compute network-endpoint-groups create 参考文档。

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/networkEndpointGroups
{
  "pscTargetService": "TARGET_SERVICE",
  "networkEndpointType": "PRIVATE_SERVICE_CONNECT",
  "name": "NEG_NAME",
  "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK",
  "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET"
}

替换以下内容:

  • PROJECT_NAME:项目的名称。
  • REGION:要在其中创建网络端点组的区域。该区域必须与目标服务的区域相同。
  • TARGET_SERVICE:服务连接的 URI。
  • NEG_NAME:网络端点组的名称。
  • NETWORK:要在其中创建网络端点组的 VPC 网络。如果省略,则使用默认网络。
  • SUBNET:要在其中创建网络端点组的子网。子网必须与目标服务位于同一区域。如果您指定了网络,则必须指定子网。如果同时省略网络和子网,则使用默认网络,并使用指定 REGION 中的默认子网。

将后端添加到全球外部应用负载均衡器

gcloud

  1. 为目标服务创建后端服务:

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTPS \
    --global
    

    将 BACKEND_SERVICE_NAME 替换为后端服务的名称。

  2. 添加指向目标服务的 Private Service Connect NEG。

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
    --network-endpoint-group=NEG_NAME \
    --network-endpoint-group-region=NEG_REGION \
    --global
    

    请替换以下内容:

    • BACKEND_SERVICE_NAME:后端服务的名称。
    • NEG_NAME:网络端点组的名称。
    • NEG_REGION:网络端点组的区域。

如需详细了解此 gcloud CLI 命令,请参阅 gcloud compute backend-services create 和 gcloud compute backend-services add-backend 参考文档。

REST

  1. 为目标服务创建后端服务:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices
    {
      "protocol": "HTTPS",
      "loadBalancingScheme": "EXTERNAL_MANAGED",
      "name": "BACKEND_SERVICE_NAME"
    }
    

    将 BACKEND_SERVICE_NAME 替换为后端服务的名称。

  2. 添加指向目标服务的 Private Service Connect NEG。

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME
    {
      "backends": [
        {
          "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/NEG_REGION/networkEndpointGroups/NEG_NAME "
        }
      ]
    }
    

    替换以下内容:

    • PROJECT_NAME:项目的名称。
    • BACKEND_SERVICE_NAME:后端服务的名称。
    • NEG_REGION:网络端点组的区域。
    • NEG_NAME:网络端点组的名称。

创建网址映射以将传入的请求路由到后端服务

gcloud

gcloud compute url-maps create URL_MAP_NAME \
  --default-service=BACKEND_SERVICE_NAME \
  --global

替换以下内容:

  • URL_MAP_NAME:要创建的网址映射的名称。
  • BACKEND_SERVICE_NAME:当此网址映射没有映射时,用于请求的后端服务的名称。

如需详细了解此 gcloud CLI 命令,请参阅 gcloud compute url-maps create 参考文档。

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps
{
  "name": "URL_MAP_NAME",
  "defaultService": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME "
}

替换以下内容:

  • PROJECT_NAME:项目的名称。
  • URL_MAP_NAME:要创建的网址映射的名称。
  • BACKEND_SERVICE_NAME:当此网址映射没有映射时,用于请求的后端服务的名称。

创建一个目标 HTTPS 代理

创建一个目标 HTTPS 代理将请求路由到您的网址映射。该代理属于负载均衡器,保存用于 HTTPS 负载均衡的 SSL 证书,因此您还需要在此步骤中加载证书:

gcloud

gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
  --ssl-certificates=SSL_CERTIFICATE_NAME \
  --url-map=URL_MAP_NAME \
  --global

替换以下内容:

  • TARGET_HTTPS_PROXY_NAME:要创建的目标 HTTPS 代理的名称。
  • SSL_CERTIFICATE_NAME:与负载均衡器关联的 SSL 证书。
  • URL_MAP_NAME:网址映射资源。

如需详细了解此 gcloud CLI 命令,请参阅 gcloud compute target-https-proxies create 参考文档。

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies
{
  "sslCertificates": [
    "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/sslCertificates/SSL_CERTIFICATE_NAME"
  ],
  "urlMap": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps/URL_MAP_NAME",
  "name": "TARGET_HTTPS_PROXY_NAME"
}

替换以下内容:

  • PROJECT_NAME:项目的名称。
  • SSL_CERTIFICATE_NAME:与负载均衡器关联的 SSL 证书。
  • URL_MAP_NAME:网址映射资源。
  • TARGET_HTTPS_PROXY_NAME:要创建的目标 HTTPS 代理的名称。

创建全局地址

预留一个供负载均衡器使用的静态 IP 地址:

gcloud

gcloud compute addresses create LB_IP_ADDRESS_NAME \
  --global

替换以下内容:

  • LB_IP_ADDRESS_NAME:负载均衡器的预留静态外部或内部 IP 地址的名称。

如需详细了解此 gcloud CLI 命令,请参阅 gcloud compute addresses create 参考文档。

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses
{
  "name": "LB_IP_ADDRESS_NAME"
}

替换以下内容:

  • PROJECT_NAME:项目的名称。
  • LB_IP_ADDRESS_NAME:负载均衡器的预留静态外部或内部 IP 地址的名称。

创建转发规则

创建转发规则以将传入请求路由到相应代理:

gcloud

gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
  --load-balancing-scheme=EXTERNAL_MANAGED \
  --network-tier=PREMIUM \
  --address=LB_IP_ADDRESS_NAME  \
  --target-https-proxy=TARGET_HTTPS_PROXY_NAME  \
  --global \
  --ports=443

替换以下内容:

  • HTTPS_FORWARDING_RULE_NAME:要创建的转发规则的名称。
  • LB_IP_ADDRESS_NAME:负载均衡器的预留静态外部或内部 IP 地址的名称。
  • TARGET_HTTPS_PROXY_NAME:接收流量的目标 HTTPS 代理。

如需详细了解此 gcloud CLI 命令,请参阅 gcloud compute forwarding-rules create 参考文档。

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/forwardingRules
{
  "loadBalancingScheme": "EXTERNAL_MANAGED",
  "networkTier": "PREMIUM",
  "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/LB_IP_ADDRESS_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies/TARGET_HTTPS_PROXY_NAME",
  "name": "HTTPS_FORWARDING_RULE_NAME",
  "portRange": "443-443"
}

替换以下内容:

  • PROJECT_NAME:项目的名称。
  • LB_IP_ADDRESS_NAME:负载均衡器的预留静态外部或内部 IP 地址的名称。
  • TARGET_HTTPS_PROXY_NAME:接收流量的目标 HTTPS 代理。
  • HTTPS_FORWARDING_RULE_NAME:要创建的转发规则的名称。

配置区域级或内部应用负载均衡器

如果您要配置区域级外部应用负载均衡器(例如,为了满足数据驻留要求)或内部应用负载均衡器,请注意以下要求。在配置区域级负载均衡器资源之前,请确保您已创建指向工作站集群的 Private Service Connect NEG,如创建 NEG 以连接到已发布的服务中所述。

  1. 配置代理专用子网:基于 Envoy 的区域级负载均衡器需要在负载均衡器所在的区域和 VPC 网络中配置代理专用子网。您必须先创建代理专用子网,然后才能创建转发规则:

    gcloud

    gcloud compute networks subnets create PROXY_ONLY_SUBNET \
      --purpose=REGIONAL_MANAGED_PROXY \
      --role=ACTIVE \
      --region=REGION \
      --network=NETWORK \
      --range=PROXY_ONLY_RANGE
    

    替换以下内容:

    • PROXY_ONLY_SUBNET:代理专用子网的名称。
    • REGION:工作站集群和负载均衡器所在的区域。
    • NETWORK:工作站集群和负载均衡器所在的 VPC 网络。
    • PROXY_ONLY_RANGE:VPC 网络中未使用的 CIDR 块(例如 10.0.0.0/24),最小大小为 /26(64 个地址)。

    如需了解详情,请参阅基于 Envoy 的负载均衡器的代理专用子网和 gcloud compute networks subnets create 参考文档。

    REST

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/subnetworks
    {
      "name": "PROXY_ONLY_SUBNET",
      "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK",
      "ipCidrRange": "PROXY_ONLY_RANGE",
      "purpose": "REGIONAL_MANAGED_PROXY",
      "role": "ACTIVE"
    }
    

    替换以下内容:

    • PROJECT_NAME:项目的名称。
    • REGION:工作站集群和负载均衡器所在的区域。
    • PROXY_ONLY_SUBNET:代理专用子网的名称。
    • NETWORK:工作站集群和负载均衡器所在的 VPC 网络。
    • PROXY_ONLY_RANGE:VPC 网络中未使用的 CIDR 块(例如 10.0.0.0/24),最小大小为 /26(64 个地址)。
  2. 创建区域级负载均衡器资源:创建后端服务,添加 Private Service Connect NEG 后端,创建网址映射,创建目标 HTTPS 代理,并在工作站集群所在的区域预留静态 IP 地址:

    gcloud

    1. 创建区域后端服务。对于区域级外部应用负载均衡器,请将 --load-balancing-scheme 设置为 EXTERNAL_MANAGED;对于内部应用负载均衡器,请将 INTERNAL_MANAGED 设置为:

      gcloud compute backend-services create BACKEND_SERVICE_NAME \
        --load-balancing-scheme=SCHEME \
        --protocol=HTTPS \
        --region=REGION
      

      替换以下内容:

      • BACKEND_SERVICE_NAME:后端服务的名称。
      • SCHEME:负载均衡方案(对于区域级外部应用负载均衡器,为 EXTERNAL_MANAGED;对于内部应用负载均衡器,为 INTERNAL_MANAGED)。
      • REGION:工作站集群和负载均衡器所在的区域。
    2. 将指向工作站集群的 Private Service Connect NEG 添加到后端服务:

      gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
        --network-endpoint-group=NEG_NAME \
        --network-endpoint-group-region=REGION \
        --region=REGION
      

      替换以下内容:

      • BACKEND_SERVICE_NAME:后端服务的名称。
      • NEG_NAME:网络端点组的名称。
      • REGION:网络端点组和后端服务的区域。
    3. 创建区域网址映射以将传入的请求路由到后端服务:

      gcloud compute url-maps create URL_MAP_NAME \
        --default-service=BACKEND_SERVICE_NAME \
        --region=REGION
      

      替换以下内容:

      • URL_MAP_NAME:网址映射的名称。
      • BACKEND_SERVICE_NAME:后端服务的名称。
      • REGION:网址映射的区域。
    4. 创建区域级目标 HTTPS 代理:

      gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
        --ssl-certificates=SSL_CERTIFICATE_NAME \
        --url-map=URL_MAP_NAME \
        --url-map-region=REGION \
        --region=REGION
      

      替换以下内容:

      • TARGET_HTTPS_PROXY_NAME:目标 HTTPS 代理的名称。
      • SSL_CERTIFICATE_NAME:与负载均衡器关联的区域级 SSL 证书。
      • URL_MAP_NAME:网址映射的名称。
      • REGION:目标 HTTPS 代理和网址映射的区域。
    5. 为负载均衡器预留静态 IP 地址:

      对于区域级外部负载均衡器:

      gcloud compute addresses create LB_IP_ADDRESS_NAME \
        --region=REGION
      

      对于内部负载均衡器:

      gcloud compute addresses create LB_IP_ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET
      

      替换以下内容:

      • LB_IP_ADDRESS_NAME:预留的静态 IP 地址的名称。
      • REGION:IP 地址的区域。
      • SUBNET:对于内部负载均衡器,为要在其中预留内部 IP 地址的 VPC 子网。

    REST

    1. 创建区域性后端服务:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/backendServices
      {
        "name": "BACKEND_SERVICE_NAME",
        "loadBalancingScheme": "SCHEME",
        "protocol": "HTTPS"
      }
      

      替换以下内容:

      • PROJECT_NAME:项目的名称。
      • REGION:后端服务的区域。
      • BACKEND_SERVICE_NAME:后端服务的名称。
      • SCHEME:负载均衡方案(对于区域级外部应用负载均衡器,为 EXTERNAL_MANAGED;对于内部应用负载均衡器,为 INTERNAL_MANAGED)。
    2. 将指向工作站集群的 Private Service Connect NEG 添加到后端服务:

      PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/backendServices/BACKEND_SERVICE_NAME
      {
        "backends": [
          {
            "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/networkEndpointGroups/NEG_NAME"
          }
        ]
      }
      

      替换以下内容:

      • PROJECT_NAME:项目的名称。
      • REGION:后端服务和 NEG 的区域。
      • BACKEND_SERVICE_NAME:后端服务的名称。
      • NEG_NAME:网络端点组的名称。
    3. 创建区域网址映射以将传入的请求路由到后端服务:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/urlMaps
      {
        "name": "URL_MAP_NAME",
        "defaultService": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/backendServices/BACKEND_SERVICE_NAME"
      }
      

      替换以下内容:

      • PROJECT_NAME:项目的名称。
      • REGION:网址映射的区域。
      • URL_MAP_NAME:网址映射的名称。
      • BACKEND_SERVICE_NAME:后端服务的名称。
    4. 创建区域级目标 HTTPS 代理:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/targetHttpsProxies
      {
        "name": "TARGET_HTTPS_PROXY_NAME",
        "sslCertificates": [
          "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/sslCertificates/SSL_CERTIFICATE_NAME"
        ],
        "urlMap": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/urlMaps/URL_MAP_NAME"
      }
      

      替换以下内容:

      • PROJECT_NAME:项目的名称。
      • REGION:目标 HTTPS 代理的区域。
      • TARGET_HTTPS_PROXY_NAME:目标 HTTPS 代理的名称。
      • SSL_CERTIFICATE_NAME:区域性 SSL 证书。
      • URL_MAP_NAME:网址映射资源。
    5. 为负载均衡器预留静态 IP 地址:

      对于区域级外部负载均衡器:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/addresses
      {
        "name": "LB_IP_ADDRESS_NAME"
      }
      

      对于内部负载均衡器:

      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/addresses
      {
        "name": "LB_IP_ADDRESS_NAME",
        "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET",
        "addressType": "INTERNAL"
      }
      

      替换以下内容:

      • PROJECT_NAME:项目的名称。
      • REGION:IP 地址的区域。
      • LB_IP_ADDRESS_NAME:预留的静态 IP 地址的名称。
      • SUBNET:对于内部负载均衡器,指要在其中预留内部 IP 地址的 VPC 子网。
  3. 在转发规则中指定网络:创建转发规则时,请指定 --network 标志(对于内部负载均衡器,还需指定 --subnet 标志):

    gcloud

    对于区域级外部负载均衡器:

    gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
      --load-balancing-scheme=EXTERNAL_MANAGED \
      --network-tier=PREMIUM \
      --network=NETWORK \
      --address=LB_IP_ADDRESS_NAME \
      --ports=443 \
      --region=REGION \
      --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
      --target-https-proxy-region=REGION
    

    对于内部负载均衡器:

    gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=NETWORK \
      --subnet=SUBNET \
      --address=LB_IP_ADDRESS_NAME \
      --ports=443 \
      --region=REGION \
      --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
      --target-https-proxy-region=REGION
    

    替换以下内容:

    • HTTPS_FORWARDING_RULE_NAME:要创建的转发规则的名称。
    • NETWORK:负载均衡器和工作站集群所在的 VPC 网络。
    • SUBNET:对于内部负载均衡器,预留的内部 IP 地址所在的 VPC 子网。
    • LB_IP_ADDRESS_NAME:负载均衡器的预留静态外部或内部 IP 地址的名称。
    • REGION:转发规则和目标 HTTPS 代理的区域。
    • TARGET_HTTPS_PROXY_NAME:接收流量的目标 HTTPS 代理。

    REST

    对于区域级外部负载均衡器:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/forwardingRules
    {
      "loadBalancingScheme": "EXTERNAL_MANAGED",
      "networkTier": "PREMIUM",
      "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK",
      "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/addresses/LB_IP_ADDRESS_NAME",
      "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/targetHttpsProxies/TARGET_HTTPS_PROXY_NAME",
      "name": "HTTPS_FORWARDING_RULE_NAME",
      "portRange": "443-443"
    }
    

    对于内部负载均衡器:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/forwardingRules
    {
      "loadBalancingScheme": "INTERNAL_MANAGED",
      "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/networks/NETWORK",
      "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNET",
      "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/addresses/LB_IP_ADDRESS_NAME",
      "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/targetHttpsProxies/TARGET_HTTPS_PROXY_NAME",
      "name": "HTTPS_FORWARDING_RULE_NAME",
      "portRange": "443-443"
    }
    

    替换以下内容:

    • PROJECT_NAME:项目的名称。
    • REGION:转发规则和目标 HTTPS 代理的区域。
    • NETWORK:负载均衡器和工作站集群所在的 VPC 网络。
    • LB_IP_ADDRESS_NAME:负载均衡器的预留静态外部或内部 IP 地址的名称。
    • TARGET_HTTPS_PROXY_NAME:接收流量的目标 HTTPS 代理。
    • HTTPS_FORWARDING_RULE_NAME:要创建的转发规则的名称。
    • SUBNET:对于内部负载均衡器,预留的内部 IP 地址所在的 VPC 子网。

配置 DNS

配置 DNS 并添加一条记录,将 *.DOMAIN(例如 *.example.com)映射到上一步中预留的 IP 地址:

  • 外部应用负载均衡器:在公共 DNS 区域中添加一条 DNS 记录,将 *.DOMAIN 映射到预留的静态外部 IP 地址。如果您使用 Cloud DNS 管理网域的 DNS,请参阅添加 DNS 记录。

  • 内部应用负载均衡器:在为您的 VPC 网络授权的专用 DNS 区域中,添加将 *.DOMAIN 映射到预留的静态内部 IP 地址的 DNS 记录。如果您使用的是 Cloud DNS,请参阅创建专用区域和添加 DNS 记录。

创建工作站配置和工作站

如需使用自定义域名访问工作站,请执行以下操作:

  1. 使用具有自定义网域的集群创建工作站配置。

  2. 使用具有自定义网域的工作站配置创建工作站。

后续步骤

如需详细了解如何设置自定义网域和专用集群,请参阅以下内容: