MaiBot/helm-chart/README.md

109 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# MaiBot Helm Chart
这是麦麦的Helm Chart可以方便地将麦麦部署在Kubernetes集群中。
当前Helm Chart对应的麦麦版本可以在`Chart.yaml`中查看`appVersion`项。
详细部署文档:[Kubernetes 部署](https://docs.mai-mai.org/manual/deployment/mmc_deploy_kubernetes.html)
## 可用的Helm Chart版本列表
| Helm Chart版本 | 对应的MaiBot版本 | Commit SHA |
|----------------|--------------|------------------------------------------|
| 0.11.5-beta | 0.11.5-beta | ad2df627001f18996802f23c405b263e78af0d0f |
| 0.11.3-beta | 0.11.3-beta | cd6dc18f546f81e08803d3b8dba48e504dad9295 |
| 0.11.2-beta | 0.11.2-beta | d3c8cea00dbb97f545350f2c3d5bcaf252443df2 |
| 0.11.1-beta | 0.11.1-beta | 94e079a340a43dff8a2bc178706932937fc10b11 |
| 0.11.0-beta | 0.11.0-beta | 16059532d8ef87ac28e2be0838ff8b3a34a91d0f |
| 0.10.3-beta | 0.10.3-beta | 7618937cd4fd0ab1a7bd8a31ab244a8b0742fced |
| 0.10.0-alpha.0 | 0.10.0-alpha | 4efebed10aad977155d3d9e0c24bc6e14e1260ab |
## TL; DR
```shell
helm install maimai \
oci://reg.mikumikumi.xyz/maibot/maibot \
--namespace bot \
--version <MAIBOT_VERSION> \
--values maibot.yaml
```
## Values项说明
`values.yaml`分为几个大部分。
1. `EULA` & `PRIVACY`: 用户必须同意这里的协议才能成功部署麦麦。
2. `pre_processor`: 部署之前的预处理Job的配置。
3. `adapter`: 麦麦的Adapter的部署配置。
4. `core`: 麦麦本体的部署配置。
5. `statistics_dashboard`: 麦麦的运行统计看板部署配置。
麦麦每隔一段时间会自动输出html格式的运行统计报告此统计报告可以部署为看板。
出于隐私考虑,默认禁用。
6. `napcat`: Napcat的部署配置。
考虑到复用外部Napcat实例的情况Napcat部署已被解耦。用户可选是否要部署Napcat。
默认会捆绑部署Napcat。
7. `sqlite_web`: sqlite-web的部署配置。
通过sqlite-web可以在网页上操作麦麦的数据库方便调试。不部署对麦麦的运行无影响。
此服务如果暴露在公网会十分危险,默认不会部署。
8. `config`: 这里填写麦麦各部分组件的运行配置。
这里填写的配置仅会在初次部署时或用户指定时覆盖实际配置文件且需要严格遵守yaml文件的缩进格式。
- `override_*_config`: 指定本次部署/升级是否用以下配置覆盖实际配置文件。默认不覆盖。
- `adapter_config`: 对应adapter的`config.toml`。
此配置文件中对于`napcat_server`和`maibot_server`的`host`和`port`字段的配置会被上面`adapter.service`中的配置覆盖,因此不需要改动。
- `core_model_config`: 对应core的`model_config.toml`。
- `core_bot_config`: 对应core的`bot_config.toml`。
## 部署说明
使用此Helm Chart的一些注意事项。
### 麦麦的配置
要修改麦麦的配置最好的方法是通过WebUI来操作。此处的配置只会在初次部署时或者指定覆盖时注入到MaiBot中。
`0.11.6-beta`之前的版本将配置存储于k8s的ConfigMap资源中。随着版本迭代MaiBot对配置文件的操作复杂性增加k8s的适配复杂度也同步增加且WebUI可以直接修改配置文件因此自`0.11.6-beta`版本开始各组件的配置不再存储于k8s的ConfigMap中而是直接存储于存储卷的实际文件中。
从旧版本升级的用户旧的ConfigMap的配置会自动迁移到新的存储卷的配置文件中。
### 动态生成的ConfigMap
adapter的配置中的`napcat_server`和`maibot_server`的`host`和`port`字段,会在每次部署/更新Helm安装实例时被自动重置。
自动重置的原因:
- core的Service的DNS名称是动态的由安装实例名拼接无法在adapter的配置文件中提前确定。
- 为了使adapter监听所有地址以及保持Helm Chart中配置的端口号需要在adapter的配置文件中覆盖这些配置。
因此首次部署时ConfigMap的生成会需要一些时间部分Pod会无法启动等待几分钟即可。
### 运行统计看板与core的挂载冲突
如果启用了运行统计看板那么statistics_dashboard会与core共同挂载statistics_dashboard存储卷用于同步html文件。
如果k8s集群有多个节点且statistics_dashboard与core未调度到同一节点那么就需要statistics_dashboard的PVC访问模式具备`ReadWriteMany`访问模式。
不是所有存储卷的底层存储都支持`ReadWriteMany`访问模式。
如果你的存储底层无法支持`ReadWriteMany`访问模式,你可以通过`nodeSelector`配置将statistics_dashboard与core调度到同一节点来避免问题。
*对于预处理任务和`sqlite-web`,上述问题也同样会出现,需要注意。*