為 Cloud Workstations 設定自訂網域

如要存取工作站,您可以指定信任的自訂網域,而非使用 cloudworkstations.dev 網域。

架構

如要搭配自訂主機名稱使用 Cloud Workstations,請設定私人叢集,並設定 Private Service Connect (PSC) 端點,以便私人叢集接收 HTTP 流量。您也必須建立採用 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:虛擬私有雲網路的名稱。如果省略,則會使用預設虛擬私有雲網路。
    • SUBNETWORK:虛擬私有雲網路中的子網路名稱。如果同時省略網路和子網路,系統會使用預設虛擬私有雲網路,以及指定 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:虛擬私有雲網路的名稱。如果省略,則會使用預設虛擬私有雲網路。
  • SUBNETWORK:虛擬私有雲網路中的子網路名稱。如果同時省略網路和子網路,系統會使用預設虛擬私有雲網路,以及指定 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:虛擬私有雲網路的名稱。如果省略,則會使用預設虛擬私有雲網路。
  • SUBNETWORK:虛擬私有雲網路中的子網路名稱。如果同時省略網路和子網路,系統會使用預設虛擬私有雲網路,以及指定 REGION 中的預設子網路。

如要進一步瞭解這個 API 方法,請參閱 workstationClusters.create 參考文件。

建立具備 PSC 後端的應用程式負載平衡器

請按照下列 gcloud CLI 和 REST API 步驟,建立具有 PSC 後端的應用程式負載平衡器:

  1. 建立 NEG 以連線至已發布的服務
  2. 在全域外部應用程式負載平衡器中新增後端
  3. 建立網址對應,將傳入要求轉送至後端服務
  4. 建立目標 HTTPS Proxy
  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:要在其中建立網路端點群組的虛擬私有雲網路。如果省略,則會使用預設網路。
  • 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:要在其中建立網路端點群組的虛擬私有雲網路。如果省略,則會使用預設網路。
  • 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 Proxy

建立目標 HTTPS Proxy,將要求轉送至網址對應。Proxy 是負載平衡器的一部分,用於存放 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 Proxy 名稱。
  • 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 Proxy 名稱。

建立全域位址

保留要用於負載平衡器的靜態 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 位址名稱。

建立轉送規則

建立轉送規則,將傳入要求轉送至 Proxy:

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 Proxy。

如要進一步瞭解這項 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 Proxy。
  • HTTPS_FORWARDING_RULE_NAME:要建立的轉送規則名稱。

設定區域性或內部應用程式負載平衡器

如果您要設定區域性外部應用程式負載平衡器 (例如為了符合資料落地需求),或內部應用程式負載平衡器,請注意下列規定。設定區域性負載平衡器資源前,請務必先建立指向工作站叢集的 Private Service Connect NEG,如「建立 NEG 以連線至已發布的服務」一節所述。

  1. 設定僅限 Proxy 的子網路:區域 Envoy 型負載平衡器需要僅限 Proxy 的子網路,且該子網路必須位於負載平衡器所在的區域和虛擬私有雲網路。您必須先建立僅限 Proxy 的子網路,才能建立轉送規則:

    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:僅限 Proxy 的子網路名稱。
    • REGION:工作站叢集和負載平衡器所在的區域。
    • NETWORK:工作站叢集和負載平衡器所在的虛擬私有雲網路。
    • PROXY_ONLY_RANGE:虛擬私有雲網路中未使用的 CIDR 區塊,例如 10.0.0.0/24,大小至少為 /26 (64 個位址)。

    詳情請參閱「Envoy 型負載平衡器的 Proxy 專用子網路」和 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:僅限 Proxy 的子網路名稱。
    • NETWORK:工作站叢集和負載平衡器所在的虛擬私有雲網路。
    • PROXY_ONLY_RANGE:虛擬私有雲網路中未使用的 CIDR 區塊,例如 10.0.0.0/24,大小至少為 /26 (64 個位址)。
  2. 建立區域性負載平衡器資源:建立後端服務、新增 Private Service Connect NEG 後端、建立網址對應、建立目標 HTTPS Proxy,並在工作站叢集所在區域預留靜態 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 Proxy:

      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 Proxy 的名稱。
      • SSL_CERTIFICATE_NAME:與負載平衡器相關聯的區域性 SSL 憑證。
      • URL_MAP_NAME:網址對應的名稱。
      • REGION:目標 HTTPS Proxy 和網址對應的區域。
    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 位址的虛擬私有雲子網路。

    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 Proxy:

      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 Proxy 的區域。
      • TARGET_HTTPS_PROXY_NAME:目標 HTTPS Proxy 的名稱。
      • 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 位址的虛擬私有雲子網路。
  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:負載平衡器和工作站叢集所在的虛擬私有雲網路。
    • SUBNET:如果是內部負載平衡器,則為預留內部 IP 位址所在的虛擬私有雲子網路。
    • LB_IP_ADDRESS_NAME:負載平衡器保留的靜態外部或內部 IP 位址名稱。
    • REGION:轉送規則和目標 HTTPS Proxy 的區域。
    • TARGET_HTTPS_PROXY_NAME:接收流量的目標 HTTPS Proxy。

    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 Proxy 的區域。
    • NETWORK:負載平衡器和工作站叢集所在的虛擬私有雲網路。
    • LB_IP_ADDRESS_NAME:負載平衡器保留的靜態外部或內部 IP 位址名稱。
    • TARGET_HTTPS_PROXY_NAME:接收流量的目標 HTTPS Proxy。
    • HTTPS_FORWARDING_RULE_NAME:要建立的轉送規則名稱。
    • SUBNET:如果是內部負載平衡器,則為預留內部 IP 位址所在的虛擬私有雲子網路。

設定 DNS

設定 DNS 並新增記錄,將 *.DOMAIN (例如 *.example.com) 對應至上一個步驟中保留的 IP 位址:

  • 外部應用程式負載平衡器:在公開 DNS 區域中,新增將 *.DOMAIN 對應至保留靜態外部 IP 位址的 DNS 記錄。如果您使用 Cloud DNS 管理網域的 DNS,請參閱「新增 DNS 記錄」。

  • 內部應用程式負載平衡器:在虛擬私有雲網路授權的私人 DNS 區域中,新增對應 *.DOMAIN 至保留靜態內部 IP 位址的 DNS 記錄。如果您使用 Cloud DNS,請參閱「建立私人區域」和「新增 DNS 記錄」。

建立工作站設定和工作站

如要使用自訂網域存取工作站,請按照下列步驟操作:

  1. 使用具備自訂網域的叢集建立工作站設定。

  2. 使用具備自訂網域的工作站設定建立工作站。

後續步驟

如要進一步瞭解如何設定自訂網域和私人叢集,請參閱下列文章: