共计 1840 个字符,预计需要花费 5 分钟才能阅读完成。
OpenStack 云平台部署 ollama0.5.4 服务实战指南
背景痛点分析
在 OpenStack 云环境中部署 ollama 服务时,开发者常遇到以下典型问题:

- 依赖冲突 :ollama 依赖特定版本的 CUDA 和 Python 库,与现有环境冲突
- 容器权限不足 :默认配置导致模型文件无法写入 /var/lib/ollama 路径
- 资源争用 :云主机内存不足时模型加载失败(常见于 <16GB 实例)
- 网络隔离 :容器默认 bridge 网络导致 API 调用超时
技术选型依据
对比两种部署方式:
- 直接安装
- 优点:性能无损
-
缺点:依赖管理复杂,无法隔离环境
-
容器化部署
- 优点:环境隔离,一键部署
- 缺点:约 5% 性能损耗
选择 Docker-20.10.20+ollama0.5.4 的技术依据:
- 内核兼容性:适配 CentOS7.9 的 3.10 内核
- 存储驱动:devicemapper 在离线环境更稳定
- 版本验证:ollama0.5.4 经测试支持常见 LLM 模型
核心实现步骤
Docker 离线安装
- 上传 docker-20.10.20.tgz 到 /root 目录
- 解压安装包:
tar -xzvf docker-20.10.20.tgz - 复制二进制文件:
cp docker/* /usr/bin/ - 创建 systemd 服务文件 /etc/systemd/system/docker.service:
[Unit] Description=Docker Application Container Engine After=network.target [Service] Type=notify ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TimeoutStartSec=0 Delegate=yes KillMode=process [Install] WantedBy=multi-user.target - 启动服务:
systemctl daemon-reload systemctl start docker systemctl enable docker
ollama 服务部署
- 加载镜像:
docker load -i ollama0.5.4.tar - 创建数据目录:
mkdir -p /var/lib/ollama chmod 777 /var/lib/ollama - 启动容器(推荐 host 网络模式):
docker run -d \ --name ollama \ --network host \ -v /var/lib/ollama:/var/lib/ollama \ ollama/ollama:0.5.4 - 验证服务:
curl http://localhost:11434/api/tags
生产环境配置
内存分配
编辑容器启动参数(以 16GB 实例为例):
docker update --memory 14G --memory-swap 16G ollama
网络模式对比
| 模式 | 延迟 | 安全性 | 适用场景 |
|---|---|---|---|
| host | 最低 | 低 | 内部 API 调用 |
| bridge | 较高 | 中 | 多容器隔离 |
API 限流配置
在容器内创建 /etc/ollama/limits.conf:
[global]
rate_limit = 10 # 每秒请求数
burst_limit = 20
常见问题解决
-
SELinux 阻止访问
setenforce 0 sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config -
模型下载失败
docker exec -it ollama ollama pull llama2 --insecure -
日志过大处理
docker run ... --log-opt max-size=100m --log-opt max-file=3
验证与集成
- 列出可用模型:
docker exec ollama ollama list - API 调用示例:
import requests response = requests.post( 'http://localhost:11434/api/generate', json={'model': 'llama2', 'prompt': '你好'} )
后续优化方向
- 结合 Kubernetes 实现自动扩缩容
- 集成 Prometheus 监控指标
- 开发模型版本管理插件
部署完成后,建议通过压力测试验证服务稳定性,可使用 wrk 工具模拟并发请求:
wrk -t4 -c100 -d60s http://localhost:11434/api/generate
正文完
发表至: 未分类
近一天内
