维护咨询 大模型部署 问题解决 技能定制 大模型训练
站长交流微信: aixbwz
数据安全是企业最关心的问题。把AI能力部署在本地,数据永远不会离开你的服务器。
本文讲清楚怎么在企业环境里私有化部署Hermes Agent,包括Docker、Kubernetes、各种安全配置。
## 为什么要私有化部署
公有云方案:
- 数据发送到第三方服务器
- 合规风险(数据泄露、内部人员访问)
- 网络延迟
- 依赖外部服务可用性
私有化部署:
- 数据完全留在本地
- 满足合规要求(金融、医疗、政府)
- 无网络延迟
- 完全自主可控
—
## Docker单节点部署
适合小型团队,几台服务器的规模。
基础部署:
# 创建数据目录
mkdir -p ~/.hermes/data
chmod 700 ~/.hermes/data
# 启动容器
docker run -d \
--name hermes \
--restart unless-stopped \
-p 8080:8080 \
-v ~/.hermes:/root/.hermes \
-v /etc/localtime:/etc/localtime:ro \
hermes-agent:latest
配置外部API(可选本地模型):
# config.yaml 放在 ~/.hermes/ 下
model:
provider: openai-compatible
api_base: "http://localhost:11434/v1" # Ollama本地地址
model: llama3
api_key: "local"
用Nginx做反向代理:
server {
listen 443 ssl;
server_name hermes.yourcompany.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
proxy_pass http://localhost:8080;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
—
## Kubernetes集群部署
适合中大型企业,需要高可用和弹性扩展。
Deployment配置:
# hermes-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: hermes-agent
labels:
app: hermes
spec:
replicas: 3
selector:
matchLabels:
app: hermes
template:
metadata:
labels:
app: hermes
spec:
containers:
- name: hermes
image: hermes-agent:latest
ports:
- containerPort: 8080
resources:
requests:
memory: "2Gi"
cpu: "1000m"
limits:
memory: "4Gi"
cpu: "2000m"
volumeMounts:
- name: hermes-data
mountPath: /root/.hermes
livenessProbe:
httpGet:
path: /health
port: 8080
initialDelaySeconds: 30
periodSeconds: 60
volumes:
- name: hermes-data
persistentVolumeClaim:
claimName: hermes-data-pvc
Service配置:
# hermes-service.yaml
apiVersion: v1
kind: Service
metadata:
name: hermes-service
spec:
selector:
app: hermes
ports:
- port: 80
targetPort: 8080
type: ClusterIP
HorizontalPodAutoscaler:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: hermes-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: hermes-agent
minReplicas: 2
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
—
## 安全配置
启用API认证:
# config.yaml
api:
enabled: true
port: 8080
auth:
type: api-key
keys:
- name: "app-key-1"
key: "sk-hermes-xxxxx"
permissions: [read, write]
- name: "app-key-2"
key: "sk-hermes-yyyyy"
permissions: [read-only]
网络隔离:
# 用Kubernetes NetworkPolicy限制Hermes只能访问特定服务
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: hermes-network-policy
spec:
podSelector:
matchLabels:
app: hermes
policyTypes:
- Ingress
- Egress
egress:
- to:
- podSelector:
matchLabels:
app: llm-model # 只允许访问模型服务
ports:
- protocol: TCP
port: 8080
密钥管理:
生产环境用Vault管理API密钥,不要写在配置文件里:
# 从Vault读取密钥
externalSecret:
name: hermes-secrets
secretStoreRef:
name: vault-backend
kind: ClusterSecretStore
target:
name: hermes-api-key
data:
- secretKey: OPENAI_API_KEY
remoteRef:
key: secret/hermes
property: openai-api-key
—
## 备份和恢复
定时备份配置:
# 备份脚本每天凌晨3点执行
#!/bin/bash
DATE=$(date +%Y%m%d)
tar -czf /backup/hermes-config-$DATE.tar.gz ~/.hermes/
# 保留最近30天的备份
find /backup -name "hermes-config-*.tar.gz" -mtime +30 -delete
恢复:
# 停止服务
docker stop hermes
# 解压备份
tar -xzf hermes-config-backup.tar.gz -C ~/
# 启动服务
docker start hermes
—
## 常见问题
Q:私有化部署需要什么配置?
A:Docker单节点最低2核4G内存。Kubernetes集群最低3节点,每个节点4核8G。
Q:可以用免费的开源模型吗?
A:可以。用Ollama部署Llama、Qwen等开源模型,配置本地API地址即可。
Q:如何监控服务状态?
A:可以用Prometheus+Grafana监控容器/集群,或者用Docker的healthcheck机制。
—
## 相关文章
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END








暂无评论内容