docs: add README.md, QUICKSTART.md, SUMMARY.md for K3s maintenance
This commit is contained in:
189
QUICKSTART.md
Normal file
189
QUICKSTART.md
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
# K3s 叢集 - 快速入門
|
||||||
|
|
||||||
|
新手友善的 K3s 維護指南
|
||||||
|
|
||||||
|
## 🚀 快速開始
|
||||||
|
|
||||||
|
### 連線到叢集
|
||||||
|
|
||||||
|
```bash
|
||||||
|
ssh ubuntu@192.168.42.120
|
||||||
|
sudo -i
|
||||||
|
cd /root/k8s
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📦 服務管理
|
||||||
|
|
||||||
|
### 部署服務
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd apps/<app-name>/
|
||||||
|
./deploy.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
例如部署 CodiMD:
|
||||||
|
```bash
|
||||||
|
cd /root/k8s/apps/codimd
|
||||||
|
./deploy.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 查看服務狀態
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd apps/<app-name>/
|
||||||
|
./status.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
輸出包含:
|
||||||
|
- Pods 狀態
|
||||||
|
- Services 狀態
|
||||||
|
- PVC 儲存狀態
|
||||||
|
- Ingress 入口
|
||||||
|
- 資料庫連通性(如適用)
|
||||||
|
|
||||||
|
### 停止服務(保留資料)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd apps/<app-name>/
|
||||||
|
./stop.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠️ 注意:`stop.sh` 只刪除 Deployment/Service/Ingress,**PVC 和 Secret 會保留**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💾 備份與還原
|
||||||
|
|
||||||
|
### 備份服務
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd apps/<app-name>/
|
||||||
|
./backup.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
備份位置:
|
||||||
|
- CodiMD → `apps/codimd/backup/`
|
||||||
|
- Opengist → `apps/opengist/backup/`
|
||||||
|
- PostgreSQL → `apps/postgres/backups/`
|
||||||
|
|
||||||
|
### 還原服務
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd apps/<app-name>/
|
||||||
|
./restore.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
⚠️ 還原前請先停止服務
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔍 叢集診斷
|
||||||
|
|
||||||
|
### 檢查節點狀態
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /root/k8s/cluster
|
||||||
|
./check_nodes.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 檢查儲存空間
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /root/k8s/cluster
|
||||||
|
./check_storage.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### 檢查存取權限
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /root/k8s/cluster
|
||||||
|
./check_access.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ 常見問題排查
|
||||||
|
|
||||||
|
### Pod 無法啟動?
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 查看 Pod 狀態
|
||||||
|
kubectl get pods
|
||||||
|
|
||||||
|
# 查看詳細資訊
|
||||||
|
kubectl describe pod <pod-name>
|
||||||
|
|
||||||
|
# 查看日誌
|
||||||
|
kubectl logs <pod-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 服務無法連線?
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 檢查 Service
|
||||||
|
kubectl get svc
|
||||||
|
|
||||||
|
# 檢查 Endpoints(是否有 Pod 掛上)
|
||||||
|
kubectl get endpoints <service-name>
|
||||||
|
|
||||||
|
# 檢查 Ingress
|
||||||
|
kubectl get ingress
|
||||||
|
```
|
||||||
|
|
||||||
|
### 儲存空間不足?
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 檢查 Longhorn volumes
|
||||||
|
kubectl get pv -A
|
||||||
|
kubectl get pvc -A
|
||||||
|
|
||||||
|
# 檢查節點磁碟
|
||||||
|
df -h
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📝 修改 Manifests
|
||||||
|
|
||||||
|
1. **本地編輯**:在 `/Users/timmy/42_120/k8s/` 修改 yaml
|
||||||
|
2. **同步到遠端**:
|
||||||
|
```bash
|
||||||
|
rsync -avz --rsync-path="sudo rsync" \
|
||||||
|
/Users/timmy/42_120/k8s/ \
|
||||||
|
ubuntu@192.168.42.120:/root/k8s/
|
||||||
|
```
|
||||||
|
3. **應用變更**:
|
||||||
|
```bash
|
||||||
|
cd /root/k8s/apps/<app-name>
|
||||||
|
kubectl apply -f manifests/
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔄 Git 版控工作流程
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 本地
|
||||||
|
cd /Users/timmy/42_120/k8s
|
||||||
|
git add -A
|
||||||
|
git commit -m "描述變更"
|
||||||
|
git push
|
||||||
|
|
||||||
|
# 確認遠端已有變更後,再同步到 K3s 主機
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 服務清單速查
|
||||||
|
|
||||||
|
| 服務 | 目錄 | deploy | stop | status | backup |
|
||||||
|
|------|------|--------|------|--------|--------|
|
||||||
|
| CodiMD | `apps/codimd/` | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
| Opengist | `apps/opengist/` | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
| PostgreSQL | `apps/postgres/` | ✅ | ✅ | ✅ | ✅ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
💡 **提示**:執行任何腳本前,先用 `./status.sh` 確認目前狀態!
|
||||||
143
README.md
143
README.md
@@ -1,35 +1,118 @@
|
|||||||
# K8s 叢集維護記錄
|
# K3s 叢集管理
|
||||||
|
|
||||||
## 連線資訊
|
> 個人 K3s Kubernetes 叢集的 manifests 與維護腳本
|
||||||
- **主機**: 192.168.42.120
|
|
||||||
- **帳號**: ubuntu (SSH Key 登入)
|
|
||||||
- **sudo**: `sudo -i` 可直接成為 root
|
|
||||||
|
|
||||||
## K3s 目錄
|
## 📖 文檔導航
|
||||||
- **遠端**: `/root/k8s`
|
|
||||||
- **本地**: `/Users/timmy/42_120/k8s`
|
|
||||||
|
|
||||||
## 已部署服務
|
| 文檔 | 用途 |
|
||||||
|
|------|------|
|
||||||
### CodiMD (筆記應用)
|
| **[SUMMARY.md](SUMMARY.md)** | 📋 服務總覽、快速參考 |
|
||||||
- manifests: `apps/codimd/manifests/`
|
| **[QUICKSTART.md](QUICKSTART.md)** | 🚀 快速入門、操作指南 |
|
||||||
- 備份: `apps/codimd/backup/`
|
|
||||||
- 腳本: deploy.sh, stop.sh, status.sh, backup.sh, restore.sh
|
|
||||||
|
|
||||||
### Opengist (Git Snippets)
|
|
||||||
- manifests: `apps/opengist/manifests/`
|
|
||||||
- 備份: `apps/opengist/backup/`
|
|
||||||
- 腳本: deploy.sh, stop.sh, status.sh, backup.sh, restore.sh
|
|
||||||
|
|
||||||
### PostgreSQL (資料庫)
|
|
||||||
- manifests: `apps/postgres/manifests/`
|
|
||||||
- 備份: `apps/postgres/backups/`
|
|
||||||
- 腳本: deploy.sh, stop.sh, status.sh, backup.sh
|
|
||||||
|
|
||||||
## 叢集工具
|
|
||||||
- `cluster/check_access.sh` - 檢查存取權限
|
|
||||||
- `cluster/check_nodes.sh` - 檢查節點狀態
|
|
||||||
- `cluster/check_storage.sh` - 檢查儲存空間
|
|
||||||
|
|
||||||
---
|
---
|
||||||
⚠️ 維護時請同步更新本地與遠端檔案
|
|
||||||
|
## 🖥️ 連線資訊
|
||||||
|
|
||||||
|
```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/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
⚠️ **注意**:維護時請同步本地與遠端,並定期執行備份!
|
||||||
|
|||||||
130
SUMMARY.md
Normal file
130
SUMMARY.md
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
# K3s 叢集總覽
|
||||||
|
|
||||||
|
快速參考手冊 - 所有服務一覽
|
||||||
|
|
||||||
|
## 🖥️ 叢集資訊
|
||||||
|
|
||||||
|
| 項目 | 值 |
|
||||||
|
|------|-----|
|
||||||
|
| 主機 | 192.168.42.120 |
|
||||||
|
| 連線 | `ssh ubuntu@192.168.42.120` → `sudo -i` |
|
||||||
|
| K8s 目錄 | `/root/k8s` |
|
||||||
|
| 本地目錄 | `/Users/timmy/42_120/k8s` |
|
||||||
|
| Git Repo | http://192.168.42.124:31337/timmy/k3s.git |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 已部署服務
|
||||||
|
|
||||||
|
### CodiMD - 協作筆記應用
|
||||||
|
|
||||||
|
| 項目 | 值 |
|
||||||
|
|------|-----|
|
||||||
|
| 用途 | Markdown 協作筆記、團隊知識庫 |
|
||||||
|
| Ingress | `note.yourdomain.com` |
|
||||||
|
| 命名空間 | `default` |
|
||||||
|
| 資料庫 | PostgreSQL (內建) |
|
||||||
|
|
||||||
|
**組件:**
|
||||||
|
- `codimd-app` - 應用程式
|
||||||
|
- `codimd-db` - PostgreSQL 資料庫
|
||||||
|
- Longhorn PVC - 資料持久化
|
||||||
|
|
||||||
|
**腳本:** `apps/codimd/{deploy,stop,status,backup,restore}.sh`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Opengist - Git Snippets 管理
|
||||||
|
|
||||||
|
| 項目 | 值 |
|
||||||
|
|------|-----|
|
||||||
|
| 用途 | 自架 Git snippets、程式碼片段分享 |
|
||||||
|
| SSH Port | `2222` (Traefik TCP) |
|
||||||
|
| Web Port | `80`/`443` (Ingress) |
|
||||||
|
| 命名空間 | `default` |
|
||||||
|
|
||||||
|
**組件:**
|
||||||
|
- `opengist` - 應用程式
|
||||||
|
- Longhorn PVC - 資料持久化
|
||||||
|
|
||||||
|
**腳本:** `apps/opengist/{deploy,stop,status,backup,restore}.sh`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### PostgreSQL - 獨立資料庫
|
||||||
|
|
||||||
|
| 項目 | 值 |
|
||||||
|
|------|-----|
|
||||||
|
| 用途 | 通用 PostgreSQL 資料庫服務 |
|
||||||
|
| Service | `postgres:5432` |
|
||||||
|
| 命名空間 | `default` |
|
||||||
|
|
||||||
|
**腳本:** `apps/postgres/{deploy,stop,status,backup}.sh`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📂 目錄結構
|
||||||
|
|
||||||
|
```
|
||||||
|
k8s/
|
||||||
|
├── apps/
|
||||||
|
│ ├── codimd/ # CodiMD 筆記應用
|
||||||
|
│ │ ├── manifests/ # K8s YAML 檔案
|
||||||
|
│ │ ├── backup/ # 備份檔案
|
||||||
|
│ │ ├── tmpdir/ # 暫存/舊檔案
|
||||||
|
│ │ └── *.sh # 管理腳本
|
||||||
|
│ ├── opengist/ # Opengist Git Snippets
|
||||||
|
│ │ ├── manifests/
|
||||||
|
│ │ ├── backup/
|
||||||
|
│ │ └── *.sh
|
||||||
|
│ └── postgres/ # 獨立 PostgreSQL
|
||||||
|
│ ├── manifests/
|
||||||
|
│ ├── backups/ # SQL 備份
|
||||||
|
│ └── *.sh
|
||||||
|
└── cluster/ # 叢集檢查工具
|
||||||
|
├── check_access.sh # 檢查存取權限
|
||||||
|
├── check_nodes.sh # 檢查節點狀態
|
||||||
|
└── check_storage.sh # 檢查儲存空間
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 常用 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. **同步遠端** → `rsync` 或 `git push`
|
||||||
|
3. **部署** → 執行 `deploy.sh`
|
||||||
|
4. **驗證** → 執行 `status.sh`
|
||||||
|
5. **備份** → 執行 `backup.sh`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
📖 詳細操作請參考 [QUICKSTART.md](QUICKSTART.md)
|
||||||
Reference in New Issue
Block a user