Weaviate Helm部署磁盘空间问题及服务Pending状态排查求助
排查Weaviate Helm安装问题
一、磁盘使用率超阈值告警处理
- 确认节点磁盘实际占用:
- 通过Kubernetes查看节点存储:
kubectl describe node <节点名称> -n dev,查看Capacity和Allocatable下的存储数据 - 若能登录节点,直接执行
df -h /var/lib/weaviate查看挂载目录的使用率
- 通过Kubernetes查看节点存储:
- 调整PVC存储大小:
编辑values.weaviate.yaml,找到persistence字段,增大size值(比如从默认10Gi改为50Gi),然后执行升级命令:helm upgrade --install "weaviate-chatbot" weaviate/weaviate --namespace "dev" --values values.weaviate.yaml - 临时调整磁盘阈值(仅测试环境):
在values.weaviate.yaml的environment中添加配置:
重新升级后可暂时屏蔽告警,但需尽快解决磁盘容量问题environment: WEAVIATE_DISK_USE_THRESHOLD: "90" - 清理节点冗余数据:
在节点上执行docker system prune -a清理无用镜像、容器和卷,释放磁盘空间(注意备份重要数据)
二、weaviate/weaviate-grpc服务Pending状态排查
- 查看服务事件详情:
检查Events字段,排查是否存在端口冲突、节点选择器不匹配、负载均衡资源不足等问题kubectl describe svc weaviate weaviate-grpc -n dev - 确认后端Pod就绪状态:
执行kubectl get pods -n dev,查看weaviate-0的READY列是否为1/1。若Pod未就绪,磁盘告警大概率是主因,优先解决磁盘问题 - 调整Service类型:
若使用LoadBalancer类型但集群无负载均衡器支持,编辑values.weaviate.yaml将service.type和grpcService.type改为NodePort或ClusterIP,重新升级
三、weaviate-headless端口转发连接拒绝排查
- 验证Pod内部端口监听:
检查7000端口是否被Weaviate进程占用,若未监听,说明服务未正常启动,需查看完整日志排查初始化失败原因kubectl exec -it weaviate-0 -n dev -- netstat -tulpn - 核对端口转发命令:
服务映射为80:7000(服务端口80对应Pod端口7000),正确的端口转发命令应为:
之后访问kubectl port-forward svc/weaviate-headless 7000:80 -n devlocalhost:7000,避免端口映射错误 - 查看Pod完整启动日志:
除磁盘告警外,排查是否存在配置错误、依赖缺失等导致服务启动失败的日志kubectl logs weaviate-0 -n dev --all-containers
内容的提问来源于stack exchange,提问作者khanna
相关产品推荐
相关产品推荐

