Chemmy's Blog

chengming0916@outlook.com

常用Grafana模板

名称 模板ID 说明
Node Exporter Full 1860 Kubernetes 集群监控
K3s Cluster Dashboard 14205,7249 K3s专属监控
kube-state-metrics 12740
MySQL Overview 7362
Nvidia GPU Metrics 14574 英伟达显卡监控
PostgreSQL Database 9628
Redis 12497
EMQX 17446
Docker-cAdvisor 13946

Alloy配置模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 基础设施指标收集组件一般都是prometheus.exporter.*的形式, 见官方文档https://grafana.com/docs/alloy/latest/reference/components/prometheus/
// 目标组件, 这里目标组件是Linux
prometheus.exporter.unix "node" {}

// 抓取目标组件指标
prometheus.scrape "node" {
// 源
targets = prometheus.exporter.unix.node.targets
// 指标转发
forward_to = [prometheus.relabel.node.receiver]
// 10s抓取一次指标
scrape_interval = "10s"
}

// 筛选指标
// prometheus.relabel 组件通常用于筛选 Prometheus 指标或标准化传递给一个或多个下游接收器的标签集
prometheus.relabel "node" {
// 将address或者instance替换成host
rule {
action = "replace"
source_labels = ["__address__", "instance"]
separator = "/"
target_label = "host"
}
// 处理完后转发到组件
forward_to = [prometheus.remote_write.metrics_service.receiver]
}


prometheus.exporter.redis "redis" {
redis_addr = "redis:6379"
redis_password = "123456"
}

prometheus.scrape "redis" {
targets = prometheus.exporter.redis.redis.targets
forward_to = [prometheus.remote_write.metrics_service.receiver]
}


// 指标发送到prometheus中
prometheus.remote_write "metrics_service" {
endpoint {
url = "http://prometheus:9090/api/v1/write"
}
}

Ollama 作为轻量级本地大语言模型(LLM)管理工具,能够便捷地实现本地模型的部署、调度与交互。本文将从环境变量配置、CLI 核心命令、安装部署优化等维度,全方位讲解 Ollama 的使用方法,同时涵盖 WebUI 部署、Python/Java 客户端 API 集成等实战场景,帮助开发者高效管理和使用本地大模型。

一、核心环境变量配置

环境变量是定制 Ollama 运行行为的核心,通过合理配置可优化网络访问、模型管理、性能调度等关键环节,以下为高频实用的环境变量分类说明:

1. 网络配置:控制服务访问范围

环境变量 默认值 功能与使用示例
OLLAMA_HOST 127.0.0.1:11434 定义服务监听地址/端口,支持 HTTP/HTTPS 协议。示例:0.0.0.0:8080(允许局域网访问)、https://0.0.0.0:443(HTTPS 协议)
OLLAMA_ORIGINS localhost/127.0.0.1 配置跨域请求允许来源,示例:OLLAMA_ORIGINS=*,https://example.com(允许所有来源+指定域名)

2. 模型管理:优化存储与加载策略

环境变量 默认值 功能与使用示例
OLLAMA_MODELS ~/.ollama/models 自定义模型存储路径,示例:OLLAMA_MODELS=/data/ollama/models(Linux)、OLLAMA_MODELS=D:\OllamaModels(Windows)
OLLAMA_KEEP_ALIVE 5m 模型内存存活时间,示例:30m(30分钟)、24h(24小时)、-1(永久存活)、0(立即卸载)
OLLAMA_LOAD_TIMEOUT 5m 模型加载超时时间,示例:10m(超时10分钟终止加载)
OLLAMA_MAX_LOADED_MODELS 0(无限制) 限制同时加载模型数,示例:4(最多加载4个模型)
OLLAMA_MAX_QUEUE 512 请求队列最大长度,示例:1024(支持1024个并发请求排队)
OLLAMA_MAX_VRAM 0(无限制) GPU 显存最大使用量(字节),示例:8589934592(限制8GB显存)
OLLAMA_GPU_OVERHEAD 0 单GPU显存预留量(字节),示例:1073741824(预留1GB显存)

3. 性能与调度:提升并发与资源利用率

环境变量 默认值 功能与使用示例
OLLAMA_NUM_PARALLEL 0(无限制) 并行处理请求数,示例:8(同时处理8个请求)
OLLAMA_SCHED_SPREAD false 启用模型跨GPU调度,示例:OLLAMA_SCHED_SPREAD=1(开启跨GPU调度)

4. 调试与日志:辅助问题排查

环境变量 默认值 功能与使用示例
OLLAMA_DEBUG false 启用调试日志,示例:OLLAMA_DEBUG=1(输出详细调试信息)
OLLAMA_NOHISTORY false 禁用命令行历史记录,示例:OLLAMA_NOHISTORY=1(不保存run命令历史)
OLLAMA_NOPRUNE false 启动时不清理模型文件,示例:OLLAMA_NOPRUNE=1(保留所有模型缓存)

5. 特性开关:尝鲜实验性功能

环境变量 默认值 功能与使用示例
OLLAMA_FLASH_ATTENTION false 启用Flash Attention注意力机制,示例:OLLAMA_FLASH_ATTENTION=1
OLLAMA_MULTIUSER_CACHE false 优化多用户场景提示缓存,示例:OLLAMA_MULTIUSER_CACHE=1

6. 代理设置:适配网络访问场景

环境变量 功能与使用示例
HTTP_PROXY 设置HTTP代理,示例:HTTP_PROXY=http://proxy.example.com:8080
HTTPS_PROXY 设置HTTPS代理,示例:HTTPS_PROXY=https://proxy.example.com:8080
NO_PROXY 排除代理地址,示例:NO_PROXY=localhost,192.168.1.0/24,example.com

二、CLI 核心命令详解

Ollama 提供简洁的命令行工具(CLI)实现模型全生命周期管理,所有命令均可通过-h/--help查看详细用法,核心命令如下:

1. 基础命令速览

命令 核心用途
ollama serve/start 启动 Ollama 服务(两者为别名关系)
ollama create 基于现有模型创建自定义模型(支持定制/微调)
ollama show 查看模型详情(配置、许可证、系统提示等)
ollama run 启动模型交互(终端直连,支持参数定制)
ollama pull 从远程仓库拉取模型(支持私有仓库)
ollama list/ls 列出本地已下载的所有模型(两者为别名关系)
ollama ps 查看当前正在运行的模型进程
ollama stop 停止指定运行中的模型
ollama rm 删除本地指定模型(支持批量删除)

2. 高频命令实战

(1)启动服务:定制化启动参数

1
2
3
4
5
# 基础启动(默认配置)
ollama serve

# 带调试日志+自定义监听地址启动
OLLAMA_DEBUG=1 OLLAMA_HOST=0.0.0.0:8080 ollama serve

启动命令支持结合任意环境变量,实现服务的个性化配置。

(2)模型管理:从拉取到删除全流程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 拉取模型(例如Llama 3 8B)
ollama pull llama3:8b

# 查看模型参数
ollama show llama3:8b --parameters

# 列出本地模型
ollama list

# 查看运行中的模型
ollama ps

# 停止运行中的模型
ollama stop llama3:8b

# 删除本地模型
ollama rm llama3:8b

(3)模型交互:终端高效验证

ollama run是终端验证模型的核心命令,支持直接传参或交互式对话:

1
2
3
4
5
6
7
8
# 基础运行模型
ollama run llama3:8b

# 带参数运行(指定响应格式为JSON+保持模型存活1小时)
ollama run llama3:8b --format json --keepalive 1h "请介绍Ollama的核心功能"

# 禁用自动换行+显示响应耗时
ollama run llama3:8b --nowordwrap --verbose

核心优势

  • 轻量化验证:无需依赖WebUI,终端直连模型快速验证响应效果;

  • 可记录输出:通过>将响应写入文件(如ollama run llama3:8b "提问内容" > response.txt);

  • 自动化适配:可嵌入脚本实现定时交互、批量问答等自动化流程。

三、Ollama 安装与系统参数最佳实践

1. 快速安装

Ollama 支持全平台部署,可从官方官网下载对应系统安装包(Windows/MacOS/Linux),安装流程与常规软件一致,无额外依赖。

2. 必配系统环境变量(优化体验)

安装完成后,建议配置以下环境变量提升使用体验:

环境变量 推荐配置(示例) 配置原因
OLLAMA_MODELS D:\OllamaModels(Windows)
/data/ollama/models(Linux)
避免系统盘(C盘)空间占用,统一管理模型文件
OLLAMA_HOST 0.0.0.0 允许局域网内其他设备访问Ollama服务(默认仅本机可访问)
OLLAMA_PORT 8080(按需修改) 规避11434端口冲突,适配现有网络环境
OLLAMA_ORIGINS * 本地使用场景下解除跨域限制,简化WebUI/API调用
OLLAMA_KEEP_ALIVE 24h 模型常驻内存,避免重复加载耗时(提升访问速度)
OLLAMA_NUM_PARALLEL 4-8(按CPU/GPU调整) 提升并发处理能力,适配多请求场景
OLLAMA_MAX_QUEUE 1024 扩大请求队列,避免高并发下请求被丢弃
OLLAMA_DEBUG 1(研发阶段) 输出详细日志,辅助排查模型加载/交互异常
OLLAMA_MAX_LOADED_MODELS 2-4 限制同时加载模型数,避免内存/GPU显存耗尽

总结

Ollama 凭借轻量化、易配置、跨平台的特性,成为本地大模型管理的首选工具。通过合理配置环境变量,可精准控制服务的网络、性能、资源使用;借助 CLI 命令,可高效完成模型的全生命周期管理;结合 WebUI 或多语言 API,还能进一步扩展交互形式与应用场景。无论是本地验证模型效果,还是搭建私有化大模型服务,Ollama 都能通过灵活的配置和简洁的操作满足多样化需求。

Longhorn 单机部署指南

Longhorn 支持单机部署,它是一款基于 Kubernetes 的分布式块存储系统,同时也可以在单节点 Kubernetes 集群中完成部署和使用,适合开发测试、边缘计算等轻量场景。

一、单机部署的核心前提

  1. 环境要求

    1. 单节点 Kubernetes 集群(如 Minikube、k3s、MicroK8s 或手动搭建的单节点集群)

    2. 节点满足 Longhorn 基础条件:

      • 操作系统:Linux(内核 4.14+)

      • 容器运行时:Docker、containerd 等

      • 磁盘:至少 1 块空闲磁盘或目录(用于存储数据)

      • 依赖工具:open-iscsi(必须安装并启动)

  2. 网络要求

    1. 节点能访问互联网(用于拉取 Longhorn 镜像)

    2. Kubernetes 集群网络插件正常运行(如 Calico、Flannel)

二、单机部署的具体步骤(以 k3s 为例)

1. 部署单节点 k3s 集群

1
2
3
4
# 安装 k3s(禁用默认存储,避免冲突)
curl -sfL https://get.k3s.io | sh -s - --disable local-storage
# 配置 kubectl 环境变量
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml

2. 安装依赖组件 open-iscsi

1
2
3
4
5
6
7
# Ubuntu/Debian
sudo apt update && sudo apt install -y open-iscsi
sudo systemctl enable --now iscsid

# CentOS/RHEL
sudo yum install -y iscsi-initiator-utils
sudo systemctl enable --now iscsid

3. 部署 Longhorn

推荐使用 Helm 部署(更易管理):

1
2
3
4
5
6
7
8
9
# 安装 Helm 3
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

# 添加 Longhorn Helm 仓库
helm repo add longhorn https://charts.longhorn.io
helm repo update

# 部署 Longhorn 到 longhorn-system 命名空间
helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace

4. 验证部署状态

1
2
3
4
5
6
# 检查 Pod 是否全部 Running
kubectl -n longhorn-system get pods

# 检查 Longhorn 存储类是否创建
kubectl get sc
# 正常会看到 longhorn 存储类,且标注为 default

三、单机部署的注意事项

  1. 高可用限制

    1. 单机部署下,Longhorn 无法提供数据冗余(默认副本数为 3,需手动调整为 1),节点故障会导致数据丢失,仅适合非生产环境。

    2. 修改副本数:在 Longhorn UI 中设置默认副本数为 1,或在 PVC 注解中指定 numberOfReplicas: 1

  2. 存储路径配置

    1. 如果节点没有空闲磁盘,可以指定目录作为存储后端:

      1
      2
      3
      4
      5
      6
      # 创建本地目录
      sudo mkdir -p /data/longhorn
      sudo chmod 777 /data/longhorn
      # 部署时通过 Helm 参数指定
      helm install longhorn longhorn/longhorn --namespace longhorn-system --create-namespace \
      --set defaultSettings.defaultDataPath=/data/longhorn
  3. 访问 Longhorn UI

    1. 单机环境下可通过 NodePort 访问 UI:

      1
      2
      kubectl -n longhorn-system get svc longhorn-frontend
      # 访问 http://<节点IP>:<NodePort>

四、单机部署的适用场景

  • 开发/测试环境:快速验证 Longhorn 功能、测试存储与应用的兼容性。

  • 边缘节点:资源受限的边缘设备,仅需单节点提供块存储。

  • 个人学习:熟悉 Kubernetes 存储编排和 Longhorn 运维操作。

是否需要我为你整理单机部署 Longhorn 后的测试用例,比如创建 PVC 并挂载到 Nginx 容器进行验证?

0%