透過 frp 與 GCP 打通家用 kubernetes cluster 的對外連線

概述 在家裡面架著一台 lab,使用 proxmox ve 作為 vm server 透過 qemu 虛擬化一台 ubuntu server vm 在這個 vm 上使用 k3s,啟動 kubernetes 的服務 在 kubernetes 內跑著眾多 dockerize 的 containers。 雖然我不是資深維運專家,但我知道這可能很搞笑。 會需要這麼麻煩還不是為了省一點點 GKE 的成本(即便可能沒省到),但在自家建一個 lab 環境而不用計算由時間計價的 infra 成本,還是挺省腦袋的。 過去僅是將 service 使用 nodePort 來讓家裡面的其他裝置可以連線,或是使用 wireguard 作為 VPN 來從遠端連線,就是沒有動力處理好 http service 與 TLS,趁這個假日剛好需要把 自架 vaultwarden 後端 給 expose 出來,便誕生了這篇。 在當前的雲端運算時代,許多開發者和 IT 專業人員都面臨著一個共同的挑戰:如何有效地將位於不同網絡環境中的服務整合並暴露給公眾。特別是對於那些希望將家用網絡中的服務有效連接到公共雲端(如 GCP,AWS,Azure,OCI)的用戶來說,這一挑戰尤為突出。文內主要講述通過在 GCP VM 上部署 FRP(Fast Reverse Proxy)服務器,結合家中的 kubernetes cluster 上配置的 FRP 客戶端,來實現一個高效且安全的服務部署流程。 透過此方式,我們不僅可以利用 GCP VM 作為公共 IP 的代理,實現從互聯網到家庭網絡的無縫連接,還能藉助 kubernetes 的強大功能進行快速的服務部署和管理。同時,利用 ingress-nginx 作為 ingress 控制器和 cert-manager 進行 TLS 設定,我們能夠確保服務的安全性和可靠性。...

2023-11-12 · 5 min · 923 words