设置您的 Google Cloud 环境

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

创建工作区

我们建议您在 Google Cloud 控制台中创建一个主要用于您的 Cloud Marketplace 产品的新项目。

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

如果您已经设置了一个要在 Cloud Marketplace 上销售的项目, 验证是否已授予 Identity and Access Management (IAM) 角色 请跳到 设置 Container Registry

为项目授予角色

如需完成项目的设置,请完成以下步骤:

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

    • Project Editor,改为 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
    • Config Editor (roles/servicemanagement.configEditor),改为 cloud-commerce-producer@system.gserviceaccount.com

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

  2. 在服务级别向 cloud-commerce-procurement@system.gserviceaccount.com 授予以下角色:

    • 服务使用方 (roles/servicemanagement.serviceConsumer)
    • Service Controller (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 后, 可以授予 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 条目,请执行以下操作:

  1. 在 Google Cloud 控制台中打开 Producer Portal:

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

    YOUR_PUBLIC_PROJECT_ID 替换为公开 ID 为 Cloud Marketplace 创建的项目,例如 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
产品 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