服務目錄是《Cloud 資料處理附加條款》中列載的 Google 義務所涵蓋的服務。
無論環境為何,Service Directory 都是發布、探索及連結服務的單一位置,可提供一致且可靠的服務。Service Directory 支援 Google Cloud、多雲端和內部部署系統環境中的服務,且可為單一專案擴充至數千項服務和端點。
Service Directory 提供下列功能:
- Registration and Lookup API:用於建立及解析命名空間、服務和端點
- 與 Cloud DNS 整合。服務目錄區域可讓服務在虛擬私有雲 (VPC) 上提供服務。
- 身分與存取權管理整合,可指派及控管服務的瀏覽權限和權限
- 內建 Google Cloud CLI 和 Google Cloud 控制台,可用於與 Service Directory 互動
- Cloud Monitoring 和 Cloud Logging 整合:用於監控、稽核及偵錯 Service Directory 作業
使用 Service Directory 的原因
隨著應用程式採用服務,由於這些服務的端點會變更,因此要解析服務的位置變得更加困難。在混合環境中部署的服務可能不使用相同的命名系統,因此會帶來額外的障礙,導致解決和連結服務的難度提高。以下說明這個問題。
假設您正在建構簡單的 API,且程式碼需要呼叫其他應用程式。如果端點資訊保持不變,您可以將這些位置硬式編碼至程式碼中,或儲存在小型設定檔中。不過,在微服務和多雲端環境中,由於執行個體、服務和環境都可能變更,因此這個問題變得更難解決。
有了 Service Directory,您就能在單一平台註冊所有服務,並使用 HTTP、gRPC 和 DNS 解析這些服務。
讓我們再次查看先前的圖表,但這次新增 Service Directory。在下圖中,每個服務執行個體都已註冊至 Service Directory。這些註冊項目會立即反映在 DNS 中,無論實作和環境為何,都可以使用 HTTP/gRPC 進行查詢。
您可以建立通用服務名稱,讓服務名稱可在 App Engine 和 GKE 等 Google Cloud產品中使用。您可以透過 DNS 提供這些服務。您可以根據服務帳戶的網路、專案和 IAM 角色,為服務套用存取權控管。
Service Directory 可解決下列問題:
- 互通性:Service Directory 是一項通用命名服務,可跨 Google Cloud、多雲端和地端部署運作。您可以在這些環境之間遷移服務,並繼續使用相同的服務名稱來註冊及解析端點。
- 服務管理:Service Directory 是代管服務。貴機構不必擔心維護自有服務註冊資料庫時,會遇到高可用性、備援、調整或維護方面的問題。
- 存取權控管:您可以使用 Service Directory 控管哪些使用者可以使用 IAM 註冊及解析您的服務。將服務目錄角色指派給團隊、服務帳戶和機構。
- 純 DNS 的限制:DNS 解析器在遵循 TTL 和快取方面可能不穩定,無法處理較大的記錄大小,也無法提供簡單的方式向使用者提供中繼資料。除了 DNS 支援功能外,Service Directory 也提供 HTTP 和 gRPC API,可用於查詢及解析服務。
搭配服務目錄使用 Cloud DNS
Cloud DNS 是一項快速、可擴充且穩定的網域名稱系統 (DNS) 服務,採用 Google 基礎架構。
除了公用 DNS 區域之外,Cloud DNS 也為Google Cloud上的私人網路提供代管內部 DNS 解決方案。私人 DNS 區域可讓您在內部為虛擬機器 (VM) 執行個體、負載平衡器或其他資源命名。這些私人 DNS 區域的 DNS 查詢僅限於私人網路。
下圖說明如何使用服務目錄區域,透過 DNS 查詢提供服務名稱。
個別元件總覽:
- 您可以使用 Service Directory API,直接將端點註冊至 Service Directory。您可以透過 Service Directory 註冊Google Cloud 和非Google Cloud 服務。
- 外部和內部用戶端都可以在 https://servicedirectory.googleapis.com 上查詢這些服務。
- 如要啟用 DNS 要求,請在 Cloud DNS 中建立 Service Directory 區域,並與 Service Directory 命名空間建立關聯。
- 內部用戶端可以使用 DNS、HTTP 和 gRPC 解析這項服務。外部用戶端 (不在私人網路上的用戶端) 必須使用 HTTP 或 gRPC 解析服務名稱。
範例設定
如何透過 DNS 公開服務
下圖說明如何在 Service Directory 中模擬微服務架構,並使用 DNS 提供服務。請注意,Service Directory 會完全維護服務和端點,但私人區域則位於 Cloud DNS 中。
在這個圖表 (左側) 中,payments 服務已註冊至命名空間,其名稱為 backend-namespace
、區域為 us-east1
,專案為 gcp-project
。命名空間已連結至私人區域 example.com
。
如要執行 DNS 查詢,用戶端會針對網域名稱 _payments._tcp.payments.example.com
要求SRV 記錄,該記錄會解析為付款服務端點的通訊埠號碼和位址記錄。
後續步驟
- 如要瞭解如何設定 Service Directory 命名空間、在命名空間中建立服務,以及將端點指派給服務,請參閱「設定 Service Directory」。
- 如要瞭解如何建立可運用現有命名空間的 Service Directory 區域,請參閱「設定 Service Directory DNS 區域」。
- 如要瞭解如何使用 DNS 查詢現有的服務目錄可用區,請參閱「使用 DNS 進行查詢」。
- 如要找出使用 Service Directory 時可能遇到的常見問題解決方案,請參閱疑難排解。