前面介紹完了 Docker,現在要轉向在不同機器上運行應用程式的話題,這就是為什麼我們開始介紹更強大的 Kubernetes。或許你會有疑問,為什麼前面都是講 Docker 開發的 Docker ,突然間轉向講 Google 開發的 Kubernetes?難道 Docker 沒有推出類似的產品嗎?
其實 Docker 確實推出了能在不同機器上管理和運行容器的軟體,稱為 Docker-Swarm。它有很多優點,例如與 Docker 的其他產品無縫配合,也相對較為輕巧。然而,Kubernetes 相對來說更為流行且更強大,最重要的是它擁有豐富且活躍的社群。因此,我們決定介紹 Kubernetes。
在多節點(機器)上運行服務的需求,最基本的是要能在各個節點上部署服務。接著,我們需要能夠將流量導向到我們的服務,以及滿足我們的服務的儲存和設定等需求。Kubernetes 能夠幫助我們處理這些問題。簡而言之,Kubernetes 是一種用於自動化部署、擴展和管理多個容器以及管理資源和權限分配的系統。
Kubernetes 有一個重要的概念,即控制平面(Control Plane)和工作節點(Worker Node)的區別。控制平面是我們下指令的地方,而主管(Control Plane)會自動調度底下的工人(Worker)去執行任務。工人(Worker)需要向主管(Control Plane)註冊(提供註冊信息)才能被主管分配任務。