關於 k8s 的一些閒聊
閒聊
最近在搞 k8s 和一些有的沒得,發現他水好深,雖然應該是我的問題 目前部署的東西有 :
- k3s
- nfs
- samba(這原本就存在)
- seaweedFS(是部署了但是for單獨服務)
- MetalLB 搞下來發現水挺深的
架構
目前算是新舊架構撞在一起吧 一個對外的 nginx 部份網域導向 k8s 然後用內部的 treafik 接下來是 k8s 內部的網路 有些是 直接 LoadBalancer 出去然後用 nginx 總之挺混亂w
優點
優點不用說 簡單來說算是減少了一部分的管理困難吧 至少當初想要用的懶的每一個 Server 部署的問題是解決了 不過相對應的他也產生了一大堆學習成本
比如說 之前都沒有學 Docker 的 然後他會需要 如果不想 image 公開 可以架 Registry 然後 Registry 用 http 本身也是問題 雖然那是題外話 後面說
算是某種意義上鼓勵學習吧 (連 CI/CD 都想搞了 GitOps 我來了)
當然 還有一個 deployment.yaml 可以搞定一大堆東西 雖然會變得很臃腫 然後你又可以學新東西了(累)
倒是 有一個有趣的
之前因為沒找到 Minecraft Server Manager For K8s 在自己實踐的時候發現你可以把東西寫成無狀態的 基本上伺服器就聽 k8s 的狀態來改自己的東西 算是意外的挺方便 也挺符合 k8s 的作風的我猜 順帶一提 他能夠 mount Config-Map 成 檔案 這減少了一大堆負擔 改起來還簡單 一舉多得了 超棒
缺點
缺點對我來說挺明顯的 主要是我沒有經過系統性學習 基本上就是用到哪學到哪 基本上基礎都沒有打好 然後曲線就高到爆炸 雖然說基礎搞清楚很簡單 但要用的好還真困難呢
還有一個雷點 不算是 k8s 的 如果你自己架 Registry 用 http 你會多一大堆麻煩 以我的例子來說 我用 樹莓派 建 Cluster 你這時候需要為 arm64 建 image 這時候呢 buildx ... --push 會罷工 加上你要在個集群設定好 allow http 挺浪費時間的w
對了 還有 雖然情況應該很難出現 但如果你想要搞多 Node 防資料丟失的話 你勢必需要第三個儲存方式 獨立於 Node 這樣才有辦法跨 Node 遷移資料 但這就又會是問題 比如說我就額外搞了 nfs 他的權限問題我至今搞不懂 雖然是 linux 學習 的問題就是www