註冊內部負載平衡器

本頁面說明如何設定內部直通式網路負載平衡器內部應用程式負載平衡器 (預先發布版),以便自動註冊至 Service Directory。

建立負載平衡器時,您可以將其註冊為現有 Service Directory 命名空間和所選服務中的端點。接著,用戶端應用程式可以使用服務目錄 (使用 HTTP 或 gRPC) 和/或 DNS (如果您已建立服務目錄 DNS 區域) 來解析內部負載平衡器服務的地址,並直接連線。

限制

Service Directory 與內部負載平衡整合時,有下列限制:

  • 自動註冊功能僅適用於內部和網路負載平衡器。您可以使用 GKE 整合功能註冊 Google Kubernetes Engine 負載平衡服務。您可以呼叫 Service Directory API,註冊全球負載平衡器,以及 Google Kubernetes Engine 入口和閘道。
  • 您只能在建立轉送規則時使用自動註冊功能。您無法使用 Google Cloud CLI 更新現有轉送規則,以便自動註冊。
  • 您可以在共用虛擬私有雲網路設定的主專案或服務專案中,將內部負載均衡器註冊至服務目錄。不過,所有負載平衡元件和後端都必須位於同一個專案中。詳情請參閱內部負載平衡限制
  • 服務目錄不會提供連線功能,也就是說,雖然服務目錄會儲存內部負載平衡器的虛擬 IP 位址,但在服務目錄中查詢內部負載平衡器,並不保證您能連線至虛擬 IP 位址。

事前準備

這些操作說明需要以下條件:

  • 您必須已建立 Service Directory 命名空間和服務。如果沒有,請按照「設定服務目錄」一文的程序建立命名空間和服務。

    服務目錄命名空間和服務必須與您要建立的內部負載平衡器轉送規則位於相同專案和地區。

  • 您必須已設定必要資源,才能建立內部負載平衡器轉送規則。

設定轉送規則,在 Service Directory 中註冊內部負載平衡器

您必須設定轉送規則,才能在 Service Directory 中註冊內部負載平衡器。如要註冊內部直通式網路負載平衡器或內部應用程式負載平衡器,請參閱下列章節。

註冊內部直通式網路負載平衡器

如要註冊內部直通式網路負載平衡器,請執行 gcloud compute forwarding-rules create 指令並設定 service-directory-registration 標記:

gcloud compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=INTERNAL \
    --network=NETWORK_NAME \
    --subnet=SUBNET_NAME \
    --address=RESERVED_IP_ADDRESS \
    --ip-protocol=PROTOCOL_TYPE \
    --ports=PORT_NUMBER \
    --backend-service=BACKEND_SERVICE_NAME \
    --backend-service-region=REGION \
    --service-directory-registration=SD_SERVICE_NAME

更改下列內容:

  • FORWARDING_RULE_NAME:要建立的轉送規則名稱
  • REGION:建立轉送規則的區域
  • NETWORK_NAME:要套用這個轉送規則的網路
  • SUBNET_NAME:這個轉送規則適用的子網路
  • RESERVED_IP_ADDRESS:轉送規則提供的 IP 位址
  • PROTOCOL_TYPE:規則要提供的 IP 通訊協定
  • PORT_NUMBER:以半形逗號分隔的通訊埠清單
  • BACKEND_SERVICE_NAME:接收流量的目標後端服務
  • SD_SERVICE_NAME:您要註冊端點的 Service Directory 服務完整名稱。必須位於與要建立的轉送規則相同的專案和區域。例如:projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME

註冊內部應用程式負載平衡器

如要註冊區域性內部應用程式負載平衡器,請執行 gcloud compute forwarding-rules create 指令並設定 service-directory-registration 標記:

gcloud beta compute forwarding-rules create FORWARDING_RULE_NAME \
    --region=REGION \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --network=NETWORK_NAME \
    --address=RESERVED_IP_ADDRESS \
    --target-https-proxy=PROXY_NAME \
    --target-https-proxy-region=PROXY_REGION \
    --ports=PORT_NUMBER \
    --service-directory-registration=SD_SERVICE_NAME

更改下列內容:

  • FORWARDING_RULE_NAME:要建立的轉送規則名稱
  • REGION:建立轉送規則的區域
  • NETWORK_NAME:這個轉送規則適用的網路
  • RESERVED_IP_ADDRESS:轉送規則提供的 IP 位址
  • PROXY_NAME:接收流量的目標 Proxy
  • PROXY_REGION:要操作的 Proxy 區域
  • PORT_NUMBER:以半形逗號分隔的通訊埠清單
  • SD_SERVICE_NAME:您要註冊端點的 Service Directory 服務完整名稱。此服務必須與要建立的轉送規則位於相同專案和區域。例如:projects/PROJECT/locations/REGION/namespaces/NAMESPACE_NAME/services/SERVICE_NAME

驗證端點

註冊內部負載平衡器時建立的一或多個 Service Directory 端點具有下列特性:

  • 端點的名稱與轉送規則的名稱相同,但會加上指定的通訊埠號碼 (<forwarding rule name>-<port>)。舉例來說,如果您使用 --port=8080 建立轉送規則 RULE,就會取得名為 RULE-8080 的端點。同樣的規則,如果您指定兩個通訊埠 --port=8080, 8081,就會取得兩個端點 RULE-8080RULE-8081。如果您指定 --port=ALL,Service Directory 端點會使用 0 通訊埠註冊。如果您是內部負載平衡器擁有者,請務必確保 API 呼叫端知道要連線的通訊埠。
  • 您無法使用公開的 Service Directory API 修改或刪除端點。只有在您刪除轉送規則時,系統才會自動刪除端點。也就是說,在轉送規則存在的情況下,您無法刪除端點所在的服務和命名空間。
  • 系統不會針對端點本身收費,但會針對端點的任何 API 呼叫收取一般價格。

如要確認端點已建立,請在 Service Directory 中解析服務。您應該會看到端點,其名稱與指定通訊埠編號的轉送規則名稱相同。

如要在 Service Directory 中解析服務,請按照下列步驟操作:

gcloud

執行 gcloud service-directory services resolve 指令:

gcloud service-directory services resolve SD_SERVICE_NAME \
    --namespace=SD_NAMESPACE_NAME \
    --location=REGION

更改下列內容:

  • SD_SERVICE_NAME:要解析的 Service Directory 服務名稱。必須位於 Service Directory 命名空間名稱中。
  • SD_NAMESPACE_NAME:您為包含服務的命名空間指定的名稱。
  • REGION:包含命名空間的 Google Cloud 區域。這個地區應與您建立轉送規則的地區相同。

選用:使用 Cloud DNS 建立 Service Directory 區域

您可以使用 DNS 解析透過這項整合註冊的 Service Directory 端點,就像解析任何其他 Service Directory 端點一樣。如要使用 Cloud DNS 建立 Service Directory 區域,請參閱「設定 Service Directory 區域」。

如要確認區域設定正確無誤,您可以對 Service Directory 區域執行 DNS 查詢。如需使用 DNS 查詢的操作說明,請參閱「使用 DNS 查詢」。如果可用區設定正確,您應該會在指令輸出內容中看到內部負載平衡器的 IP 位址。

清除所用資源

如要刪除您建立的資源,請按照下列步驟操作:

gcloud

  1. 如要刪除轉送規則,請執行 gcloud compute forwarding-rules delete 指令:

    gcloud compute forwarding-rules delete FORWARDING_RULE_NAME \
      --region=REGION \
    

    更改下列內容:

    • FORWARDING_RULE_NAME:您建立的轉送規則名稱
    • REGION:轉送規則的區域

    詳情請參閱「刪除轉送規則」。

    如要確認刪除轉送規則後,系統是否已自動從 Service Directory 刪除端點,請在 Service Directory 服務上執行「驗證端點」一節所述的 gcloud service-directory services resolve 指令。

  2. 如要刪除區域 (如果您已建立區域),請按照「刪除代管區域」一文中的操作說明進行。

  3. 如要刪除 Service Directory 命名空間和服務,請參閱「刪除資源」。

後續步驟

  • 如要瞭解 Service Directory 的總覽,請參閱 Service Directory 總覽
  • 如要找出使用 Service Directory 時可能遇到的常見問題解決方案,請參閱疑難排解