該上 K8s 嗎?
我從大概一年半前就開始有在自架服務,架著架著服務就開始多了起來,這裡指的多不是兩個三個,而是十幾個以上。主要的原因是一個服務常常會需要再架一個 DB 或者 Redis。
到了我使用 docker compose 來管理的末期,已經有超過六百行的 yaml 檔用來管理我的所有服務。而後來我去成大研習的時候剛好聽到了 Kubernetes(K8s),所以我就把我所有的服務都改用 K8s 架設。
可能有些人會覺得有點殺雞焉用牛刀了,要這麼說也沒錯,其實用 docker compose 確實可以管理我那堆服務,但問題不方便啊!用上 K8s 之後管理服務變成管理數個 yaml 檔。
而且我自己還有加上 Git 來追蹤,一切變得簡單好處理。
接著有另個問題是在轉換的初期會遇到,不管是從 Docker 或者是 Native 轉換到 K8s 一定都會遇到的就是找不到 YAML 檔的問題,像我搞最久的 Ente Photo 就沒有給 K8s 用的 Yaml 檔。
像上面那個服務,如果不熟 K8s 真的會卡很久,但好消息是,只要熟悉了之後,轉換就會非常快。像我所有的 YAML 都是從 docker compose 裡面轉出來的。
如果有讀者遇到轉換上真的有問題,也歡迎和我討論!
我自己安裝的是 K8s 的另一個變體 K3s。兩者的差別在於 K3s 所用的資源少非常多,但也有一些功能被拔掉。不過我自己沒有因為功能缺失,導致架不起來的狀況,推測應該是給更專業的用途用的。
而且裝好了之後我推薦一個管理介面叫 Lens。
有了這個可以介面,可以非常直觀地看到目前所有服務的運行狀態。當然,不是說有了這個就不用學 K8s 的概念,而是在學會之後這個可以做為輔助工具。
最後,來分享一下我學習 K8s 的過程,我自己覺得在學會 K8s 之前一定一定要先學會 Docker,不然很多東西可以轉換上會卡住。我當初學習的時候是看著 Kubernetes 30天學習筆記學會的,大概從頭看到尾加上實作就能學會了,真的不難。
希望大家有一天都能用上 K8s!