本文将创建一个简单的 Helm Chart,用于在基于 Kubernetes 的 Rancher 系统上安装 Cheshire Cat AI 作为应用程序(app)。
我们首先总结 Kubernetes 系统的关键概念,然后介绍 Helm Chart,最后演示如何通过 Rancher 的网页界面在安装和更新应用时设置一些参数。

介绍:系统组件
点击名称查看各组件描述。
实际上,可以用 Cheshire Cat 创建一个 AI 助手,将其安装在基于 Kubernetes 的 Docker 容器中。构成该系统的所有组件配置均可通过 Helm Chart 描述,并通过 Rancher 的 网页界面 管理。
Helm Chart 说明
该Helm Chart 定义了构成系统并使应用在集群上运行的所有组件。
主要文件包括:
- Chart.yaml:主文件,定义包及其元数据:版本、名称、图标、描述、关键词、维护者等。
- values.yaml:包含所有组件的可配置属性,例如使用的 Docker 镜像、应用端口、卷大小、Pod 副本数等。
- questions.yaml:定义在 Rancher 网页界面中显示的交互字段,用于自定义部署。
- templates/deployment.yaml:用于创建管理应用 Pod 的 Deployment 资源模板。这里创建了一个名为 kk-cheshirecatai 的容器,安装镜像
ghcr.io/cheshire-cat-ai/core:latest ,挂载三个卷:static-volume、data-volume 和 plugins-volume。定义了环境变量 CCAT_API_KEY,并暴露端口 80 和 5678。
- templates/service.yaml:定义服务暴露的端口(80 和 5678)及负载均衡方式(ClusterIP)。
- templates/ingress.yaml:指定应用关联的 URL 为 cheshirecatai.cbc.it,并管理 HTTPS。
- templates/secret.yaml:定义名为 cheshirecatai-secret 的 secret,是一个 API key,可用于让 WordPress 网站与该 Cheshire Cat AI 实例通信。
- templates/_helpers.tpl:包含一些可复用函数,用于集中创建名称和标签,供其他文件调用,如 {{- define “kk-cheshirecatai.name” -}}。
如前所述,所有文件均为 YAML 格式,除最后一个外,扩展名可用 yaml 或 yml。
Rancher 的 questions.yaml 文件工作原理
定义集群组件的所有 YAML 文件都包含变量,例如:
{{ .Values.service.ports.http }}
{{ .Values.image.repository }}:{{ .Values.image.tag }}
{{ .Values.image.pullPolicy }}
该语法表示使用 values.yaml 文件中的对应值。
在 Kubernetes 上安装或更新应用时,所有变量值都会被读取并用于创建相应组件。
在 Rancher 中,可以通过其图形界面设置全部或部分参数。为此,需要在 questions.yaml 文件中指定要设置的参数,如下图所示。安装或更新时,这些值会用于生成一个新的 values 文件,该文件是原始文件与 questions.yaml 覆盖值的合并。新的 values 文件将通过 helm 命令的 –values 参数传递,其值用于创建或修改各组件(如 deployment.yaml、service.yaml、ingress.yaml 等)。

应用验证与安装
创建 Helm Chart 时很容易犯各种错误,尤其是语法和缩进错误。
可以执行以下两个命令:第一个进行简单检查,第二个生成一个文件,描述将创建或修改的所有组件,变量被替换为实际使用的值(除非在 Rancher 中直接定制)。
helm lint helm template my-release . --debug > prova.yml
要在 Rancher 上安装应用,需将其连接到包含该 Helm Chart 的仓库(Rancher->Apps->Repositories)。

此时,应用将在 Rancher->Apps->Charts 中显示,可通过网页界面安装。

若无 Rancher,可直接在 Kubernetes 上安装/更新应用,使用以下命令:
helm install kk-cheshirecatai . --namespace cheshire-cat --create-namespace helm upgrade kk-cheshirecatai . --namespace cheshire-cat
但此时 questions.yaml 文件会被忽略。
来源与参考
- Cheshire Cat AI,官方网站。
- Docker,官方网站。
- Kubernetes,官方网站。
- Helm,官方网站。
- Rancher,官方网站。
- 使用 Cheshire Cat AI 的简单 WordPress 聊天机器人,本博客。
- 微服务系统管理的组件与技术,本博客。
- 微服务:架构、组件与互操作性,本博客。
- 本文介绍的 Helm Chart。
*** 本文为使用 n8n 和 OpenAI 自动翻译生成。

