项目

分层解决方案:Helm 图表与 Kubernetes

您必须拥有 ABP Business 或更高级别的许可证才能使用 Kubernetes 功能。

本文档解释如何使用 Helm 图表将分层解决方案部署到 Kubernetes 集群。分层解决方案模板为每个应用程序和基础设施(Redis、RabbitMQ 等)都包含了 Helm 图表。您可以使用这些图表将解决方案部署到 Kubernetes 集群中。您可以在解决方案的 etc/helm 文件夹中查看这些 Helm 图表。

文件夹结构

Helm 图表的文件夹结构如下:

helm-folder

根据您在创建解决方案时选择的模板选项,您可能会拥有不同的图表。

  • bookstore: 适用于 Bookstore 解决方案的 Helm 图表。文件夹名称应与您的项目名称相同。
    • charts: 解决方案的子图表。每个应用程序和基础设施都有其自己的图表。
    • templates: 解决方案的模板。它包括入口主机 URL。
    • Chart.yaml: 图表元数据文件。
    • values.bookstore-local.yaml: 用于 Kubernetes 配置文件 的值覆盖文件。其命名应遵循您的项目名称规范。
    • values.yaml: 图表的默认值文件。
  • build-all-images.ps1: 用于构建解决方案所有 Docker 镜像的 PowerShell 脚本。
  • build-image.ps1: 用于构建指定项目的 Docker 镜像的 PowerShell 脚本。
  • create-tls-secrets.ps1: 用于为入口控制器创建本地 TLS 密钥的 PowerShell 脚本。当您尝试 拦截服务 并在本地运行时,这一点很重要。
  • install.ps1: 用于将解决方案安装到 Kubernetes 集群的 PowerShell 脚本。您可以覆盖默认的参数值。
  • uninstall.ps1: 用于从 Kubernetes 集群卸载解决方案的 PowerShell 脚本。您可以覆盖默认的参数值。

安装 Helm 图表

您可以使用 install.ps1 脚本将解决方案安装到 Kubernetes 集群。该脚本包含以下参数:

  • ChartName: 默认值为项目名称。您可以创建不同的图表并指定图表名称。在 ABP Studio 的 Kubernetes 主图表 功能中,安装图表 命令会自动设置图表名称。
  • Namespace: 用于安装 Kubernetes 资源的命名空间。默认值是带有 -local 后缀的项目名称。
  • ReleaseName: Helm 图表的发布名称。默认值是带有 -local 后缀的项目名称。
  • DotnetEnvironment: 运行应用程序的环境。默认值为 Staging
  • User: 负责安装 Kubernetes 资源的用户。如果您在 指定用户 中配置了用户名,应用程序将自动设置。

在运行脚本之前,您需要构建解决方案的 Docker 镜像。您可以使用 build-all-images.ps1 脚本来构建解决方案的所有 Docker 镜像。之后,请确保您拥有用于入口控制器的 Kubernetes TLS 密钥。在创建解决方案时会自动创建它;但是,如果您从存储库克隆解决方案,则需要手动创建。您可以使用 create-tls-secrets.ps1 脚本来创建 TLS 密钥。然后,您可以运行 install.ps1 脚本将解决方案安装到 Kubernetes 集群。

卸载 Helm 图表

您可以使用 uninstall.ps1 脚本从 Kubernetes 集群卸载解决方案。该脚本包含以下参数:

  • Namespace: 用于卸载 Helm 图表的命名空间。默认值是带有 -local 后缀的项目名称。
  • ReleaseName: Helm 图表的发布名称。默认值是带有 -local 后缀的项目名称。
  • User: 负责卸载 Kubernetes 资源的用户。如果您在 指定用户 中配置了用户名,应用程序将自动设置。

您可以运行 uninstall.ps1 脚本从 Kubernetes 集群卸载解决方案。

./uninstall.ps1

此外,在 ABP Studio 的 Kubernetes 功能中,您可以更轻松地执行相同的操作。您可以使用“安装图表”和“卸载图表”命令来安装和卸载解决方案到 Kubernetes 集群。同时,使用“构建 Docker 镜像”命令来构建解决方案的 Docker 镜像。

kubernetes


在本文档中