設定 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.commanaged-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.11.0.21.3.1 等。您可以選擇在版本號碼後方加上連字號,以便新增預先發布修飾符號,例如 1.3.1-alpha201910。預發布修飾符可用來儲存及強調您認為實用的任何額外資訊,例如用於表示版本建立日期的建構日期。

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

舉例來說,如果您在 Cloud Marketplace 上發布軟體的 2.0 版本,且預期 2.0.12.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