# K3s 叢集 - 快速入門 新手友善的 K3s 維護指南 ## 🚀 快速開始 ### 連線到叢集 ```bash ssh ubuntu@192.168.42.120 sudo -i cd /root/k8s ``` --- ## 📦 服務管理 ### 部署服務 ```bash cd apps// ./deploy.sh ``` 例如部署 CodiMD: ```bash cd /root/k8s/apps/codimd ./deploy.sh ``` ### 查看服務狀態 ```bash cd apps// ./status.sh ``` 輸出包含: - Pods 狀態 - Services 狀態 - PVC 儲存狀態 - Ingress 入口 - 資料庫連通性(如適用) ### 停止服務(保留資料) ```bash cd apps// ./stop.sh ``` ⚠️ 注意:`stop.sh` 只刪除 Deployment/Service/Ingress,**PVC 和 Secret 會保留** --- ## 💾 備份與還原 ### 備份服務 ```bash cd apps// ./backup.sh ``` 備份位置: - CodiMD → `apps/codimd/backup/` - Opengist → `apps/opengist/backup/` - PostgreSQL → `apps/postgres/backups/` ### 還原服務 ```bash cd apps// ./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 # 查看日誌 kubectl logs ``` ### 服務無法連線? ```bash # 檢查 Service kubectl get svc # 檢查 Endpoints(是否有 Pod 掛上) kubectl get endpoints # 檢查 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/ 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` 確認目前狀態!