首先需要說一下服務器配置,只要你的服務器配置高于1核2G,均可使用該基礎設施來管理你的個人服務器,你可以在服務中部署幾個應用,并且把該服務器作為你的測試服務器來使用。但是你的應用過多,或者QPS稍大,可以相應地加強服務器配置。
現在來簡述下一個低配置的個人服務器的基礎設施架構圖
Traefik
架構圖的最核心位置是 traefik,一個 Edge Router,它也是該基礎設施的重點。
服務器內的所有應用服務,如 postgres,redis以及自己所寫的應用服務,都與 traefik 置于一個網絡下,它們共同組成了一個集群。
以下是我使用它的理由
熱更新配置,無需重啟
自動服務發現與負載均衡
TLS/SSL 證書的自動生成
與Docker的完美集成,基于 container label 的配置
漂亮的 dashboard 界面
關于 traefik 可以參考文章 Traefik 簡易配置及入門
請求路由
從圖左側可以看出,請求路由分為兩大類。當然他們的路由規則都是通過 traefik 來控制
shanyue.tech 通過公有的域名提供公有的、可供互聯網訪問的服務。如博客,微信公眾號開發,個人網站及后端服務等等
shanyue.local 通過私有的域名提供私有的、只供內部進群訪問的服務,保證安全性。如數據庫,redis等等
應用與服務
在圖右側,都是個人服務器里的應用,它們均是通過 docker-compose 部署。你可以在 shfshanyue/op-note:compose 中找到所有的配置文件
只需要 docker-compose up -d 即可啟動
whoami: 一個用以測試的服務,測試負載均衡及路由匹配等
DNS: 集群內 DNS 服務,給自己的私有域名 shanyue.local 做解析
openvpn:與個人筆記本搭建局域網,方便訪問個人服務器上服務以及調試頁面
postgres
redis
本章將會講述如何部署它們以及它們的配置文件。不過在此之前,你需要對 docker 以及 docker-compose 了解一些,參考以前文章
docker 簡易入門
docker compose 簡易入門
私有服務
shanyue.local 路由所提供的服務都是私有服務,通過 dnsmasq 與 openvpn 在個人筆記本上進行訪問。
搭建集群內部 DNS 服務器
使用 openvpn 訪問集群私有服務
監控
個人服務器自然也需要監控,如負載,CPU,內存,網絡,磁盤等。如果你服務器配置較高,且中有重要應用在跑時可以使用 prometheus 與 grafana 搭建一套監控系統,但是作為一個輕量的個人服務器,這樣就顯得小題大做,而且消耗極其資源。
關于該云服務器的 metric 可以直接在阿里云的監控面板上進行查看。但對于輕量的個人服務器,可以使用 htop 與 ctop 兩個簡單的命令行工具來搞定
htop 監控進程指標
ctop 監控容器指標
作者:shanyue
鏈接:https://juejin.im/post/5e127bcf5188253a5f56cc18
來源:掘金
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。