本页介绍了设置 Google Cloud 环境的步骤,以便您可以分发 Kubernetes 应用。
创建工作区
我们建议您在 Google Cloud 控制台中创建一个主要用于您的 Cloud Marketplace 产品的新项目。
为了管理您提交到 Cloud Marketplace 的产品,建议您创建一个以 -public
结尾的项目 ID。如需为产品创建项目,请参阅创建和管理项目。
如果您已经设置了一个要在 Cloud Marketplace 上销售的项目,并且想要使用该项目,请验证是否已正确为 Kubernetes 授予 Identity and Access Management (IAM) 角色,然后跳至设置容器注册表。
为项目授予角色
如需完成项目设置,请完成以下步骤:
创建项目后,请在项目级别授予以下角色:
- Project Editor,改为
cloud-commerce-marketplace-onboarding@twosync-src.google.com
- Service Management Administrator (
roles/servicemanagement.serviceAdmin
),向cloud-commerce-marketplace-onboarding@twosync-src.google.com
和managed-services@cloud-marketplace.iam.gserviceaccount.com
授予 - Config Editor (
roles/servicemanagement.configEditor
),改为cloud-commerce-producer@system.gserviceaccount.com
如需授予对项目的访问权限,请参阅授予、更改和撤消对资源的访问权限。
- Project Editor,改为
在服务级别向
cloud-commerce-procurement@system.gserviceaccount.com
授予以下角色:- Service Consumer (
roles/servicemanagement.serviceConsumer
) - Service Controller (
roles/servicemanagement.serviceController
)
如需了解如何在服务级别授予访问权限,请参阅授予和撤消对 API 的访问权限。
- Service Consumer (
设置安全联系人。如需了解详情,请参阅管理通知联系人。
填写 Cloud Marketplace 团队为您提供的项目信息表单。
设置 Container Registry
您需要一个 Container Registry 代码库来托管应用的容器映像。Artifact Analysis 会持续扫描应用映像以查找漏洞,以便您可以在将产品提交到 Cloud Marketplace 之前审核并解决问题。
要设置 Container Registry、Docker 和 Google Cloud SDK,请按照 Container Registry 快速入门进行操作。
设置 Container Registry 后,在包含注册表的项目中,将 Project Viewer 角色授予 cloud-commerce-marketplace-onboarding@twosync-src.google.com
。
启用 Container Analysis API
您必须启用 Artifact Analysis API,该 API 会在 Container Registry 中扫描容器映像中的漏洞。如需大致了解 Artifact Analysis 中的漏洞扫描,请参阅 Container Registry 文档。
将您的产品添加到 Cloud Marketplace
如需在 Cloud Marketplace 中创建和发布产品,请使用 Producer Portal。在您填写 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 参考。
整理版本
通常,应用的每个版本都必须采用 Semantic Versioning 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
发布轨道下。
当您发布向后不兼容的应用版本或要求用户执行手动迁移步骤的版本时,请在新轨道中发布它,以便用户可以计划更新。
选择您的产品标识符
您必须为公司、产品和容器映像选择以下标识符,这些标识符用于创建 Cloud Marketplace 网址和容器映像的 URI:
公司名称。例如,如果贵公司名称为 Examplesoft Inc.,则可以使用标识符
examplesoft
。产品名称。例如,如果产品名称为 Example Pro,则使用标识符
example-pro
。产品的发布轨道,比如
4.0
。您的容器映像。为应用中的每个容器映像选择唯一的标识符。所有应用都需要以下标识符:
- 主要映像:此容器映像是产品的主映像,并使用和产品相同的标识符。例如,如果您的产品标识符为
example-pro
,则主映像使用相同的标识符。 deployer
:轨道的部署容器映像。当用户从 Google Cloud 控制台部署应用时,部署容器将运行。您创建应用软件包时,会创建部署映像。
- 主要映像:此容器映像是产品的主映像,并使用和产品相同的标识符。例如,如果您的产品标识符为
例如,公司 Examplesoft Inc. 为其产品 Example Pro 选择以下标识符:
名称 | 标识符 | |
---|---|---|
公司 | Examplesoft Inc | examplesoft |
产品 | Example Pro | example-pro |
映像 [1](主要) | Example Pro 服务器 | 无 |
映像 [2] | Example Queue | example-queue |
映像 [deployer] | 无 | deployer |
发布轨道 [1] | 4.x.x 版 | 4.0 |
发布轨道 [2] | 5.x.x 版 | 5.0 |
对于这些标识符,将自动生成以下信息:
Cloud Marketplace 中的产品网址:
https://console.cloud.google.com/marketplace/details/examplesoft/example-pro
容器映像 URI:
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