Google Cloud Platform 服務代理程式

本頁提供 Google Cloud Platform Service Broker 的總覽。

簡介

Google Cloud Platform (GCP) Service Broker 是託管在 GCP 上的開放原始碼 Open Service Broker (OSB) API 的實作,可針對在 Kubernetes 上執行的應用程式,簡化向其遞送 GCP 服務的流程。透過建立 GCP 資源並管理資源對應的權限,Service Broker 可讓您在 Kubernetes 叢集中輕鬆取用 GCP 服務。例如,您可以在 GKE 叢集中佈建 Cloud Pub/Sub 服務的執行個體,並提供給您的應用程式使用。

服務代理程式註冊在 Service Catalog GKE 外掛程式上,在您的叢集中安裝 Service Catalog 並新增服務代理程式後,系統即會下載可用服務與方案的清單。此時,您可以建立方案的執行個體,並為這些執行個體指派所需的權限 (繫結)。完成後,您叢集中的應用程式便能使用各自的原生 API 來存取建立的服務執行個體。透過服務代理程式提供的 GCP 服務包含下列項目:

您可以在 Google Cloud Platform GitHub 存放區中找到以上每個服務的範例。

概念

Google Cloud Platform Service Broker API 採用數個 OSB 概念

  • 應用程式:可能使用或繫結至服務執行個體的任一軟體。
  • 平台:平台為一種軟體,用來管理應用程式佈建及服務代理程式註冊所在的雲端環境。使用者無法直接從服務代理程式佈建服務,而是依靠平台來管理服務,並由平台代表使用者與服務代理程式互動。Google Cloud Platform Service Broker 的平台是 Kubernetes Service Catalog
  • 服務:Google Cloud Pub/Sub 或 Spanner 等代管軟體服務。GCP 服務會公開 API,方便您叫用這類 API 來執行特定動作。
  • 服務繫結:使用服務執行個體的能力。這類要求可能會參照想要使用服務執行個體的應用程式或其他某些實體。在 Kubernetes Service Catalog 中,繫結呼叫所傳回的資訊會放置在指定命名空間的 Kubernetes 密鑰中。服務代理程式通常會使用「建立繫結」的呼叫來設定服務執行個體上的身分與存取權管理 (IAM) 權限。
  • 服務代理程式:服務代理程式會管理服務的生命週期。Kubernetes Service Catalog 會與服務代理程式互動,以佈建及管理服務執行個體和服務繫結。
  • 服務執行個體:具現化服務內容。
  • 服務內容:服務代理程式支援的服務類別。
  • 服務方案:代表特定服務內容的不同選項或層級。可能會影響費用。

架構

以下圖表提供視覺化的 OSB 架構總覽,並呈現在 Service Catalog 與服務代理程式之間佈建服務執行個體和服務繫結的流程。

總覽

下圖說明服務代理程式的架構。

Service Catalog 是一種 Kubernetes 擴充功能 API,能夠讓 Kubernetes 叢集上執行的應用程式使用 Cloud Pub/Sub 等 GCP 服務。Service Catalog 會與服務代理程式進行通訊,以取得可用服務與方案的清單,進而佈建成服務執行個體。

服務執行個體的相關資訊會儲存在 ServiceInstanceServiceBinding 資源。服務執行個體佈建完畢時,存取憑證便會透過 Kubernetes 密鑰分享給應用程式。

列出服務與方案

  1. 當 GCP ClusterServiceBroker 資源在 Service Catalog 安裝完成後,Service Catalog 便會連線至服務代理程式,以要求可用服務與方案的清單。
  2. 服務詳細資料會儲存成 ClusterServiceClass 資源,其對應的方案則儲存在 ClusterServicePlan 資源。

請參閱探索 GCP 服務與方案一文的操作說明,瞭解如何列出服務與方案的清單。

服務帳戶執行個體和繫結流程

下圖說明在「Cloud IAM 服務帳戶」的服務環境中,Kubernetes Service Catalog 與服務代理程式之間的互動順序。您需要使用服務帳戶,才能對 GCP 資源進行驗證。

  1. 佈建 Cloud IAM 服務帳戶的服務執行個體。
  2. GCP 佈建新的服務帳戶,目前這個帳戶沒有任何權限。
  3. 服務代理程式傳回執行個體佈建作業的回應,此回應會儲存在 ServiceInstance 資源中。
  4. 佈建 IAM 服務帳戶執行個體的服務繫結。
  5. GCP 產生服務帳戶的私密金鑰,並將金鑰傳回到 IAM 服務帳戶執行個體。
  6. 服務代理程式傳回 IAM 服務帳戶的私密金鑰,ServiceBinding 資源即完成建立。
  7. Service Catalog 將服務帳戶的私密金鑰儲存在指定命名空間的私密金鑰中。
  8. 您可以使用服務帳戶向其他 GCP 資源指派角色,方法是將這個服務帳戶做為繫結呼叫的輸入內容來建立新的繫結。

GCP 服務執行個體和繫結流程

下圖說明在由服務代理程式提供的另一個 GCP 服務 (例如 Cloud Pub/Sub) 環境中,Kubernetes Service Catalog 與服務代理程式之間的互動順序。

  1. 透過服務方案佈建服務執行個體。舉例來說,您可以佈建 Plan 1 的 Cloud Pub/Sub 服務。
  2. GCP 在專案中佈建資源的新執行個體。如為 Cloud Pub/Sub,GCP 會佈建新的 Pub/Sub 主題。
  3. 服務代理程式傳回執行個體佈建作業的回應,此回應會儲存在 ServiceInstance 資源中。
  4. 使用服務方案定義的參數,佈建服務執行個體的服務繫結。如為 Cloud Pub/Sub,則這會包含 IAM 發佈者或訂閱者權限。

    • 指定要使用的服務帳戶。

    • 指定要指派給服務帳戶的 IAM 角色。

  5. 設定服務帳戶的 IAM 權限。視資源類型而定,可能是:

    • 資源本身的 IAM 權限 (如為 Spanner 服務執行個體的情況)

    • 專案層級的 IAM 權限 (如為不支援資源特定權限的資源)

  6. 服務代理程式傳回服務的連線資訊,且 ServiceBinding 資源建立完成。

  7. Service Catalog 將服務的連線資訊儲存在指定名稱空間的密鑰中。

  8. 系統會透過 Kubernetes 密鑰將含有連線憑證的服務繫結資訊分享給應用程式。

  9. 應用程式使用繫結資訊來連線並存取 Cloud Pub/Sub 等服務。

選用步驟:您可以在同一個命名空間中,使用不同的服務帳戶和角色集,與同一個服務執行個體建立額外的繫結。這有助於同一個 Kubernetes 命名空間內的不同應用程式使用相同的 Pub/Sub 主題。

請參閱使用 GCP 服務一文的操作說明,瞭解如何佈建及繫結至服務執行個體。

取消佈建和清除流程

下圖說明如何取消佈建不需要的服務。如要避免系統針對不再使用的服務向您的 GCP 帳戶收取相關費用,請確保執行這項作業。

  1. 刪除服務繫結。Service Catalog 會傳送要求至服務代理程式,以便將服務取消繫結。
  2. GCP 刪除服務執行個體的 IAM 權限。
  3. Service Broker 傳回繫結刪除作業的回應。
  4. 刪除含有服務繫結和連線資訊的 Kubernetes 密鑰。
  5. 刪除服務執行個體。Service Catalog 會傳送要求至服務代理程式,以便取消佈建服務。
  6. GCP 刪除服務執行個體。如為 Cloud Pub/Sub,則會刪除 Pub/Sub 主題。
  7. Service Broker 傳回取消佈建作業的回應。

請參閱 Service Catalog 清除作業一文的操作說明,瞭解如何刪除服務執行個體和繫結。

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Kubernetes Engine 說明文件