嗨嗨大家,歡迎閱讀第 18 期的 CodeFarmer 技術週報。
上週放假時沒有偷懶地讀了一些 Docker 與 K8s 的速成入門教材,發現還算是有些效果,在實戰的調整設定、線上偵錯時能快速定位出問題可能的方向,與同事溝通詢問時也能用較精準的名詞,雖然過程中歷經一些小波折還順便瞭解了下怎麼做 rollback,但也終於排除萬難在今天順利交付了,可喜可賀。
有時候都會不自覺想到「自律帶來自由」這句話果然是真的,也因此就算再晚本週三也要繼續來學一些 K8s 才是,那就直接開始吧!
如果還沒看過前一篇《初學 Kubernetes (1):Docker 快速入門》的話,這裡也附上傳送門。
K8s 簡介
隨著容器化技術發展,許多公司與開發者在部署自己的應用程式,像是全端網頁專案、後端服務等 (以下簡稱 app),都開始使用容器化的方式來進行
我們可以透過 Docker、Podman 等容器化技術,結合各種 CI 服務來將 app 打包成 image 方便後續進行部署
容器化優點
更有效率的開發與部署 app
提高 app 穩定性
降低機器成本
容器化遇到什麼問題
容器數量少時,可能還可以人工手動去下指令,甚至聰明一點用 shell script 來管理啟動 app、偵錯、重啟服務等維護性操作
但當應用變得複雜,容器數變得越來越多,架構也就越複雜,如何管理與維護規模龐大的容器成為一個問題,而 K8s 也就應運而生
What is K8s (Kubernetes)
由 Google 在 2015 年開源的容器編排引擎 (container orchestration platform),是目前最流行的容器編排引擎
用途:方便自動化部署、擴展與管理容器化應用程式
Kubernetes 源自希臘文,意思是「舵手」,而「K8s」是將中間的 8 個字母省略後的縮寫形式,跟 I18N、A11Y 同個概念
K8s 特性
提供容器編排的功能,可以方便地使用 YAML 設定檔來管理容器化的 app (
終於知道為什麼之前看到有人戲稱自己是 YAML 工程師)提供許多 HA (高可用) 相關的特性,像是自動重啟、自動重建、自我修復等,讓使用者在任何時間內都能正常的使用系統
可以根據流量動態的擴展或縮減系統資源,像是當電商網站在舉辦搶購節日活動時,就可以根據需求縮減一些不太重要的服務與測試環境資源,並增加核心服務的資源,就能確保服務平穩度過高流量時段
K8s 元件
原本想再來寫點這塊的筆記,但這幾天小加了點班時間不夠用了,然後 K8s 元件又是五花八門,還沒完全讀懂與搞清楚哪些元件比較重要就先不誤人子弟,容我先下集待續… 🥹
參考資源與延伸閱讀
一開始學習主要是看一些速成影片搭配各種精彩的 IT 鐵人賽系列文章,後來翻了下 K8s 官方文件後發現其實寫得蠻完整且適合入門的,英文苦手甚至也有簡中版可以直接參考。
附上一些參考資源:
以上就是這期週報的所有內容了。若內容有什麼問題與討論也都歡迎透過以下管道與我交流,或直接留言與回覆這封電子信我也能收到:
Email:codefarmer.tw@gmail.com