Claw Cloud 部署指南
Claw Cloud 是基于 Sealos 的云平台,提供简单的容器化应用部署。
部署方式
方式 1:使用 APP Launchpad(推荐 - 最简单)
-
访问 Claw Cloud
- 打开 https://jp-members-1.run.claw.cloud
- 登录你的账号
-
打开 APP Launchpad
- 在控制台中找到 "APP Launchpad" 或 "应用管理"
- 点击 "新建应用" 或 "Deploy New App"
-
配置应用
- 应用名称:
snooker-guide - 镜像:
ghcr.io/cygmris/snooker-guide:latest - 端口:
80 - CPU: 50m - 200m
- 内存: 64Mi - 256Mi
- 副本数: 1
- 应用名称:
-
配置网络(可选)
- 启用公网访问
- 配置自定义域名(如果有)
- 自动生成的域名格式:
snooker-guide-xxx.cloud.sealos.io
-
部署
- 点击 "部署" 或 "Deploy"
- 等待容器启动(约 1-2 分钟)
- 访问生成的 URL
方式 2:使用 YAML 配置文件
-
准备配置文件
- 项目中已包含
sealos/deployment.yaml - 修改其中的域名配置(如果需要自定义域名)
- 项目中已包含
-
在 Claw Cloud 中导入
- 打开 APP Launchpad
- 选择 "从 YAML 导入" 或 "Import from YAML"
- 粘贴
sealos/deployment.yaml的内容 - 点击部署
-
验证部署
- 检查 Pod 状态是否为 Running
- 访问配置的域名或自动生成的 URL
方式 3:使用 Sealos CLI(高级)
# 安装 Sealos CLI
curl -sfL https://raw.githubusercontent.com/labring/sealos/main/scripts/install.sh | sh -s v5.0.0
# 登录到 Claw Cloud
sealos login jp-members-1.run.claw.cloud
# 部署应用
kubectl apply -f sealos/deployment.yaml
# 查看状态
kubectl get pods -n snooker-guide
kubectl get svc -n snooker-guide
kubectl get ingress -n snooker-guide
自动部署
项目已配置 GitHub Actions 实现完全自动化部署:
配置自动部署
-
获取 Kubeconfig:
# 在 Claw Cloud Terminal 中运行
cat ~/.kube/config | base64 -
添加 GitHub Secret:
- 访问:https://github.com/cygmris/snooker-guide/settings/secrets/actions
- 添加 Secret:
- Name:
CLAW_KUBECONFIG - Value: 上一步的 base64 输出
- Name:
-
**完成!**每次 push 到 master 分支自动部署
部署流程
Git Push → GitHub Actions
↓
1. 构建 Docker 镜像
↓
2. 推送到 GitHub Container Registry
↓
3. kubectl apply 部署到 Claw Cloud
↓
4. 等待 Pod 就绪
↓
5. 验证部署成功 ✅
手动触发部署
# 使用 GitHub CLI
gh workflow run deploy-claw.yml
# 或在网页上触发
# https://github.com/cygmris/snooker-guide/actions/workflows/deploy-claw.yml
查看部署状态
# 查看 workflow 运行状态
gh run list --workflow=deploy-claw.yml
# 查看最新运行的日志
gh run view --log
自动部署(旧版说明)
项目已配置 GitHub Actions 自动构建 Docker 镜像:
-
每次推送到 master 分支:
- 自动构建 Docker 镜像
- 推送到 GitHub Container Registry
- 镜像地址:
ghcr.io/cygmris/snooker-guide:latest
-
在 Claw Cloud 中更新:
- 方式 A:在 APP Launchpad 中点击 "重启" 或 "Restart"
- 方式 B:使用 kubectl 滚动更新
kubectl rollout restart deployment/snooker-guide -n snooker-guide
配置说明
资源配置
| 资源 | 请求值 | 限制值 | 说明 |
|---|---|---|---|
| CPU | 50m | 200m | 静态网站资源占用低 |
| 内存 | 64Mi | 256Mi | Nginx 内存占用小 |
端口配置
- 容器端口: 80 (Nginx)
- 服务端口: 80
- 协议: HTTP/HTTPS
健康检查
- 存活探针: HTTP GET / 每 30 秒
- 就绪探针: HTTP GET / 每 10 秒
自定义域名
在 Claw Cloud 中配置
-
添加域名:
- 在 APP Launchpad 中找到你的应用
- 点击 "域名设置" 或 "Domain Settings"
- 添加自定义域名
-
配置 DNS:
- 在你的域名提供商处添加 CNAME 记录
- 指向 Claw Cloud 提供的地址
-
启用 HTTPS:
- Claw Cloud 自动配置 Let's Encrypt SSL 证书
- 无需手动操作
修改 YAML 配置
编辑 sealos/deployment.yaml:
spec:
tls:
- hosts:
- snooker.your-domain.com # 改为你的域名
secretName: snooker-guide-tls
rules:
- host: snooker.your-domain.com # 改为你的域名
监控与日志
查看应用状态
在 APP Launchpad 中:
- 查看 Pod 状态
- 查看资源使用情况(CPU、内存)
- 查看访问统计
查看日志
# 使用 kubectl
kubectl logs -f deployment/snooker-guide -n snooker-guide
# 或在 Claw Cloud 控制台中查看
查看事件
kubectl get events -n snooker-guide --sort-by='.lastTimestamp'
扩容与缩容
手动扩容
在 APP Launchpad 中:
- 调整副本数(Replicas)
- 调整 CPU/内存限制
或使用 kubectl:
# 扩容到 3 个副本
kubectl scale deployment/snooker-guide --replicas=3 -n snooker-guide
自动扩容(HPA)
创建 HPA 配置:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: snooker-guide-hpa
namespace: snooker-guide
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: snooker-guide
minReplicas: 1
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 80
成本估算
基于 Sealos 的按需计费:
- CPU: ~¥0.067/核/小时
- 内存: ~¥0.033/GB/小时
- 流量: 根据实际使用计费
示例配置(50m CPU, 64Mi 内存):
- 每小时:~¥0.005
- 每月:~¥3.6
故障排查
Pod 无法启动
# 查看 Pod 详情
kubectl describe pod -l app=snooker-guide -n snooker-guide
# 查看日志
kubectl logs -l app=snooker-guide -n snooker-guide
常见问题:
- 镜像拉取失败:检查镜像地址和权限
- 资源不足:增加 CPU/内存限制
- 健康检查失败:检查应用是否正常启动
无法访问
-
检查 Service 状态:
kubectl get svc -n snooker-guide -
检查 Ingress 状态:
kubectl get ingress -n snooker-guide -
检查域名 DNS 解析
性能问题
- 增加副本数
- 增加 CPU/内存限制
- 启用 CDN(如 Cloudflare)
更新部署
更新镜像
# 使用新镜像标签
kubectl set image deployment/snooker-guide \
snooker-guide=ghcr.io/cygmris/snooker-guide:new-tag \
-n snooker-guide
# 或滚动重启(拉取 latest)
kubectl rollout restart deployment/snooker-guide -n snooker-guide
回滚
# 查看历史版本
kubectl rollout history deployment/snooker-guide -n snooker-guide
# 回滚到上一版本
kubectl rollout undo deployment/snooker-guide -n snooker-guide
# 回滚到指定版本
kubectl rollout undo deployment/snooker-guide --to-revision=2 -n snooker-guide