透過 Cloud Marketplace 提供 Terraform Kubernetes 應用程式

Google Cloud Marketplace 中的 Terraform Kubernetes 應用程式可讓客戶使用 Terraform,在 Google Kubernetes Engine 部署容器化應用程式。使用者使用 Terraform Kubernetes 應用程式時不會產生費用,但使用 Google Cloud 資源時會產生費用。您可以透過私密優惠,向所有 Cloud Marketplace 使用者公開提供 Terraform Kubernetes 應用程式,或私下提供。

透過 Cloud Marketplace 提供的 Terraform Kubernetes 應用程式會使用 Helm 資訊套件定義設定,而您會在 Artifact Registry 中代管這些資訊套件。設定完成後,您就可以透過 Producer Portal 將應用程式加入 Cloud Marketplace。

使用 Terraform 導入 Kubernetes 應用程式的總覽

如要透過 Cloud Marketplace 提供 Terraform Kubernetes 應用程式,請按照下列步驟操作:

  1. 準備 Cloud Marketplace 適用的 Terraform Kubernetes 應用程式。包括設定 Artifact Registry,以及將應用程式的映像檔推送至該服務。

  2. 在 Producer Portal 中新增應用程式的定價資訊

  3. 在 Producer Portal 中設定應用程式的部署作業,包括 Terraform 模組、Helm 資訊套件和容器映像檔。

  4. 將產品發布至 Cloud Marketplace。 在產品上架過程中,您會提交產品的各個部分以供審查。Cloud Marketplace 團隊會審查每項提交內容,並與您合作解決所有問題,然後再核准。所有提交內容都獲得核准後,你就能在幾分鐘內發布及推出產品。

Terraform Kubernetes 應用程式的規定

透過 Cloud Marketplace 提供的所有產品都必須符合 Cloud Marketplace 的產品資訊規定

Terraform Kubernetes 應用程式必須符合下列額外規定:

  • 應用程式必須在採用 x86 處理器的 GKE 節點上執行。
  • 您必須將應用程式的所有 Helm 資訊圖表和容器映像檔,上傳至 Artifact Registry 登錄檔,並使用與 Terraform Kubernetes 應用程式相同的存放區和專案。
  • Artifact Registry 登錄檔必須包含 Helm 資訊套件。
  • Terraform 模組必須以 ZIP 檔案的形式,儲存在與 Terraform Kubernetes 應用程式相同的專案中。
  • 您必須為用來代管 Terraform 模組的 Cloud Storage bucket 啟用版本管理功能。
  • 您必須添加使用手冊,針對應用程式逐步說明如何透過指令列部署,以及設定和使用方式。詳情請參閱本文的「使用者指南規定」。
  • 僅採用測試版或正式發佈版的 Kubernetes 資源,保護使用者免於不穩定 API 的威脅。

應用程式圖片規定

應用程式圖片必須符合下列規定:

  • 應用程式的所有映像檔都必須標示測試群組和目前版本。舉例來說,如果您要將版本 2.0.5 發布至2.0發布測試群組,所有對應圖片都必須標記為 2.02.0.5。詳情請參閱「管理發布內容」。
  • 所有應用程式圖片的圖片資訊清單都必須包含下列註解:

    com.googleapis.cloudmarketplace.product.service.name=services/SERVICE_NAME
    

    SERVICE_NAME 改為您的服務名稱。如要找出服務名稱,請參閱 Producer Portal「總覽」頁面上的產品表格。如要進一步瞭解註解,請參閱 GitHub 上 Open Container Initiative 的註解文件。

Artifact Registry 存放區的相關規定

應用程式的 Helm 資訊套件和容器映像檔必須屬於單一 Artifact Registry 存放區。

舉例來說,如果 Artifact Registry 存放區為 us-docker.pkg.dev/exampleproject,應用程式的 Helm 資訊套件和容器映像檔應類似於下列項目:

  • us-docker.pkg.dev/exampleproject/exampleapp/chart
  • us-docker.pkg.dev/exampleproject/exampleapp/image1
  • us-docker.pkg.dev/exampleproject/exampleapp/image2

Terraform 模組需求條件

客戶可透過 Infrastructure Manager,使用 Terraform 模組從 Cloud Marketplace 部署您的產品。Terraform 模組會封裝應用程式的 Kubernetes 設定。

範例模組做為起點,並按照合作夥伴指南的說明,建構與應用程式相容的 Terraform 模組。

傳送至應用程式的參數

您的 Terraform 模組必須宣告要在客戶選取應用程式時向他們收集的參數,接著系統會在使用者部署應用程式時將這些參數提供給 Helm 圖表容器。

如要設定這些參數,Terraform 模組必須包含 schema.yaml 檔案。

如要瞭解如何建立 schema.yaml,請參閱 GitHub 上的結構定義建立指南

GPU 叢集要求

如果應用程式有特定的 GPU 需求,或是需要大量 GPU 資源,可以使用部署工具架構,在叢集中指定 GPU 類型和數量。如果您指定 GPU 需求,系統會關閉輔助叢集建立功能。

應用程式可能會要求使用一般 Nvidia GPU,或特定 Nvidia 平台

應用程式使用手冊的需求

應用程式的使用手冊必須包含下列資訊:

  • 總覽:應用程式的一般總覽,涵蓋基本功能和設定選項。這個區段也必須連結至您在 Cloud Marketplace 發布的應用程式。
  • 一次性設定:包括設定 Helm 和安裝應用程式 CustomResourceDefinition (CRD) 的步驟,以便叢集管理應用程式資源。
  • 安裝:包括下列項目:
  • 基本用法:下列工作的指南:
    • 修改使用者名稱和密碼
    • 連線至管理控制台 (如果適用)
    • 連線至用戶端工具並執行範例指令 (如果有的話)
    • 啟用輸入功能並安裝傳輸層安全標準 (TLS) 憑證 (如果有的話)
  • 備份及還原:說明如何備份應用程式狀態,以及如何從備份還原應用程式狀態。
  • 圖片更新:說明如何針對修補程式或小幅更新,更新應用程式圖片。
  • 調度:應用程式資源調度相關資訊 (如適用)。
  • 刪除:刪除應用程式並清理可能殘留的資源 (例如 PersistentVolumeClaims) 的指南。

後續步驟