From 0bfff0457e6db3f7102fb7f77c58d972634fc93c Mon Sep 17 00:00:00 2001 From: zhangxinhui02 Date: Tue, 23 Dec 2025 14:58:23 +0800 Subject: [PATCH] =?UTF-8?q?feat(helm=20chart):=20=E6=8C=82=E8=BD=BDadapter?= =?UTF-8?q?=E7=9A=84=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6pvc=E5=88=B0core?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E4=B8=BAWebUI=E6=8F=90=E4=BE=9B=E4=BF=AE?= =?UTF-8?q?=E6=94=B9adapter=E9=85=8D=E7=BD=AE=E7=9A=84=E8=83=BD=E5=8A=9B?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- helm-chart/README.md | 19 ++++++++++++------- helm-chart/templates/core/statefulset.yaml | 6 ++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/helm-chart/README.md b/helm-chart/README.md index a79f3dca..10a8f1de 100644 --- a/helm-chart/README.md +++ b/helm-chart/README.md @@ -85,7 +85,7 @@ helm install maimai \ 从旧版本升级的用户,旧的ConfigMap的配置会自动迁移到新的存储卷的配置文件中。 -### 动态生成的ConfigMap +### 部署时自动重置的配置 adapter的配置中的`napcat_server`和`maibot_server`的`host`和`port`字段,会在每次部署/更新Helm安装实例时被自动重置。 @@ -96,14 +96,19 @@ adapter的配置中的`napcat_server`和`maibot_server`的`host`和`port`字段 因此,首次部署时,ConfigMap的生成会需要一些时间,部分Pod会无法启动,等待几分钟即可。 -### 运行统计看板与core的挂载冲突 +### 跨节点PVC挂载问题 -如果启用了运行统计看板,那么statistics_dashboard会与core共同挂载statistics_dashboard存储卷,用于同步html文件。 +MaiBot的一些组件会挂载同一PVC,这主要是为了同步数据或修改配置。 -如果k8s集群有多个节点,且statistics_dashboard与core未调度到同一节点,那么就需要statistics_dashboard的PVC访问模式具备`ReadWriteMany`访问模式。 +如果k8s集群有多个节点,且共享相同PVC的Pod未调度到同一节点,那么就需要此PVC访问模式具备`ReadWriteMany`访问模式。 -不是所有存储卷的底层存储都支持`ReadWriteMany`访问模式。 +不是所有存储控制器都支持`ReadWriteMany`访问模式。 -如果你的存储底层无法支持`ReadWriteMany`访问模式,你可以通过`nodeSelector`配置将statistics_dashboard与core调度到同一节点来避免问题。 +如果你的存储控制器无法支持`ReadWriteMany`访问模式,你可以通过`nodeSelector`配置将彼此之间共享相同PVC的Pod调度到同一节点来避免问题。 -*对于预处理任务和`sqlite-web`,上述问题也同样会出现,需要注意。* +会共享PVC的组件列表: + +- `core`和`adapter`:共享`adapter-config`,用于为`core`的WebUI提供修改adapter的配置文件的能力。 +- `core`和`statistics-dashboard`:共享`statistics-dashboard`,用于同步统计数据的html文件。 +- `core`和`sqlite-web`:共享`maibot-core`,用于为`sqlite-web`提供操作MaiBot数据库的能力。 +- 部署时的预处理任务`preprocessor`和`adapter`、`core`:共享`adapter-config`和`core-config`,用于初始化`core`和`adapter`的配置文件。 diff --git a/helm-chart/templates/core/statefulset.yaml b/helm-chart/templates/core/statefulset.yaml index 4d8589b8..842a57b0 100644 --- a/helm-chart/templates/core/statefulset.yaml +++ b/helm-chart/templates/core/statefulset.yaml @@ -60,6 +60,9 @@ spec: - mountPath: /MaiMBot/config/bot_config.toml name: config subPath: bot_config.toml + - mountPath: /MaiMBot/adapters-config/config.toml # WebUI修改adapter配置所用 + name: adapter-config + subPath: config.toml {{- if .Values.statistics_dashboard.enabled }} - mountPath: /MaiMBot/statistics name: statistics @@ -90,6 +93,9 @@ spec: - name: config persistentVolumeClaim: claimName: {{ .Release.Name }}-maibot-core-config + - name: adapter-config + persistentVolumeClaim: + claimName: {{ .Release.Name }}-maibot-adapter-config {{- if .Values.statistics_dashboard.enabled }} - name: statistics persistentVolumeClaim: