乐于分享
好东西不私藏

OpenClaw 30 天系列 - Day 26:部署方案:云服务器、容器编排、高可用架构

OpenClaw 30 天系列 - Day 26:部署方案:云服务器、容器编排、高可用架构

🎯 学习目标:学会部署方案:云服务器、容器编排、高可用架构

⏱️ 阅读时间:约 12 分钟 

💡 前置要求:无


☁️ 云服务器选择

主流云厂商对比

厂商
优势
适合场景
阿里云
国内领先、生态完善
国内企业、电商
腾讯云
游戏社交、性价比高
游戏、社交应用
华为云
政企服务、安全可靠
政府、大型企业
AWS
全球覆盖、服务丰富
出海企业、国际化
Azure
企业集成、混合云
微软生态企业

服务器配置建议

开发环境

配置:CPU:2内存:4GB磁盘:50GBSSD带宽:1Mbps适用:个人开发、测试环境成本:约100元/月

生产环境(小型)

配置:CPU:4内存:8GB磁盘:100GBSSD带宽:5Mbps适用:小型企业、日活<1000成本:约500元/月

生产环境(中型)

配置:CPU:8内存:16GB磁盘:200GBSSD带宽:10Mbps适用:中型企业、日活<10000成本:约1500元/月

🐳 容器化部署

Docker 配置

# DockerfileFROM node:18-alpineWORKDIR /app# 复制依赖COPY package*.json ./RUN npm ci --only=production# 复制代码COPY . .# 暴露端口EXPOSE8080# 健康检查HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \  CMD wget -qO- http://localhost:8080/health || exit 1# 启动命令CMD ["node""src/index.js"]

Docker Compose

# docker-compose.ymlversion:'3.8'services:openclaw:build:.ports:-"8080:8080"environment:-NODE_ENV=production-MODEL_API_KEY=${MODEL_API_KEY}volumes:-./data:/app/data-./logs:/app/logsrestart:alwayshealthcheck:test: ["CMD""wget""-qO-""http://localhost:8080/health"]interval:30stimeout:3sretries:3redis:image:redis:7-alpineports:-"6379:6379"volumes:-redis-data:/datarestart:alwayspostgres:image:postgres:15-alpineenvironment:-POSTGRES_USER=openclaw-POSTGRES_PASSWORD=${DB_PASSWORD}-POSTGRES_DB=openclawvolumes:-postgres-data:/var/lib/postgresql/datarestart:alwaysvolumes:redis-data:postgres-data:

🎯 容器编排

Kubernetes 部署

# deployment.yamlapiVersion:apps/v1kind:Deploymentmetadata:name:openclawspec:replicas:3selector:matchLabels:app:openclawtemplate:metadata:labels:app:openclawspec:containers:-name:openclawimage:openclaw/openclaw:latestports:-containerPort:8080env:-name:NODE_ENVvalue:"production"-name:MODEL_API_KEYvalueFrom:secretKeyRef:name:openclaw-secretskey:model-api-keyresources:requests:memory:"512Mi"cpu:"250m"limits:memory:"1Gi"cpu:"500m"livenessProbe:httpGet:path:/healthport:8080initialDelaySeconds:30periodSeconds:10readinessProbe:httpGet:path:/readyport:8080initialDelaySeconds:5periodSeconds:5---apiVersion:v1kind:Servicemetadata:name:openclaw-servicespec:selector:app:openclawports:-port:80targetPort:8080type:LoadBalancer

🏗️ 高可用架构

基础架构图

                    ┌─────────────┐                    │  负载均衡器  │                    │   (SLB/ALB) │                    └──────┬──────┘                           │              ┌────────────┼────────────┐              │            │            │       ┌──────▼──────┐ ┌──▼────────┐ ┌─▼──────────┐       │  应用节点 1  │ │ 应用节点 2 │ │ 应用节点 3 │       │  (OpenClaw) │ │ (OpenClaw)│ │ (OpenClaw) │       └──────┬──────┘ └─────┬─────┘ └─────┬──────┘              │              │             │              └──────────────┼─────────────┘                             │              ┌──────────────┼─────────────┐              │              │             │       ┌──────▼──────┐ ┌────▼─────┐ ┌────▼──────┐       │   Redis     │ │ Postgres │ │   OSS     │       │   (缓存)    │ │ (数据库) │ │ (对象存储) │       └─────────────┘ └──────────┘ └───────────┘

多可用区部署

availabilityZones:-zone:cn-hangzhou-gnodes:2-zone:cn-hangzhou-hnodes:2-zone:cn-hangzhou-inodes:2# 数据库主从database:primary:zone:cn-hangzhou-greplicas:-zone:cn-hangzhou-h-zone:cn-hangzhou-i

📊 监控告警

监控指标

const metrics = {// 系统指标system: {cpu'CPU 使用率',memory'内存使用率',disk'磁盘使用率',network'网络流量'  },// 应用指标application: {responseTime'响应时间',throughput'吞吐量',errorRate'错误率',activeConnections'活跃连接数'  },// 业务指标business: {requestCount'请求数',activeUsers'活跃用户数',skillUsage'技能使用次数'  }};

告警规则

# prometheus 告警规则groups:-name:openclawrules:-alert:HighCPUexpr:avg(rate(container_cpu_usage_seconds[5m]))>0.8for:5mlabels:severity:warningannotations:summary:"CPU 使用率过高"-alert:HighErrorRateexpr:rate(http_requests_total{status=~"5.."}[5m])/rate(http_requests_total[5m])>0.05for:2mlabels:severity:criticalannotations:summary:"错误率过高"-alert:HighResponseTimeexpr:histogram_quantile(0.95,rate(http_request_duration_seconds_bucket[5m]))>2for:5mlabels:severity:warningannotations:summary:"响应时间过长"

🚀 部署流程

CI/CD 流程

# GitHub Actionsname:Deployon:push:branches: [main]jobs:test:runs-on:ubuntu-lateststeps:-uses:actions/checkout@v3-uses:actions/setup-node@v3with:node-version:'18'-run:npmci-run:npmtestbuild:needs:testruns-on:ubuntu-lateststeps:-uses:actions/checkout@v3-name:BuildandpushDockerimageuses:docker/build-push-action@v4with:push:truetags:openclaw/openclaw:latestdeploy:needs:buildruns-on:ubuntu-lateststeps:-name:DeploytoKubernetesuses:azure/k8s-deploy@v4with:manifests:|          k8s/deployment.yamlimages:|openclaw/openclaw:latest

部署检查清单

部署前检查

  •  代码已通过测试
  •  安全扫描无问题
  •  性能测试达标
  •  备份已完成
  •  回滚方案已准备
  •  监控告警已配置
  •  文档已更新

部署后检查

  •  服务正常运行
  •  健康检查通过
  •  日志正常
  •  监控指标正常
  •  用户反馈正常

✅ 学完这篇你能做什么

学完 Day 26,你将能够:

  • ✅ 选择合适的云服务器
  • ✅ 配置 Docker 容器
  • ✅ 部署 Kubernetes 集群
  • ✅ 设计高可用架构
  • ✅ 配置监控告警

🔜 下篇预告

Day 27:备份与恢复:数据备份、配置迁移、灾难恢复

  • 💾 数据备份
  • 🔄 配置迁移
  • 🚨 灾难恢复

💬 互动环节

你的部署经验是什么?有什么踩坑经历?留言分享!


公众号:OpenClaw 研习社

系列:OpenClaw 30 天入门到精通 

作者:OpenClaw 研习社