想要從 Docker 要跨入 Kubernetes 並不是容易的事情,許多人在在自學 Docker 時沒有什麼問題,但在跨越 Kubernetes 的過程中就遇到了許多難題而卡關。
那麼想要從 Docker 跨入 Kubernetes,究竟有哪些需要知道的事情以及差異呢?
以下統整了 5 個從 Docker 跨到 Kubernetes 你需要知道的事!希望幫你解決你在跨入 Kubernetes 遇到的難關!

文章目錄
1、從 單一機器 到 叢集調配
以 Docker 來說,大多的情境都是在同一台機器上執行。若要跨多台機器的運作的話,就需要特別設定與切換,在分散式的環境中就需要手動分配不同的機器資源給不同應用程式使用,而這個分配也需要手動先計算好需求,其複雜度也相對困難。這也就是為何推出 Docker Swarm 的原因。
而以 Kubernetes 而言,它本身就是設計在分散式環境中,會依據每個Pod (容器)需要的資料,自動計算調配到最合適的機器,不需要花精神在調配資料上面。除此之外,Kuberentes 也可以透過一些條件(Node/Pod affinity, taint/toleration 與 node selector)來靈活調配,具備客制化的彈性。
2、從 單點故障 到 高可用性
隨著雲端的盛行,高可用性己經成為維運必備的條件。
然而,單單使用 Docker 是無法辦到的。雖然在 Docker 上可以建立高可用性的叢集,如:MongoDB、Redis 的叢集,但因為仍然在單一的機器上,若剛好機器故障,一樣無法提供服務。
對於Kubernetes而言,因為它本身便是以叢集的方式存在,在分配 Pod (容器)時,會以高可用性作為考量,盡量在不同的機器執行,以確保能正常提供服務。此外,網路封包也會因應此故障進行重導,讓服務不中斷。
3、從 逐個部署 到 快速部署
從部署的角度來看,Docker 是以單一應用程式的方式包裝一個一個的 image,再以指令逐個建立 Cotainer 的型式將服務部署起來。
雖然有像 Docker Compose 的技術,可以將數個 Docker Container 用一個 yaml 的方式描述,並快速建立起來,但仍缺乏如負載平衡的機制,無法達到快速部署的目的。
而 Kubernetes 卻可以輕鬆快速的解決此問題。簡單舉個 Redis Cluster 的例子,Kubernetes 可以直接利用套件管理工具 helm,透過不同的設定依序將 Cluster 所需要的資源物件快速建立。而這些都歸功於 Kubernetes 內完整的功能與強大的設計。
4、從 手動擴展 到 快速擴展
隨著網路流量的變化,快速擴展應用程式,提供快速穩定的服務,是掌握錢潮與商機的不二法門。
若光以 Docker 而言,其內部並沒有提供此自動擴展的機制,此外,因為受限於機器的資源,能擴展的速度與規模都受到限制。
Kubernetes 內建就已提供自動水平擴展的功能,可以根據 CPU/Memory 的使用量,或是自訂的指標,自動擴展或縮減 Pod 的數量,若再搭配雲端平台,更可將虛擬機一起納入增縮的行列,大大節省了維運的成本,又可支持突如其來的流量。
5、從 獨立程式 到 應用服務群
因為 Docker 的出現,許多應用服務的架構已從單一大型的程式,轉往微服務化發展,也因此誕生了許多新興的技術,如:serverless 等。
而 Kubernetes 就是支持此潮流的技術平台。在此平台上,Container不再是單一的獨立程式,而是以「群體」的方式提供服務。
而這些服務群所需要的功能,不論是應付流量成長的快速擴展、服務不中斷的滾動升級、負載平衡、高可用性或是部署等,在這個平台上都可以輕易的實現。讓開發人員可以更專注在商業邏輯上,不用擔心要怎麼實作這些功能在程式中,更使企業能更快的面對市場的變化。
註:上述的 Docker 指的是不含有 Kubernetes 與 Docker Swarm 的功能。
結語
學習如何利用 Docker 建立、測試和部署應用程式,並且將容器化的程式導入 Kubernetes 進行自動化部署、彈性擴充及容器應用管理,掌握微服務的關鍵技術,已經是業界的趨勢。
相信大家都知道 Docker 與 Kubernetes 一同掌握,會增加多大的便利性了!
什麼?你還是覺得有點困難嗎?沒關係!趕緊讓 Mac 老師帶你過關斬將!
用課程增進你的能力
Docker 到 Kubernetes |容器管理完全入門指南

你想要開發應用服務卻遇到阻礙,不知道如何解決嗎 ?
Docker 與 Kubernetes 這兩項技術已成為現代工程師的基礎技能,而你還沒學會嗎?
給你一個一次掌握 Docker+Kubernetes 的機會!
▍市面上唯一結合 Docker 與 Kubernetes 的實戰課程,課程重點:
- 詳細介紹容器的基本概念到 Docker、K8s 的架構及操作
- 從 Docker 跨到 K8s 的學習方式
- 透過「訪客留言版」的實作,清楚掌握兩者該如何互相搭配應用
- 不只教你看懂技術文件,遇到問題更能找出解決方案立即加入這堂課,掌握企業必備的容器化技術吧!
現在就前往課程!
Hi 找我嗎?追蹤訂閱HiSKIO
- HiSKIO 嗨程式技能: 科技資訊文章、實用工具分享、新課程優惠領取
- Codefree:喝一杯咖啡,輕鬆學程式!
- HiSKIO LINE:叮咚!掌握最新資訊與優惠,現在就到 LINE 領200抵用券!
- HiSKIO YouTube:免費實用課程、工程師經驗分享
- 程式丼起來:不想一個人孤單寫 code ? 立即加入話題圈吧 !