Some checks failed
CD Pipeline / deploy (push) Failing after 59s
- 建立 Gitea Actions CD pipeline (.gitea/workflows/cd.yaml) - 部署模式: rsync Python 檔案至 188 → docker restart (volume mount) - Dockerfile/requirements 變動時自動重建 Docker image - 部署通知: Telegram (開始/成功/失敗) - 健康檢查: https://mo.wooo.work/health (最多 5 次重試) - 同步最新 CLAUDE.md / ADR-008 / memory (2026-04-19) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
94 lines
2.3 KiB
Markdown
94 lines
2.3 KiB
Markdown
# K8s 服務遷移指南
|
||
|
||
## 遷移目標
|
||
|
||
將 Docker 服務遷移到 K8s,保留所有配置和資料。
|
||
|
||
## 服務清單
|
||
|
||
| 服務 | 來源 | 目標 | 資料位置 |
|
||
|------|------|------|---------|
|
||
| n8n | Docker | K8s tools namespace | /var/lib/docker/volumes/n8n_data |
|
||
| Superset | Docker | K8s tools namespace | superset-postgres + superset_home |
|
||
|
||
## 遷移步驟
|
||
|
||
### 步驟 1:備份資料
|
||
|
||
```bash
|
||
# n8n 資料備份
|
||
ssh wooo@192.168.0.110 "
|
||
mkdir -p /home/wooo/backups/k8s-migration
|
||
docker run --rm -v n8n_data:/data -v /home/wooo/backups/k8s-migration:/backup \
|
||
alpine tar czf /backup/n8n_data_$(date +%Y%m%d).tar.gz -C /data .
|
||
"
|
||
|
||
# Superset PostgreSQL 備份
|
||
ssh wooo@192.168.0.110 "
|
||
docker exec superset-postgres pg_dump -U superset superset > \
|
||
/home/wooo/backups/k8s-migration/superset_db_$(date +%Y%m%d).sql
|
||
"
|
||
|
||
# Superset home 備份
|
||
ssh wooo@192.168.0.110 "
|
||
docker run --rm -v superset_superset_home:/data -v /home/wooo/backups/k8s-migration:/backup \
|
||
alpine tar czf /backup/superset_home_$(date +%Y%m%d).tar.gz -C /data .
|
||
"
|
||
```
|
||
|
||
### 步驟 2:部署 K8s 服務
|
||
|
||
```bash
|
||
# 建立 namespace
|
||
kubectl apply -f k8s/tools/00-namespace.yaml
|
||
|
||
# 部署 n8n
|
||
kubectl apply -f k8s/tools/01-n8n.yaml
|
||
|
||
# 部署 Superset
|
||
kubectl apply -f k8s/tools/02-superset.yaml
|
||
```
|
||
|
||
### 步驟 3:還原資料
|
||
|
||
```bash
|
||
# 找到 PVC 的實際路徑
|
||
N8N_PV=$(kubectl get pvc n8n-data -n tools -o jsonpath='{.spec.volumeName}')
|
||
N8N_PATH="/var/lib/rancher/k3s/storage/${N8N_PV}"
|
||
|
||
# 還原 n8n 資料
|
||
ssh wooo@192.168.0.110 "
|
||
sudo tar xzf /home/wooo/backups/k8s-migration/n8n_data_*.tar.gz -C ${N8N_PATH}
|
||
"
|
||
```
|
||
|
||
### 步驟 4:更新 Nginx
|
||
|
||
更新 /etc/nginx/sites-enabled/monitor 指向 K8s Services
|
||
|
||
### 步驟 5:停止 Docker 服務
|
||
|
||
```bash
|
||
docker stop momo-n8n momo-superset superset-postgres superset-redis
|
||
docker rm momo-n8n momo-superset superset-postgres superset-redis
|
||
```
|
||
|
||
## 回滾計畫
|
||
|
||
如果遷移失敗,從備份還原 Docker 容器:
|
||
|
||
```bash
|
||
# 還原 n8n
|
||
docker run -d --name momo-n8n --restart unless-stopped \
|
||
-p 5678:5678 \
|
||
-e N8N_BASIC_AUTH_USER=admin \
|
||
-e N8N_BASIC_AUTH_PASSWORD=Wooo_N8n_2026 \
|
||
-e N8N_RUNNERS_DISABLED=true \
|
||
-v n8n_data:/home/node/.n8n \
|
||
n8nio/n8n:latest
|
||
|
||
# 還原 Superset
|
||
cd /home/wooo/momo_pro_system/docker/superset
|
||
docker compose up -d
|
||
```
|