註冊內部負載平衡器

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

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

限制

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

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

事前準備

如要按照這些操作說明進行,必須符合下列條件:

  • 您必須已建立 Service Directory 命名空間和服務。 如果沒有,請按照「設定 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>)。舉例來說,如果您建立轉送規則 RULE 並指定 --port=8080,就會取得名為 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:包含命名空間的 Trusted 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 時可能遇到的常見問題解決方案,請參閱疑難排解