跳到主要内容

Claw Cloud 部署指南

Claw Cloud 是基于 Sealos 的云平台,提供简单的容器化应用部署。

部署方式​

方式 1:使用 APP Launchpad(推荐 - 最简单)​

  1. 访问 Claw Cloud

  2. 打开 APP Launchpad

    • 在控制台中找到 "APP Launchpad" 或 "应用管理"
    • 点击 "新建应用" 或 "Deploy New App"
  3. 配置应用

    • 应用名称: snooker-guide
    • 镜像: ghcr.io/cygmris/snooker-guide:latest
    • 端口: 80
    • CPU: 50m - 200m
    • 内存: 64Mi - 256Mi
    • 副本数: 1
  4. 配置网络(可选)

    • 启用公网访问
    • 配置自定义域名(如果有)
    • 自动生成的域名格式:snooker-guide-xxx.cloud.sealos.io
  5. 部署

    • 点击 "部署" 或 "Deploy"
    • 等待容器启动(约 1-2 分钟)
    • 访问生成的 URL

方式 2:使用 YAML 配置文件​

  1. 准备配置文件

    • 项目中已包含 sealos/deployment.yaml
    • 修改其中的域名配置(如果需要自定义域名)
  2. 在 Claw Cloud 中导入

    • 打开 APP Launchpad
    • 选择 "从 YAML 导入" 或 "Import from YAML"
    • 粘贴 sealos/deployment.yaml 的内容
    • 点击部署
  3. 验证部署

    • 检查 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 实现完全自动化部署:

配置自动部署​

  1. 获取 Kubeconfig:

    # 在 Claw Cloud Terminal 中运行
    cat ~/.kube/config | base64
  2. 添加 GitHub Secret:

  3. **完成!**每次 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 镜像:

  1. 每次推送到 master 分支:

    • 自动构建 Docker 镜像
    • 推送到 GitHub Container Registry
    • 镜像地址:ghcr.io/cygmris/snooker-guide:latest
  2. 在 Claw Cloud 中更新:

    • 方式 A:在 APP Launchpad 中点击 "重启" 或 "Restart"
    • 方式 B:使用 kubectl 滚动更新
      kubectl rollout restart deployment/snooker-guide -n snooker-guide

配置说明​

资源配置​

资源请求值限制值说明
CPU50m200m静态网站资源占用低
内存64Mi256MiNginx 内存占用小

端口配置​

  • 容器端口: 80 (Nginx)
  • 服务端口: 80
  • 协议: HTTP/HTTPS

健康检查​

  • 存活探针: HTTP GET / 每 30 秒
  • 就绪探针: HTTP GET / 每 10 秒

自定义域名​

在 Claw Cloud 中配置​

  1. 添加域名:

    • 在 APP Launchpad 中找到你的应用
    • 点击 "域名设置" 或 "Domain Settings"
    • 添加自定义域名
  2. 配置 DNS:

    • 在你的域名提供商处添加 CNAME 记录
    • 指向 Claw Cloud 提供的地址
  3. 启用 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/内存限制
  • 健康检查失败:检查应用是否正常启动

无法访问​

  1. 检查 Service 状态:

    kubectl get svc -n snooker-guide
  2. 检查 Ingress 状态:

    kubectl get ingress -n snooker-guide
  3. 检查域名 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

参考资源​