OVH 雙節點 VPS 基礎設施
雙節點 OVH VPS Kubernetes 環境的全自動化設置工具包,整合 K3s、Tailscale、Cloudflare Tunnel 及完整可觀測性技術棧。

專案概述
針對兩台 OVH VPS 節點的生產級、全腳本化基礎設施,運行 K3s Kubernetes。VPS-1(主節點)架設 K3s 控制平面、ArgoCD、Prometheus、Grafana、Loki、Traefik Ingress 及 Cloudflared Tunnel。VPS-2(工作節點)運行 K3s Agent、Node Exporter 和 Promtail。資料庫(PostgreSQL 16、MongoDB 8、Redis 7)刻意以 Docker 運行於 K3s 之外,避免 StatefulSet 複雜度。Tailscale 提供節點間 VPN mesh,rclone 備份資料至 OVH S3 和 Google Drive。
技術挑戰與解決方案
安全的節點間網路
OVH 的私有網路(vRack)需要額外設定和費用。需要為兩台 VPS 節點的 K3s 叢集流量建立安全的私有通道。
零暴露外部存取
透過公開 NodePort 或 LoadBalancer 暴露 Kubernetes 服務會增加攻擊面,需要在不開放入站防火牆 Port 的情況下實現 HTTPS 存取。
資料庫穩定性與 K3s 分離
在 Kubernetes StatefulSet 中運行有狀態資料庫增加了排程複雜性和節點故障時的資料丟失風險。
系統架構
節點間通訊透過 Tailscale(WireGuard VPN mesh,取代 OVH vRack)。外部 HTTPS 透過 Cloudflare Tunnel(零開放入站 Port)。工作負載透過 ArgoCD GitOps 部署至 K3s,Traefik 處理 Ingress 路由。可觀測性:Prometheus + Grafana(指標)、Loki + Promtail(日誌)、Node Exporter(主機指標)。每節點一次性執行編號 Bash 腳本(00–06)完成自動化設置。
學習與心得
設計這套基礎設施讓我學會如何以有限預算組合企業級可靠性模式:用 Tailscale 取代 vRack、Cloudflare Tunnel 取代負載均衡器,以及刻意將有狀態工作負載放在 Kubernetes 之外。結果是一個具韌性、可觀測且成本效益高的自託管平台。