项目

微服务解决方案:Helm 图表与 Kubernetes

您必须拥有ABP Business或更高级别的许可才能创建微服务解决方案。

本文档介绍如何使用Helm图表将微服务解决方案部署到Kubernetes集群中。微服务解决方案模板包含针对每个微服务、API网关、应用程序以及基础设施(Redis、RabbitMQ等)的Helm图表。您可以使用这些图表将解决方案部署到Kubernetes集群。您可以在解决方案的etc/helm文件夹中找到这些Helm图表。

文件夹结构

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

helm-folder

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

  • bookstoreBookstore解决方案的Helm图表。文件夹名称应与您的项目名称相同。
    • charts:解决方案的子图表。每个微服务、API网关、应用程序和基础设施都有其自己的图表。
    • templates:解决方案的模板。包含ingress主机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:用于为ingress控制器创建本地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

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

./build-all-images.ps1
./create-tls-secrets.ps1
./install.ps1

卸载Helm图表

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

  • Namespace:要卸载Helm图表的命名空间。默认值为项目名称加上-local后缀。
  • ReleaseName:Helm图表的发布名称。默认值为项目名称加上-local后缀。

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

./uninstall.ps1

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

kubernetes


在本文档中