容器映像解决方案的技术设置

本页面概述了如何创建使用 Google Cloud Marketplace 分发容器映像解决方案所需的关键技术组件。

如果您在初始配置过程中有疑问,请与您的 Google Cloud Marketplace 合作伙伴工程师联系。如果您不知道您的专属合作伙伴工程师是谁,请通过 cloud-partner-onboarding@google.com 与我们联系。

Container Registry 和 IAM 设置

您需要创建一个临时 Container Registry 代码库,并将您想要在解决方案中分发的映像推送到该代码库,才能在合作伙伴门户中创建解决方案。在您的项目中,您必须将 Project Viewer 角色授予 marketplace-ops@cloud.google.com

开始使用 Container Registry

若要向 Container Registry 推送标记和容器映像,请按照 Container Registry 文档中的准备工作中的步骤执行操作。然后,使用以下步骤启用容器分析 API。

如果您已经安装了 gcloud 和 Docker,则必须从“API 库”页面启用以下 API:

  • Container Registry API
  • Container Analysis API

Container Registry API 可让您将内容推送到 Container Registry,而 Container Analysis API 允许进行安全扫描。

如果您无法访问这些 API 中的任何一个,请与您的合作伙伴工程师联系。

标记和推送映像

  1. 选择 Container Registry 临时代码库路径。建议您的存储库遵循结构 gcr.io/YOUR-PARTNER-ID/YOUR-SOLUTION-ID

    • 临时代码库必须位于 gcr.io 中(诸如 eu.gcr.io 等其他区域尚不受支持)
    • 保存或复制临时代码库路径,以在合作伙伴门户中创建解决方案。
  2. 构建要推送到 Container Registry 临时代码库的映像。

  3. 通过 Docker 给映像加上“latest”标记。

    docker tag image_name staging_repo_path:tag

    例如:docker tag test-image gcr.io/testpartner/testsolution:latest

    请注意,如果用户不指定标记,则会拉取标记为“latest”的映像。

  4. 通过 gcloud 推送您的映像:

    gcloud docker push staging_repo_path:tag

  5. 对要添加到临时代码库的任何其他标记或映像重复此操作。单个映像可能具有多个标记。

    • 请记住,将映像推送到临时代码库不会自动将映像公开给用户;只有符合下列条件的映像才会自动公开给用户:映像含有您所选择的标记,以及映像已发布。
    • 代码库的范围是其路径所指定的文件夹的单个级层。代码库的其他文件夹内的任何映像实际上都不在代码库本身中。换句话说,如果映像位于 gcr.io/testpartner/testsolution/1.0 中,则该映像不在代码库 gcr.io/testpartner/testsolution 中。gcr.io/testpartner/testsolution/1.0 是一个单独的代码库。
  6. 授予 Google 对您的临时代码库及其安全扫描结果的读取权限。

    1. 导航到项目(包含临时 Container Registry 代码库)的 IAM 页面。

    2. 点击页面顶部附近的 + ADD(+ 添加)。

    3. cloud-marketplace@system.gserviceaccount.com 添加为 Storage Object Viewer

      这样 Google 就可以将您选择的映像复制到 Google 拥有的 Container Registry 代码库中,而最终用户将从该代码库中拉取这些映像。

    4. 如果您所需的临时 Container Registry 代码库并非位于您将使用合作伙伴门户的项目中,那么请确保您的合作伙伴门户项目的用户对此项目具有 Storage Object Viewer(存储对象查看者)访问权限。

    5. 同时将 cloud-marketplace@system.gserviceaccount.com 设为 Container Analysis Occurrences Viewer

      这样 Google 就可以验证您的映像是否符合安全要求。

    6. 点击添加以完成操作。

在合作伙伴门户中创建解决方案

本部分介绍如何在合作伙伴门户中创建和更新容器映像解决方案。

合作伙伴门户的直接链接是:

https://console.cloud.google.com/partner/solutions?project=YOUR_PROJECT_ID

然后导航到 Solutions(解决方案)部分。

如果您没有看到该链接或无法访问该网址,请确认您已选择正确的项目。如果您仍然看不到该链接,请 cloud-partners@google.com 了解详情。

第 2 步:创建新的解决方案

  1. 点击页面顶部的 ADD SOLUTION(添加解决方案)。
  2. 为解决方案命名并检查解决方案 ID。
  3. 选择 Container(容器)解决方案类型。
  4. 输入您的临时代码库网址。

    • 此网址就是用于标记和推送映像的临时代码库路径。
    • 命令提示符将验证临时代码库路径(请确保它已存在且可通过合作伙伴门户访问)。创建按钮将处于已停用状态,除非提供了有效的代码库。

第 3 步:修改解决方案的营销信息

  1. 要修改营销信息,请点击您的解决方案 ID。
  2. 和其他解决方案类型一样,请完成 Solution Metadata(解决方案元数据)、Solution Details(解决方案详细信息)及 Documentation & Support(文档和支持)部分。

第 4 步:创建“latest”版本(以及任何其他版本)

您需要创建一个与 Container Registry 标记“latest”(区分大小写)对应的版本。这将是下拉列表中的默认版本,而且在未提供标记时将从官方 Container Registry 代码库中拉取该版本。您可以选择创建其他版本,但我们建议您只创建少数几个版本,以免最终用户不知所措。

  1. 点击解决方案编辑器菜单中 Versions(版本)旁边的修改按钮。
  2. 点击 Create version(创建版本)。
  3. 填写版本信息:

    • 请注意,您所做的所有更改都会反映在修改面板左侧的实时预览中。请记住,您可以点击解决方案标题旁边以及元数据部分中的 Version(版本)下拉列表,不过在您只有一个版本时下拉列表会处于已停用状态:

    • 选择版本应该对应的 Container Registry 标记。这将用于识别版本,而且在创建版本后无法更改。

    • 指定标题(它将显示在下拉列表中)。

    • 指定说明(可选;它将显示在下拉列表和元数据部分中)。

    • 指出适用于您的解决方案的操作系统和其他打包软件(至少一个)。这些项在解决方案提交后无法更改。

    • 点击 Save(保存)。

  4. 对您想要添加的任何后续版本重复此过程。

  5. 通过点击并拖动手柄将版本排列成所需的顺序。

    • 您的更改会以实时预览形式反映。

请记住,您可以离开合作伙伴门户并稍后返回以继续工作或者完成并提交您的草稿。您的进度将加以保存。

第 5 步:进行任何所需的版本修订

要进行任何必要的版本修订,请点击 Version overview(版本概览)页面上表格中您想要修改的版本的 (Container Registry) 标记。

  • 您可以在提交之前修改版本的标题、说明、当前映像、操作系统或打包软件。

    • 请注意,操作系统和打包软件与特定摘要相关联。草稿提交后,您将无法更改操作系统或打包软件。但是,如果您更新版本的摘要,则系统会要求您确认/修改该特定摘要的操作系统和打包软件。

    • 如果临时代码库中包含标记的当前映像与草稿中的映像不匹配,则系统将启用 Update to current digest(更新到当前摘要)按钮。点击该按钮,并确认/修改新映像的操作系统和打包软件。

    • 您还可以删除尚未提交的版本(只是草稿的一部分),但必需的“latest”版本除外。

第 6 步:提交

确认解决方案的外观和行为符合您的预期后,请点击解决方案编辑器主菜单中的提交审核按钮。