簡單介紹 Kubernetes

less than 1 minute read

Kubernetes 又稱作 k8s,因為字母 k 跟 s 之間隔著 8 個字母,因此也叫做 k8s。 K8s 在官網上的介紹是「Production-Grade Container Orchestration」,簡單來說 k8s 就是一個拿來管理眾多 containers 的工具,他可以完美的讓 container 與 container 之間互相溝通、擴展,因此在現在 Cloud Native 雲原生的概念越來越興起的時代,k8s 扮演著重要的角色,現今許多知名企業也都改用 k8s 來部署產品服務。

網路上已經有許多 k8s 的教學資源可以閱讀,而 offcial document 也有非常詳盡的教學,大家可以多多利用!

1. Introduce microservice, container

上面有提到 k8s 負責管理大量的 containers,確保他們能完美配合,那為什麼會發展到需要用 container 來執行我們的服務呢?

這裡需要利用官網的一張圖片來說明: 部署發展歷程 在這張圖裡可以看到,在以前電腦效能還不足的時代,要 deploy 一個服務可能需要一整台機器。然而隨著時代的演進,科技一直突破上限,我們為了有效利用電腦的效能,會在機器上安裝 VM (Virtual Machine) 來讓同一台機器可以跑多個服務。再之後,為了最大化快速發展的運算資源,我們捨棄 VM 裡會有的 OS Kernal,並且使用 docker 之類的工具來 run container,如此一來 container 就不像 VM 有多餘、佔資源的 OS Kernal,讓一台機器可以跑許多 containers。我們將程式碼包裝成 microservice 跑在 container 裡面。containers 數量一多,就會有「管理」的需求,Kubernetes 就誕生了。

因此,如果我們將我們的系統都用 microservice 的模式去設計,將龐大的系統切分成許多微服務,那我們就能快速 debug,也讓每個 microservices 各司其職,增加擴展性。

Comments