到底什麼是docker / K8s ? (三)
K8s
前面的基礎了解了之後,再來了解K8s 和 docker 的關係。
那到底 K8s 和 docker 的關係是 ?
說白一點,使用 container 加上 微服務架構來建立服務系統,意謂著container 的數量不會少,實體機當然也不會少 (這是基礎設備)。需要有一個管理者/管理工具來協助管理這為數不少的 container。
在 Kubernetes 的官網,很清楚的描述 Kubernetes 服務
簡單來說,K8s 可以做到的事如下:
- Deployment — 部署多個容器到多台機器上
- Scaling — 服務乘載量有變化時,可以容器自動擴展/減少容器的數量
- Management — 管理多個容器的狀態,自動偵測並重啟故障的容器
所以,不要再問用 docker 好還是用K8s 好。因為兩者之間是不能比較的,一個是管理 container 的工具,另一個是實際上在做服務的系統程式。
使用關鍵字 “container management tools” 去搜尋,可以找到不少這類管理工具。其中 的 Kubernetes(K8S)名氣一直很高的原因,一方面是 open source project, 另一方面是它是Google 內部開發出來的一套工具。再加上媒體不斷的推波助瀾,而吸引了不少目光,也因此讓它名氣大增。
回到主題上來,那到底什麼時候需要K8s? 若負責的人員是個高手中的高手,系統中的dockers 數量並不多,系統掛了幾天沒有人會抱怨,K8s 不使用其實也沒什麼多大的影響。但若是個很重要的系統,docker 也是上百上千個,還是用吧。連Google 內部都在用的系統,有什麼道理不使用? 善用工具才能夠提升工作效率。
這裡的前提是公司的系統可能是新系統,或是已經導入docker 的實作方式。若舊系統還活的好好的,千萬不要隨便去變動,變動下去的成本會是相關的高。需要重長計議,好好研究。
所以,以技術層面來說,K8s和賣伺服器其實是兩碼子事。但在商業的本質才來就是要有利潤,搭著K8s 議題來賣更多伺服器也是很正常的事。重點是要讓能夠不了解技術的人,能夠用淺顯易懂的方式來了解技術在做什麼,才能有效率將公司產品賣的更好。