🦞 OpenClaw 服务部署报告

端到端研发自动化系统 · 任务 6:部署与 API 访问权限配置

📅 生成时间:2026-03-13
⚙️ 版本:v1.0
🎯 状态:完成

项目概述

本报告详细记录了 OpenClaw 服务的完整部署方案,包括 Docker 和 Kubernetes 两种部署方式,以及全面的 API 访问权限配置。OpenClaw 是一个开源、本地优先的 AI 智能体平台与自动化网关,通过统一网关连接多种主流大模型与即时通信平台。

🚀 多环境部署

支持开发、测试、生产环境的灵活部署,提供 Docker Compose 和 Kubernetes 两套完整方案。

🔐 安全认证

Bearer Token 认证、IP 白名单、CORS 配置、速率限制等多层安全防护机制。

⚡ 高可用性

Kubernetes HPA 自动扩缩容、健康检查、滚动更新、故障自愈等高可用特性。

📊 监控告警

Prometheus metrics 暴露、Grafana 仪表板、自定义告警规则等完善的监控体系。

🔄 CI/CD 集成

Jenkins Pipeline 自动化部署流程,支持一键部署到 Kubernetes 集群。

🛡️ 网络策略

Kubernetes NetworkPolicy 网络安全隔离,细粒度的流量控制。

系统架构

客户端层 (Client Layer)
Web UI / CLI / API Clients / Mobile Apps
入口层 (Ingress / Load Balancer)
Nginx Ingress · SSL/TLS Termination · Rate Limiting
服务层 (OpenClaw Service Layer)
Web Server (3000) · API Gateway (8080) · Authentication & Authorization
AI 模型集成层 (AI Model Integration)
Anthropic Claude · OpenAI GPT · PPIO Models · Ollama (Local)
数据持久层 (Data Persistence)
Redis (Cache) · Volume (Data) · Logs (Storage)

快速开始

🚀 一键部署(Docker)

1 克隆项目
git clone <repository-url>
cd openclaw-deployment
2 运行部署脚本
chmod +x scripts/deploy.sh
./scripts/deploy.sh
3 验证部署
curl http://localhost:3000/health

前置条件检查清单

Docker 部署方案

单命令快速启动

# 设置环境变量
export ANTHROPIC_API_KEY="your_anthropic_api_key"
export API_TOKEN="your_secure_api_token"

# 启动 OpenClaw
docker run -d \
  -p 3000:3000 \
  -p 8080:8080 \
  -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
  -e API_TOKEN=$API_TOKEN \
  -v $(pwd)/data:/app/data \
  -v $(pwd)/config:/app/config \
  --name openclaw \
  openclaw/openclaw:latest

Docker Compose 部署(推荐)

# 启动服务
docker-compose up -d

# 查看状态
docker-compose ps

# 查看日志
docker-compose logs -f openclaw

# 停止服务
docker-compose down

带额外组件启动

# 带 Ollama 本地模型
docker-compose --profile with-ollama up -d

# 带 Redis 和 Nginx
docker-compose --profile with-redis --profile with-nginx up -d

环境变量配置

变量名 说明 默认值 必填
ANTHROPIC_API_KEY Anthropic API 密钥 - 选填*
OPENAI_API_KEY OpenAI API 密钥 - 选填*
API_TOKEN API 访问令牌 自动生成 自动
RATE_LIMIT_REQUESTS 速率限制(请求数) 100 可选
ALLOWED_ORIGINS CORS 允许的源 * 可选

* 至少配置一个 AI 模型的 API 密钥

Kubernetes 部署方案

资源文件清单

k8s/
├── openclaw-namespace.yaml
├── openclaw-configmap.yaml
├── openclaw-secrets.yaml
├── openclaw-deployment.yaml
├── openclaw-service.yaml
├── openclaw-ingress.yaml
├── openclaw-pvc.yaml
├── openclaw-serviceaccount.yaml
├── openclaw-hpa.yaml
└── openclaw-networkpolicy.yaml

部署步骤

# 1. 创建命名空间
kubectl apply -f k8s/openclaw-namespace.yaml

# 2. 配置 Secrets(填入 API 密钥)
kubectl apply -f k8s/openclaw-secrets.yaml

# 3. 应用所有资源配置
kubectl apply -f k8s/

# 4. 验证部署
kubectl get pods -n openclaw-system
kubectl get svc -n openclaw-system

HPA 自动扩缩容配置

指标 目标值 最小副本 最大副本
CPU 利用率 70% 2 10
内存利用率 80%

API 访问权限配置

使用配置脚本(推荐)

# 赋予执行权限
chmod +x scripts/configure_api_access.sh

# 基本配置(自动生成安全 Token)
./scripts/configure_api_access.sh

# 自定义配置
./scripts/configure_api_access.sh \
  -t "your_custom_secure_token" \
  -r 200 \
  -c "https://your-domain.com"

API 端点列表

GET /health

健康检查端点(无需认证)

POST /v1/chat/completions 认证

Chat Completion API(兼容 OpenAI 格式)

curl -X POST http://localhost:8080/v1/chat/completions \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model": "openclaw", "messages": [{"role": "user", "content": "Hello"}]}'
POST /v1/responses 认证

OpenClaw 原生 API(支持高级功能)

安全配置选项

配置项 说明 推荐值
Bearer Token 认证 API 访问令牌验证 启用
速率限制 每分钟请求数限制 100-200 requests/min
CORS 配置 跨域访问控制 指定域名(生产环境)
IP 白名单 允许访问的 IP 列表 按需配置

CI/CD 集成

Jenkins Pipeline 流程

构建进度
  • 代码检出 (Checkout)
  • 环境准备 (Prepare)
  • 代码检查和验证 (Lint & Validate)
  • 单元测试 (Unit Tests)
  • Docker 镜像构建 (Build Docker Image)
  • Docker 镜像推送 (Push Docker Image)
  • Kubernetes 部署 (Deploy to K8s)
  • 集成测试 (Integration Tests)

触发构建

# 通过 Jenkins CLI
java -jar jenkins-cli.jar -s http://jenkins-url build openclaw-deploy

# 通过 API
curl -X POST http://jenkins-url/job/openclaw-deploy/build \
  -u username:api-token \
  --data "DEPLOY_ENV=production&RUN_TESTS=true"

测试和验证

使用测试脚本

# 运行完整测试套件
./scripts/test_api_access.sh \
  -h localhost \
  -p 3000 \
  -t your_api_token \
  --verbose

测试用例覆盖

测试项 说明 预期结果
健康检查 /health 端点 HTTP 200
就绪检查 /ready 端点 HTTP 200
认证 API 有效 Token HTTP 200/404
无效 Token 无效 Token HTTP 401/403
速率限制 高频请求 HTTP 429

项目文件结构

openclaw-deployment/
├── docker-compose.yml
├── .env
├── README.md
├── k8s/
│ ├── openclaw-namespace.yaml
│ ├── openclaw-configmap.yaml
│ ├── openclaw-secrets.yaml
│ ├── openclaw-deployment.yaml
│ ├── openclaw-service.yaml
│ ├── openclaw-ingress.yaml
│ ├── openclaw-pvc.yaml
│ ├── openclaw-serviceaccount.yaml
│ ├── openclaw-hpa.yaml
│ └── openclaw-networkpolicy.yaml
├── scripts/
│ ├── configure_api_access.sh
│ ├── test_api_access.sh
│ └── deploy.sh
├── ci-cd/
│ ├── Jenkinsfile
│ └── jenkins-job-config.xml
└── nginx/
└── nginx.conf

访问信息

端口 协议 用途 访问方式
3000 HTTP Web 界面和 API http://localhost:3000
8080 HTTP/WebSocket API Gateway http://localhost:8080
6379 TCP Redis (可选) 内部服务
11434 TCP Ollama (可选) 内部服务

📝 快速访问示例

# 健康检查
curl http://localhost:3000/health

# API 调用(需要认证)
curl -H "Authorization: Bearer YOUR_API_TOKEN" \
     http://localhost:3000/api/v1/status

# Chat Completion
curl -X POST http://localhost:8080/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model": "openclaw", "messages": [{"role": "user", "content": "Hello"}]}'

故障排查

常见问题速查

问题 可能原因 解决方案
容器无法启动 端口占用/资源不足 检查端口占用、增加资源限制
API 认证失败 Token 格式错误 确保 Token 长度≥16 字符
K8s Pod 未就绪 Secret 配置缺失 检查并配置 API Keys
速率限制不生效 配置未生效 重启服务并检查日志

日志查看命令

# Docker 日志
docker logs --tail 100 -f openclaw

# Kubernetes 日志
kubectl logs -f deployment/openclaw -n openclaw-system