通过 Cloud Marketplace 提供 Terraform Kubernetes 应用

Google Cloud Marketplace 中的 Terraform Kubernetes 应用可让客户使用 Terraform 在 Google Kubernetes Engine 上部署您的容器化应用。您的用户无需为使用 Terraform Kubernetes 应用付费,但需要为使用 Google Cloud 资源付费。您可以向所有 Cloud Marketplace 用户公开提供 Terraform Kubernetes 应用,也可以使用非公开优惠私下提供。

您通过 Cloud Marketplace 提供的 Terraform Kubernetes 应用使用 Helm 图表定义其配置,而 Helm 图表托管在 Artifact Registry 中。设置完毕后,您可以通过 Producer Portal 将应用注册到 Cloud Marketplace。

Terraform Kubernetes 应用的初始配置概览

通过 Cloud Marketplace 提供 Terraform Kubernetes 应用涉及以下步骤:

  1. 为 Cloud Marketplace 准备 Terraform Kubernetes 应用。这包括设置 Artifact Registry 并将应用映像推送到其中。

  2. 在 Producer Portal 中为您的应用添加价格信息

  3. 在 Producer Portal 中配置应用的部署,包括其 Terraform 模块、Helm 图表和容器映像。

  4. 将您的产品发布到 Cloud Marketplace。在为产品完成初始配置的过程中,您需要提交产品的各个部分以供审核。Cloud Marketplace 团队会审核每项提交内容,并协助您解决所有问题,然后才会审批提交内容。所有提交内容一经批准,您在几分钟内即可发布和推出产品。

Terraform Kubernetes 应用的要求

您通过 Cloud Marketplace 提供的所有产品都必须符合 Cloud Marketplace 商品详情要求

您的 Terraform Kubernetes 应用必须满足以下附加要求:

  • 您的应用必须在采用 x86 处理器的 GKE 节点上运行。
  • 您所有应用的 Helm 图表和容器映像都必须上传到您的 Artifact Registry 注册表中,并上传到您用于 Terraform Kubernetes 应用的同一代码库和项目。
  • 您的 Artifact Registry 注册表必须包含 Helm 图表。
  • 您的 Terraform 模块必须以 ZIP 文件的形式托管在 Cloud Storage 存储桶中,该存储桶与您用于 Terraform Kubernetes 应用的项目位于同一项目中。
  • 您必须为用于托管 Terraform 模块的 Cloud Storage 存储桶启用版本控制。
  • 您必须添加用户指南,其中包含从命令行部署应用、配置应用以及使用该应用的步骤。如需了解详情,请参阅本文档中的用户指南要求
  • 要保护用户免受不稳定 API 的影响,请仅使用测试版或正式版 Kubernetes 资源。

应用图片的要求

您的应用图片必须满足以下要求:

  • 您所有应用的映像都必须标记有发布轨道和当前版本。例如,如果要在 2.0 发布轨道上发布版本 2.0.5,则所有相应映像都必须标记有 2.02.0.5。如需了解详情,请参阅整理版本
  • 您应用的所有映像都必须在其映像清单中包含以下注解:

    com.googleapis.cloudmarketplace.product.service.name=services/SERVICE_NAME
    

    SERVICE_NAME 替换为服务的名称。 如需查找您的服务名称,请参阅 Producer Portal 中概览页面上的产品表格。如需详细了解注释,请参阅 GitHub 上开放容器计划的注释文档。

对 Artifact Registry 代码库的要求

应用的 Helm 图表和容器映像必须属于单个 Artifact Registry 代码库。

例如,如果您的 Artifact Registry 代码库是 us-docker.pkg.dev/exampleproject,则应用的 Helm 图表和容器映像应类似于以下内容:

  • us-docker.pkg.dev/exampleproject/exampleapp/chart
  • us-docker.pkg.dev/exampleproject/exampleapp/image1
  • us-docker.pkg.dev/exampleproject/exampleapp/image2

Terraform 模块的要求

客户使用 Terraform 模块通过 Infrastructure Manager 从 Cloud Marketplace 部署您的产品。Terraform 模块会打包应用的 Kubernetes 配置。

使用示例模块作为起点,并按照合作伙伴指南构建与您的应用兼容的 Terraform 模块。

传递给应用的参数

您的 Terraform 模块必须声明在客户选择您的应用时需要从客户收集的参数。这些参数随后会在用户部署应用时提供给 Helm 图表容器。

如需配置这些参数,您的 Terraform 模块必须包含 schema.yaml 文件。

如需了解如何创建 schema.yaml,请参阅 GitHub 上的创建架构指南

GPU 集群请求

如果您的应用有特定的 GPU 需求或者您的应用属于 GPU 密集型,则您可以使用部署者架构指定集群中的 GPU 类型和数量。 如果您指定了 GPU 需求,则系统会关闭辅助集群创建功能。

您的应用可能会请求通用的 Nvidia GPU 或特定的 Nvidia 平台

应用用户指南的要求

应用的用户指南必须包含以下信息:

  • 概览:应用的总体概览,涵盖基本功能和配置选项。本部分还必须链接到您在 Cloud Marketplace 上发布的应用。
  • 一次性设置:包括配置 Helm 和安装 Application CustomResourceDefinition (CRD) 的步骤,以便您的集群可以管理 Application 资源。
  • 安装:包括以下内容:
    • 用于部署应用的命令
    • 传递界面配置中可用的参数
    • 将映像引用固定到不可变摘要
    • 您已添加到 Terraform 模块中的任何自定义输入字段的相关信息(如适用);请参阅有关向 Terraform 模块添加输入字段的说明
  • 基本用法:以下任务的指南:
    • 修改用户名和密码
    • 连接到管理控制台(如适用)
    • 连接客户端工具并运行示例命令(如适用)
    • 启用入站流量并安装 TLS 证书(如适用)
  • 备份和恢复:有关备份应用状态以及从备份恢复应用状态的信息。
  • 映像更新:有关更新应用映像以获取修补程序或次要更新的信息。
  • 缩放:有关应用伸缩信息(如适用)。
  • 删除:有关删除应用和清理可能剩余的任何资源(例如 PersistentVolumeClaims)的指南。

后续步骤