本頁面說明如何按照步驟設定 Google Cloud 環境,以便發布 Kubernetes 應用程式。
建立工作區
建議您在 Google Cloud 控制台中建立專用於 Cloud Marketplace 產品的新專案。
如要管理提交至 Cloud Marketplace 的產品,建議您建立新專案,並使用結尾為 -public
的專案 ID。如要為產品建立專案,請參閱「建立及管理專案」。
如果您已設定要用於在 Cloud Marketplace 上銷售的專案,請確認已正確授予 Kubernetes 的 Identity and Access Management (IAM) 角色,然後跳至「設定 Container Registry」一節。
授予專案角色
如要完成專案設定,請完成下列步驟:
建立專案後,請在專案層級授予下列角色:
- 專案編輯器,至
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
如要授予專案存取權,請參閱「授予、變更及撤銷資源存取權」。
- 專案編輯器,至
在服務層級將下列角色授予
cloud-commerce-procurement@system.gserviceaccount.com
:- 服務消費者 (
roles/servicemanagement.serviceConsumer
) - 服務控制器 (
roles/servicemanagement.serviceController
)
如需服務層級授予存取權的步驟,請參閱「授予及撤銷 API 存取權」。
- 服務消費者 (
設定安全聯絡人。詳情請參閱「管理通知聯絡人」。
填妥 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 項目,請按照下列步驟操作:
在 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
。按一下頁面頂端的「新增產品」。
選取「Kubernetes」。
在「產品名稱」下方輸入產品名稱,並確認產品 ID。產品 ID 會用在 Cloud Marketplace 產品資訊的網址中。
按一下「建立」,系統可能需要幾秒鐘的時間來建立產品。
您會在後續步驟中新增解決方案的定價模式和行銷資訊。
在 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 主控台部署應用程式時,就會執行部署容器。您會在建立應用程式套件時建立部署映像檔。
- 主要映像檔:這個容器映像檔是產品的主要映像檔,並與產品使用同一個 ID。例如,如果產品 ID 為
例如,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