# K3s 叢集總覽

快速參考手冊 - 所有服務一覽

## 🖥️ 叢集資訊

| 項目 | 值 |
|------|-----|
| 主機 | 192.168.42.120 |
| 連線 | `ssh ubuntu@192.168.42.120` → `sudo -i` |
| K8s 目錄 | `/root/k8s` |
| 舊 manifests | `/root/k8s-manifests` (備份) |
| 本地目錄 | `/Users/timmy/42_120/k8s` |
| Git Repo | http://192.168.42.124:31337/timmy/k3s.git |

**節點**: vm120 (master) + vm121 + vm122 (3 節點 HA)

---

## 🚀 已部署服務

### CodiMD - 協作筆記應用

| 項目 | 值 |
|------|-----|
| 用途 | Markdown 協作筆記、團隊知識庫 |
| Ingress | `codimd.lotimmy.com` |
| 命名空間 | `default` |
| 資料庫 | PostgreSQL (內建) |

**腳本：** `apps/codimd/{deploy,stop,status,backup,restore}.sh`

---

### Opengist - Git Snippets 管理

| 項目 | 值 |
|------|-----|
| 用途 | 自架 Git snippets、程式碼片段分享 |
| Ingress | `opengist.lotimmy.com` |
| 命名空間 | `default` |

**腳本：** `apps/opengist/{deploy,stop,status,backup,restore}.sh`

---

### Vaultwarden - 密碼管理器

| 項目 | 值 |
|------|-----|
| 用途 | 自架 Bitwarden 密碼管理 |
| Ingress | `vaultwarden.lotimmy.com` |
| 儲存 | 5Gi Longhorn PVC |

**腳本：** `apps/vaultwarden/{deploy,stop,status,backup,restore}.sh`

---

### Adminer - 資料庫管理

| 項目 | 值 |
|------|-----|
| 用途 | Web 資料庫管理工具 |
| Ingress | `adminer.lotimmy.com` |
| 連接目標 | 叢集內 PostgreSQL |

**腳本：** `apps/adminer/{deploy,stop,status}.sh`

---

### PostgreSQL - 獨立資料庫

| 項目 | 值 |
|------|-----|
| 用途 | 通用 PostgreSQL 資料庫服務 |
| Service | `postgres:5432` |
| 命名空間 | `default` |

**腳本：** `apps/postgres/{deploy,stop,status,backup}.sh`

---

## 📂 目錄結構

```
k8s/
├── apps/
│   ├── adminer/         # 資料庫管理工具
│   ├── codimd/          # CodiMD 筆記應用
│   ├── opengist/        # Opengist Git Snippets
│   ├── postgres/        # 獨立 PostgreSQL
│   ├── template/        # 新 App 範本
│   └── vaultwarden/     # 密碼管理器
├── cluster/             # 叢集檢查工具
│   ├── check_access.sh
│   ├── check_nodes.sh
│   └── check_storage.sh
├── README.md
├── QUICKSTART.md
└── SUMMARY.md
```

---

## 🔧 常用 K3s 命令

```bash
# 連線後切換 root
ssh ubuntu@192.168.42.120
sudo -i

# 查看 Pods
kubectl get pods -A

# 查看 Services
kubectl get svc -A

# 查看 Ingress
kubectl get ingress -A

# 查看 PVC
kubectl get pvc -A

# 進入 Pod
kubectl exec -it <pod-name> -- sh

# 查看日誌
kubectl logs -f <pod-name>
```

---

## 🔄 維護工作流程

1. **本地修改** → 編輯 manifests 或腳本
2. **Git 提交** → `git add -A && git commit && git push`
3. **遠端更新** → `git -C /root/k8s pull`
4. **部署** → 執行 `deploy.sh`
5. **驗證** → 執行 `status.sh`
6. **備份** → 執行 `backup.sh`

---

📖 詳細操作請參考 [QUICKSTART.md](QUICKSTART.md)
