設定 Google Cloud 環境

本頁面說明如何按照步驟設定 Google Cloud 環境,以便發布 Kubernetes 應用程式。

建立工作區

建議您在 Google Cloud 控制台中建立專用於 Cloud Marketplace 產品的新專案。

如要管理提交至 Cloud Marketplace 的產品,建議您建立新專案,並使用結尾為 -public 的專案 ID。如要為產品建立專案,請參閱「建立及管理專案」。

如果您已設定要用於在 Cloud Marketplace 上銷售的專案,請確認已正確授予 Kubernetes 的 Identity and Access Management (IAM) 角色,然後跳至「設定 Container Registry」一節。

授予專案角色

如要完成專案設定,請完成下列步驟:

  1. 建立專案後,請在專案層級授予下列角色:

    • 專案編輯器,至 cloud-commerce-marketplace-onboarding@twosync-src.google.com
    • Service Management 管理員 (roles/servicemanagement.serviceAdmin) 至 cloud-commerce-marketplace-onboarding@twosync-src.google.com 和 managed-services@cloud-marketplace.iam.gserviceaccount.com
    • 設定編輯器 (roles/servicemanagement.configEditor) 至 cloud-commerce-producer@system.gserviceaccount.com

    如要授予專案存取權,請參閱「授予、變更及撤銷資源存取權」。

  2. 在服務層級將下列角色授予 cloud-commerce-procurement@system.gserviceaccount.com:

    • 服務消費者 (roles/servicemanagement.serviceConsumer)
    • 服務控制器 (roles/servicemanagement.serviceController)

    如需服務層級授予存取權的步驟,請參閱「授予及撤銷 API 存取權」。

  3. 設定安全聯絡人。詳情請參閱「管理通知聯絡人」。

  4. 填妥 Cloud Marketplace 團隊提供的專案資訊表單。

設定 Container Registry

您需要 Container Registry 存放區來代管應用程式的容器映像檔。Artifact Analysis 會持續掃描應用程式映像檔,檢查是否有安全漏洞,以便您在將產品提交至 Cloud Marketplace 前,查看並解決問題。

如要設定 Container Registry、Docker 和 Google Cloud SDK,請按照 Container Registry 快速入門進行。

設定 Container Registry 後,請在包含登錄的專案中,將專案檢視者角色授予 cloud-commerce-marketplace-onboarding@twosync-src.google.com。

啟用 Container Analysis API

您必須啟用 Artifact Analysis API,以便掃描 Container Registry 中的容器映像檔,檢查是否有安全漏洞。如要瞭解 Artifact Analysis 中的安全漏洞掃描功能,請參閱 Container Registry 說明文件。

將產品新增至 Cloud Marketplace

如要在 Cloud Marketplace 中建立及發布產品,請使用製作者入口網站。您完成 Cloud Marketplace 專案資訊表單後,合作夥伴工程師就會為您啟用這項功能。

如要在 Producer Portal 中發布產品,請建立產品項目,然後提交下列資訊以供審查:

  • 產品詳細資料:新增產品的產品資訊和行銷資訊。
  • 價格:選擇並指定價格模式,決定客戶如何為產品付費。
  • 容器映像檔:提供包含容器映像檔的 Google Container Registry 存放區。
  • 開放原始碼法規遵循:確保產品遵循 Google 的開放原始碼軟體政策。

您隨時可以提交這些評論,且順序不限。部分審查作業可能需要兩週的時間才能獲得核准,因此建議您盡早查看相關規定,並開始進行相關作業。

如要建立產品的 Cloud Marketplace 項目,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中開啟 Producer Portal:

    https://console.cloud.google.com/producer-portal?project=YOUR_PUBLIC_PROJECT_ID
    

    將 YOUR_PUBLIC_PROJECT_ID 替換為您為 Cloud Marketplace 建立的公開專案 ID,例如 my-organization-public。

  2. 按一下頁面頂端的「新增產品」。

  3. 選取「Kubernetes」。

  4. 在「產品名稱」下方輸入產品名稱,並確認產品 ID。產品 ID 會用在 Cloud Marketplace 產品資訊的網址中。

  5. 按一下「建立」,系統可能需要幾秒鐘的時間來建立產品。

您會在後續步驟中新增解決方案的定價模式和行銷資訊。

在 Kubernetes Engine 中建立開發叢集

您可使用 Google Kubernetes Engine 管理及調度 Kubernetes 叢集資源。如要建立測試叢集並將基本應用程式部署至該叢集,請按照 Google Kubernetes Engine 快速入門中的操作說明進行。

安裝 mpdev 開發工具

mpdev 工具是一種容器,可將公用程式打包,用於測試及發布應用程式映像檔。雖然提交應用程式以供發布時,不必安裝 mpdev,但您可以執行 mpdev 來驗證開發環境,並測試應用程式是否正確安裝在開發叢集中。

從 Cloud Marketplace 工具 GitHub 存放區安裝 mpdev。

如要瞭解如何使用 mpdev 檢查環境並測試應用程式,請參閱 GitHub 上的 mpdev 參考資料。

整理版本

一般來說,應用程式的每個版本都必須採用語意版本管理 2.0,並遵循 MAJOR.MINOR.PATCH 編號慣例。每個版本都必須有專屬的版本編號,例如 1.0.1、1.0.2、1.3.1 等。您可以選擇在版本號碼後方加上連字號,以便新增預先發布修飾符號,例如 1.3.1-alpha201910。預發布修飾符可用來儲存及強調您認為實用的任何額外資訊,例如用於表示版本建立日期的建構日期。

建議您在測試群組中發布軟體。每個分支都是一系列版本,並提供回溯相容的更新。您的發布途徑應以子版本為基礎,例如 4.1.x。最佳做法是避免使用 latest 等一般版本名稱。

舉例來說,如果您在 Cloud Marketplace 上發布軟體的 2.0 版本,且預期 2.0.1、2.0.5 等版本會與 2.0 向下相容,請將這些版本歸類至 2.0 版本群組。

如果您發布的是無法向下相容的應用程式版本,或是需要使用者手動執行遷移步驟的版本,請在新的測試群組中發布,以便使用者規劃更新作業。

選擇產品 ID

您必須為公司、產品和容器映像檔選取下列 ID,以用來建立 Cloud Marketplace 網址和容器映像檔的網址:

  • 公司名稱。例如,如果公司名稱為 Examplesoft Inc.,您可以使用 examplesoft 這個 ID。

  • 產品名稱。例如,如果產品名稱為 Example Pro,請使用 example-pro ID。

  • 產品的發布測試群組,例如 4.0。

    查看整理版本的需求條件。

  • 容器映像檔。為應用程式中的每個容器映像檔選取不重複的 ID。所有應用程式都需要下列 ID:

    • 主要映像檔:這個容器映像檔是產品的主要映像檔,並與產品使用同一個 ID。例如,如果產品 ID 為 example-pro,主要圖片會使用同一個 ID。
    • deployer:歷程的部署容器映像檔。當使用者從 Google Cloud 主控台部署應用程式時,就會執行部署容器。您會在建立應用程式套件時建立部署映像檔。

例如,Examplesoft Inc. 公司選擇將下列 ID 用於其 Example Pro 產品:

名稱 ID
公司 Examplesoft Inc examplesoft
產品 Example Pro example-pro
映像檔 [1] (主要) Example Pro 伺服器 無
映像檔 [2] 佇列範例 example-queue
映像檔 [部署者] 無 部署者
測試群組 [1] 4.x.x 版 4.0
測試群組 [2] 5.x.x 版 5.0

針對這些識別碼,系統會自動產生下列資訊:

  • Cloud Marketplace 中的產品網址: https://console.cloud.google.com/marketplace/details/examplesoft/example-pro

  • 容器映像檔網址:

    • marketplace.gcr.io/examplesoft/example-pro:4.0
    • marketplace.gcr.io/examplesoft/example-pro/example-queue:4.0
    • marketplace.gcr.io/examplesoft/example-pro/deployer:4.0
    • marketplace.gcr.io/examplesoft/example-pro:5.0
    • marketplace.gcr.io/examplesoft/example-pro/example-queue:5.0
    • marketplace.gcr.io/examplesoft/example-pro/deployer:5.0