119 lines
3.2 KiB
Markdown
119 lines
3.2 KiB
Markdown
# K3s 叢集管理
|
|
|
|
> 個人 K3s Kubernetes 叢集的 manifests 與維護腳本
|
|
|
|
## 📖 文檔導航
|
|
|
|
| 文檔 | 用途 |
|
|
|------|------|
|
|
| **[SUMMARY.md](SUMMARY.md)** | 📋 服務總覽、快速參考 |
|
|
| **[QUICKSTART.md](QUICKSTART.md)** | 🚀 快速入門、操作指南 |
|
|
|
|
---
|
|
|
|
## 🖥️ 連線資訊
|
|
|
|
```bash
|
|
ssh ubuntu@192.168.42.120
|
|
sudo -i # 切換 root
|
|
cd /root/k8s # K3s 工作目錄
|
|
```
|
|
|
|
- **主機**: 192.168.42.120
|
|
- **K3s 目錄**: `/root/k8s`
|
|
- **本地目錄**: `/Users/timmy/42_120/k8s`
|
|
- **Git Repo**: http://192.168.42.124:31337/timmy/k3s.git
|
|
|
|
---
|
|
|
|
## 🚀 已部署服務
|
|
|
|
| 服務 | 用途 | 狀態腳本 |
|
|
|------|------|----------|
|
|
| [CodiMD](apps/codimd/) | Markdown 協作筆記 | `./apps/codimd/status.sh` |
|
|
| [Opengist](apps/opengist/) | Git Snippets 管理 | `./apps/opengist/status.sh` |
|
|
| [PostgreSQL](apps/postgres/) | 通用資料庫 | `./apps/postgres/status.sh` |
|
|
|
|
---
|
|
|
|
## 📂 目錄結構
|
|
|
|
```
|
|
k8s/
|
|
├── apps/
|
|
│ ├── codimd/ # 筆記應用
|
|
│ ├── opengist/ # Git Snippets
|
|
│ └── postgres/ # 資料庫
|
|
└── cluster/ # 叢集工具
|
|
```
|
|
|
|
每個 app 都包含:
|
|
- `manifests/` - Kubernetes YAML 檔案
|
|
- `backup/` - 備份資料
|
|
- `deploy.sh` - 部署腳本
|
|
- `stop.sh` - 停止腳本(保留資料)
|
|
- `status.sh` - 狀態檢查
|
|
- `backup.sh` - 備份腳本
|
|
|
|
---
|
|
|
|
## ⚡ 快速命令
|
|
|
|
```bash
|
|
# 部署所有服務
|
|
for app in apps/*/; do cd "$app" && ./deploy.sh && cd ../..; done
|
|
|
|
# 檢查所有服務狀態
|
|
for app in apps/*/; do cd "$app" && ./status.sh && cd ../..; done
|
|
|
|
# 查看 K3s Pods
|
|
kubectl get pods -A
|
|
|
|
# 查看 Ingress
|
|
kubectl get ingress -A
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 維護工作流程
|
|
|
|
1. **本地修改** → 在此目錄編輯 manifests 或腳本
|
|
2. **Git 提交** → `git add -A && git commit -m "描述" && git push`
|
|
3. **同步遠端** → `rsync -avz --rsync-path="sudo rsync" . ubuntu@192.168.42.120:/root/k8s/`
|
|
4. **套用變更** → `kubectl apply -f manifests/`
|
|
|
|
---
|
|
|
|
## 📚 叢集架構
|
|
|
|
```
|
|
┌─────────────────────────────────────┐
|
|
│ Traefik Ingress │
|
|
│ (note.xxx.com / git.xxx.com) │
|
|
└─────────────────┬───────────────────┘
|
|
│
|
|
┌─────────────┼─────────────┐
|
|
│ │ │
|
|
┌───▼───┐ ┌───▼───┐ ┌───▼───┐
|
|
│ CodiMD│ │Opengist│ │PostgreSQL
|
|
│ + │ │ │ │ (獨立)
|
|
│ PG │ │ │ │
|
|
└───────┘ └────────┘ └───────┘
|
|
│ │ │
|
|
└───▼─────────────▼─────────────▼───┘
|
|
Longhorn Storage
|
|
(持久化資料儲存)
|
|
```
|
|
|
|
---
|
|
|
|
## 🔗 相關連結
|
|
|
|
- [K3s 官方文檔](https://docs.k3s.io/)
|
|
- [Traefik Ingress](https://doc.traefik.io/traefik/)
|
|
- [Longhorn Storage](https://longhorn.io/)
|
|
|
|
---
|
|
|
|
⚠️ **注意**:維護時請同步本地與遠端,並定期執行備份!
|