设置您的 Google Cloud 环境

本页面介绍了设置 Google Cloud 环境的步骤,以便您可以分发 Kubernetes 应用。

创建工作区

我们建议您在 Google Cloud 控制台中为您的 Cloud Marketplace 产品创建新项目。

如需管理提交到 Cloud Marketplace 的产品,我们建议您使用以 -public 结尾的项目 ID 创建一个新项目。如需为产品创建项目,请参阅创建和管理项目

如果您已在使用一个设置为在 Cloud Marketplace 上销售的项目,请验证是否已为 Kubernetes 正确授予角色,然后跳至设置 Container Registry

创建项目后,请在项目级授予以下角色:

  • 拥有 cloud-commerce-marketplace-onboarding@twosync-src.google.com 的 Project Editor 和 Service Management Administrator 角色。

  • managed-services@cloud-marketplace.iam.gserviceaccount.com 的 Service Management Administrator 角色。

  • cloud-commerce-producer@system.gserviceaccount.com 拥有 Config Editor (roles/servicemanagement.configEditor) 角色。

如需了解授予项目访问权限的步骤,请参阅授予、更改和撤消对资源的访问权限

授予项目级层角色后,请在服务级层授予以下角色:

  • Service Consumer 角色 (roles/servicemanagement.serviceConsumer) 和 Service Controller 角色 (roles/servicemanagement.serviceController) 授予 cloud-commerce-procurement@system.gserviceaccount.com

如需了解授予服务级别访问权限的步骤,请参阅授予和撤消对 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 授予 Project Viewer 角色。

启用 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 条目,请执行以下操作:

  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 参考

整理版本

通常,应用的每个版本都必须采用 Semantic Versioning 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 发布轨道下整理这些版本。

当您发布向后不兼容的应用版本或要求用户执行手动迁移步骤的版本时,请在新轨道中发布它,以便用户可以计划更新。

选择您的产品标识符

您必须为您的公司、产品和容器映像选择以下标识符(这些标识符用于创建您的 Cloud Marketplace 网址以及容器映像的 URI):

  • 公司名称。例如,如果贵公司名称为 Examplesoft Inc.,则可以使用标识符 examplesoft

  • 产品名称。例如,如果产品名称为 Example Pro,则使用标识符 example-pro

  • 产品的发布轨道,比如 4.0

    查看版本整理要求

  • 您的容器映像。为应用中的每个容器映像选择唯一的标识符。所有应用都需要以下标识符:

    • 主要映像:此容器映像是产品的主映像,并使用和产品相同的标识符。例如,如果您的产品标识符为 example-pro,则主映像使用相同的标识符。
    • deployer:轨道的部署容器映像。当用户从 Google Cloud 控制台部署应用时,部署容器会运行。您在创建应用软件包时创建部署映像。

例如,公司 Examplesoft Inc. 为其产品 Example Pro 选择以下标识符:

名称 标识符
公司 Examplesoft Inc examplesoft
Product 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