本頁面說明如何設定內部直通式網路負載平衡器或內部應用程式負載平衡器 (預先發布版),以便自動註冊至 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
:接收流量的目標 ProxyPROXY_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-8080
和RULE-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
如要刪除轉送規則,請執行
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
指令。如要刪除區域 (如果您已建立區域),請按照「刪除代管區域」一文中的操作說明進行。
如要刪除 Service Directory 命名空間和服務,請參閱「刪除資源」。
後續步驟
- 如要瞭解 Service Directory 的總覽,請參閱 Service Directory 總覽。
- 如要找出使用 Service Directory 時可能遇到的常見問題解決方案,請參閱疑難排解。