news 2026/10/22 10:41:45

ClawManager 多节点 Kubernetes 集群部署指南:结合 Longhorn 持久存储从零到一的完整实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ClawManager 多节点 Kubernetes 集群部署指南:结合 Longhorn 持久存储从零到一的完整实战

ClawManager 多节点 Kubernetes 集群部署指南:结合 Longhorn 持久存储从零到一的完整实战

【免费下载链接】ClawManagerA Kubernetes-native control plane for AI agent instance management, with governed AI access, runtime orchestration, and reusable resources across multiple agent runtimes.项目地址: https://gitcode.com/gh_mirrors/cl/ClawManager

ClawManager 是一个 Kubernetes 原生的 AI 智能体实例管理控制平面,提供受治理的 AI 访问、运行时编排和跨运行时可复用资源。本文将带你完成 ClawManager 多节点 Kubernetes 集群部署:用一份内置 Longhorn 的官方清单,从零搭出带持久存储的 AI 智能体管理平台,全程附命令与排错要点,新手也能照做。

为什么多节点部署必须用 RWX 共享存储?

单节点部署靠本地磁盘(HostPath)就能跑,但一旦集群扩到 3 台以上机器,有一个绕不开的问题:

  • 控制面组件(MySQL、Redis、MinIO)只需要ReadWriteOnce(RWO),任意一个节点的磁盘即可;
  • 智能体工作区(clawmanager-workspaces)却被clawmanager-app、openclaw-runtime、hermes-runtime、opencode-runtime等多个 Deployment 同时挂载,Pod 可能被调度到任何节点——这必须用ReadWriteMany(RWX)跨节点共享卷。

⚠️ 官方明确不支持的"伪多节点"方案:多节点 HostPath、用local-path等节点本地存储冒充 RWX、把集群内部 Service DNS 当 NFS 服务端、把持久数据放进emptyDir。

官方验证路径选择了Longhorn作为示例 CSI:longhorn提供 RWO 卷,longhorn-rwx提供基于 NFSv4 的 RWX 卷。这两个名字只是示例,换成 Ceph、EFS 等同等能力的 StorageClass 完全没问题(见 docs/deployment.md)。

集群架构一图看懂

整份集群清单(deployments/k8s/cluster/clawmanager.yaml)一次部署出这些组件:

组件角色持久化
clawmanager-app前端 + 后端 API 控制平面RWX 工作区卷
mysql应用状态数据库RWO,5 GiB
redis会话 / Team 协作消息总线RWO,1 GiB
minio对象存储(技能包等资源)RWO,10 GiB
skill-scanner技能安全扫描—
*-runtime各类 AI 智能体运行时池RWX 工作区卷
Longhorn v1.12.0分布式块存储 + RWX自身副本数据

四个 PVC 的定义在清单的 clawmanager.yaml 中,部署后在clawmanager-system命名空间生效。

准备工作:节点检查与依赖安装

1. 确认节点健康

kubectl config current-context kubectl get nodes -o wide

所有可能跑工作负载的节点都必须是Ready。Longhorn 不会在不健康的集群上稳定工作,先修好节点再安装。

2. 每个节点安装存储客户端

Longhorn 用 iSCSI 做块卷、NFS 做 RWX 卷,因此每台工作节点都要装对应客户端:

# Ubuntu / Debian apt-get update apt-get install -y open-iscsi nfs-common cryptsetup dmsetup systemctl enable --now iscsid || systemctl enable --now open-iscsi # RHEL / Rocky / Alma yum install -y iscsi-initiator-utils nfs-utils cryptsetup device-mapper systemctl enable --now iscsid

逐台自检:

command -v iscsiadm command -v mount.nfs && command -v mount.nfs4 systemctl is-active iscsid || systemctl is-active open-iscsi

如果mount.nfs4缺失,clawmanager-workspaces的 Pod 会一直卡在ContainerCreating,事件里会出现bad option; you might need a /sbin/mount.<type> helper program——这是新手最容易踩的坑。

3. 处理 multipathd 干扰

systemctl is-active multipathd || true multipath -t 2>/dev/null | grep -F 'devnode "^sd[a-z0-9]+"' || true

期望:multipathd未运行,或黑名单里包含devnode "^sd[a-z0-9]+"。都不满足时,禁用它或按 README 添加黑名单后重启。漏掉这一步的典型症状是Waiting for volume share to be available。

4. 检查跨节点 Pod 网络

先查是否存在重复 Pod IP(有输出就说明 CNI 有问题,必须先修):

kubectl get pods -A \ -o custom-columns=IP:.status.podIP,NS:.metadata.namespace,NAME:.metadata.name,NODE:.spec.nodeName \ --no-headers \ | awk '$1 != "<none>" { count[$1]++ } END { for (ip in count) if (count[ip] > 1) print ip }'

无输出才继续下一步。

5. 副本数与存储节点数对齐

清单默认numberOfReplicas: "3"(定义见 clawmanager.yaml)。只有 3 台及以上节点可用时才保持默认;2 节点测试集群请先改为 2:

sed -i.bak 's/numberOfReplicas: "3"/numberOfReplicas: "2"/g' clawmanager.yaml

否则卷会长期处于degraded降级状态。

一键部署:应用清单并等待组件就绪

确认清单中的镜像所有节点都能拉取后(离线环境请预先导入私有仓库),执行:

kubectl apply -f deployments/k8s/cluster/clawmanager.yaml

然后分三段验证。

① Longhorn 存储层

kubectl -n longhorn-system rollout status daemonset/longhorn-manager --timeout=10m kubectl -n longhorn-system rollout status deployment/longhorn-driver-deployer --timeout=10m kubectl -n longhorn-system rollout status daemonset/longhorn-csi-plugin --timeout=10m kubectl get sc longhorn longhorn-rwx

期望:longhorn-manager与longhorn-csi-plugin在所有节点就绪,两个 StorageClass 都存在。

② ClawManager 工作负载

kubectl -n clawmanager-system get pvc kubectl -n clawmanager-system rollout status deployment/clawmanager-app --timeout=15m kubectl -n clawmanager-system get deploy,pod,pvc -o wide

期望:所有 PVC 为Bound,clawmanager-app、openclaw-runtime、hermes-runtime、opencode-runtime及 MySQL、Redis、MinIO、skill-scannerPod 全部 Running。

③ Longhorn 卷健康

kubectl -n longhorn-system get volumes.longhorn.io \ -o custom-columns=NAME:.metadata.name,STATE:.status.state,ROBUSTNESS:.status.robustness,REPLICAS:.spec.numberOfReplicas,SHARESTATE:.status.shareState

期望:所有卷healthy;工作区 RWX 卷额外应显示SHARESTATE: running和 NFS 端点(share-manager正常启动的标志)。

访问 Web 控制台并验收部署

集群清单把前端暴露为 HTTPS NodePort(clawmanager.yaml):

kubectl get svc -n clawmanager-system # 看到 clawmanager-frontend 443:30443/TCP

浏览器访问https://<任意节点IP>:30443。首次是自签名证书,点"高级 → 继续访问"即可,然后用默认管理员账号登录(建议登录后立即改密码):

👤 用户名:admin🔑 密码:admin123

登录后,Console 仪表盘会直接显示多节点容量视图——节点数、CPU/内存/磁盘分配一目了然,这是验收"多节点生效"最直观的界面:

用户侧的 Desktop Portal 则直接呈现创建在共享工作区上的智能体实例(OpenClaw / Hermes 运行时):

最后可以走一遍"创建 AI 网关模型 → 创建实例"的完整链路(流程见 docs/use_guide_cn.md),确认 RWX 工作区卷在运行时 Pod 中确实可用。

常见问题速查表

症状原因处理
ImagePullBackOff节点拉不到镜像kubectl describe pod找到失败镜像,检查节点仓库访问;离线环境预导入
PVC 一直PendingStorageClass / CSI 未就绪kubectl get sc、kubectl -n clawmanager-system describe pvc <名>看事件
Pod 卡ContainerCreating,提示 mount helper 缺失节点没装 NFS 客户端补装nfs-common/nfs-utils后重启 Pod
RWX 卷卡在shareState: startingNFS 客户端缺失、multipathd干扰或跨节点网络不通查share-manager日志:kubectl -n longhorn-system logs <share-manager-pod>
卷degraded副本数 > 可用存储节点数下调numberOfReplicas或扩容节点
longhorn-driver-deployerCrashLoop重复 Pod IP / 跨节点网络故障回到"准备工作"第 4 步排查 CNI

遇到拿不准的排障细节,按编号对照 deployments/k8s/cluster/README.md 的 Install 章节即可,每一步都给了检查命令和期望输出。

换成自己的存储:只改 6 个环境变量

longhorn/longhorn-rwx不是硬绑定。换成 Ceph、EFS 等存储时,改clawmanager-appDeployment 的这几个环境变量(默认值见 clawmanager.yaml):

变量默认值说明
CLAWMANAGER_STORAGE_PROFILEcluster声明多节点 CSI 模式
K8S_HOSTPATH_FALLBACK_ENABLEDfalse禁止悄悄退回 HostPath
K8S_PVC_BIND_TIMEOUT2mPVC 绑定等待上限
K8S_CONTROL_PLANE_STORAGE_CLASSlonghorn控制面 RWO 卷的 StorageClass
K8S_INSTANCE_STORAGE_CLASSlonghorn实例 RWO 卷的 StorageClass
K8S_WORKSPACE_STORAGE_CLASSlonghorn-rwx工作区 RWX 卷的 StorageClass

同时把清单中 4 个 PVC 的storageClassName改为你的类名,并确认K8S_WORKSPACE_ACCESS_MODE=ReadWriteMany与新存储的访问模式一致。更多运维细节(归档大小限制CLAWMANAGER_WORKSPACE_ARCHIVE_MAX_MIB、上报问题前要收集的命令清单等)都在 docs/deployment.md。

干净卸载:顺序不能反

测试环境要拆除时,必须让 Longhorn 卸载 Job 先于整体清单执行:

# 1. 先删 ClawManager 工作负载 kubectl delete namespace clawmanager-user-1 clawmanager-system --ignore-not-found # 2. 解锁 Longhorn 删除确认 kubectl -n longhorn-system patch settings.longhorn.io deleting-confirmation-flag \ --type=merge -p '{"value":"true"}' # 3. 运行官方卸载 Job kubectl create -f deployments/k8s/cluster/uninstall.yaml kubectl wait --for=condition=complete job/longhorn-uninstall -n longhorn-system --timeout=10m # 4. 最后才删除一键清单 kubectl delete -f deployments/k8s/cluster/clawmanager.yaml --ignore-not-found

如果之前误删了整体清单导致卸载卡住,README 的 Recovery 章节给出了清理残留 webhook 与 CRD 的完整方法。

总结

回顾这条从零到一的路径:

  1. 节点先行——Ready 节点 + iSCSI/NFS 客户端 + 干净的 Pod 网络,占掉了 90% 的坑;
  2. 一键清单——Longhorn 与 ClawManager 同文件部署,RWO 与 RWX 分工明确;
  3. 三段验证——Longhorn 就绪 → PVCBound→ 卷healthy且 RWX 卷shareState: running;
  4. 控制台验收——:30443登录后核对多节点容量视图,跑通第一个智能体实例。

按这套流程走完,你就拥有了一个存储可迁移、实例可恢复、AI 访问受治理的多节点 ClawManager 集群。想进一步探索 k3s 路径、单节点 HostPath 方案或端到端验收用例,可以继续看 docs/deployment.md、deployments/k3s/cluster/clawmanager.yaml 与 e2e/README.md。

【免费下载链接】ClawManagerA Kubernetes-native control plane for AI agent instance management, with governed AI access, runtime orchestration, and reusable resources across multiple agent runtimes.项目地址: https://gitcode.com/gh_mirrors/cl/ClawManager

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/18 0:25:26

水文频率计算适线软件:P-III型曲线参数优选与Bootstrap不确定性分析工具包

简介&#xff1a;水文频率计算适线软件面向水文工程师、水利科研人员及相关专业师生&#xff0c;用于处理降雨、径流、洪水等水文现象的频率分析与极值估算。软件围绕适线法展开&#xff0c;支持历史观测数据导入与预处理、概率分布模型选择、参数估计、适线分析、极值估算以及…

作者头像 李华
网站建设 2026/10/22 7:20:07

PASCAL VOC标注的IP102子集:9997张图的目标检测实战指南

简介&#xff1a;IP102昆虫数据集的PASCAL VOC格式标注文件包&#xff0c;面向目标检测、图像分类方向的算法研究人员与开发者&#xff0c;适用于农作物害虫识别模型的训练与评估。压缩包内共2000个XML标注文件&#xff0c;每个文件记录对应图片中害虫目标的边界框坐标及类别标…

作者头像 李华
网站建设 2026/10/15 11:17:50

研究生科研效率翻倍:GitHub九类神器与Skill组合指南

1. 科研效率困局的真实切面1.1 研究生为什么总在“硬扛”带过几届学生之后&#xff0c;我越来越确信一件事&#xff1a;研究生阶段最消耗人的&#xff0c;往往不是课题本身的难度&#xff0c;而是那些本可以被工具接管的重复劳动。文献管理靠手动重命名 PDF&#xff0c;实验数据…

作者头像 李华
网站建设 2026/10/18 13:18:13

PyCharm安装与解释器配置避坑指南:从环境搭建到工程实践

简介&#xff1a;一份详细的PyCharm安装配置教程文档&#xff0c;面向刚接触Python编程、需要在本地搭建开发环境的初学者&#xff0c;也适合想快速完成IDE激活的开发者。内容以图文步骤完整梳理从官网下载安装包、选择安装目录、勾选配置项到完成安装的全流程&#xff0c;并针…

作者头像 李华
网站建设 2026/10/19 18:55:17

Axure RP 10安装教程:从下载到汉化激活的完整指南

1. 为什么一个原型工具值得写"傻瓜版"安装指南如果你正在读这篇内容&#xff0c;大概率是遇到了下面几种情况之一&#xff1a;产品经理甩过来一个.rp文件让你打开看看&#xff0c;你下载了Axure RP 10却发现装完打不开&#xff1b;或者你是个刚入行的交互设计师&…

作者头像 李华
网站建设 2026/10/18 21:25:54

CAM350中文设置与单位字体配置全解析

1. 项目概述&#xff1a;CAM350界面语言与基础设置的底层逻辑CAM350是PCB设计领域里一款服役超过二十年的老牌专业工具&#xff0c;它不像Altium Designer或Cadence Allegro那样自带现代化UI框架&#xff0c;它的界面语言切换和参数设置机制&#xff0c;本质上不是“点一下就变…

作者头像 李华