什麼是 Kubernetes?

已完成

與容器不可部分完成性結合的微服務分離設計,可讓您擴增可回應需求的應用程式。 在無人機追蹤應用程式等複雜解決方案中,部署、更新、監視及移除容器的程序會帶來許多挑戰。

在查看 Kubernetes 的內容之前,您應該先了解兩個概念:容器管理和協調器。

什麼是容器管理?

容器管理是針對大量容器進行整理、新增、移除或更新的程序。

無人機追蹤應用程式包含多種微服務,負責快取、佇列或資料處理等工作。 這些服務都裝載在容器中,且可獨立地進行部署、更新及縮放。

Diagram of a server or application replicated as containers for cloud deployment.

例如,透過無人機追蹤應用程式的網站,您發現在一天中的特定時間,需要更多網站快取服務的執行個體來維持效能,因此您想要新增更多快取服務容器執行個體。

接下來,假設您現在已增加快取執行個體的數量,而需要推出新版本的微服務。 您必須更新所有使用中容器,才能使用新版本。

容器管理可協助您完成這些原本需要手動重複進行的工作。

什麼是容器協調器?

容器協調器是一個自動部署和管理容器化應用程式的系統。 在管理過程中,協調器會處理環境中的縮放動態變更,以增加或減少已部署受控應用程式執行個體的數目。 協調器也可確保在發行新版本的服務時,所有已部署的容器執行個體都會更新。

Diagram showing how number of deployed container instances is automatically increased if demand rises and how an orchestrator ensures all deployed instances are updated with the latest software version.

定義 Kubernetes

Kubernetes 是可移植的可擴充開放原始碼平台,適用於管理和協調容器化的工作負載。 Kubernetes 會簡化複雜的容器管理工作,並提供宣告式設定,以在不同的運算環境中協調容器。 此協調流程平台提供在平台即服務 (PaaS) 或基礎結構即服務 (IaaS) 供應項目中已了解的相同易用性和彈性。

Diagram of replicated servers as multiple containers in a Kubernetes cluster.

Kubernetes 優點

使用 Kubernetes 的優點其基礎為工作抽象化。

Diagram that lists three Kubernetes benefits: self-healing, dynamic scaling, and rolling updates.

這些工作包括:

  • 自我修復容器; 例如,重新啟動失敗或取代容器的容器

  • 根據需求動態擴大或縮小已部署的容器計數

  • 自動輪流更新或復原容器

  • 管理儲存體

  • 管理網路流量

  • 儲存和管理敏感性資訊,例如使用者名稱與密碼

重要

請記住,上述所有 Kubernetes 層面都需要設定並充分了解底層技術。 例如,您必須了解如虛擬網路、負載平衡器、反向 Proxy 等概念,才能設定 Kubernetes 網路功能。

Kubernetes 考量

使用 Kubernetes 時,您可將資料中心視為一個大型計算資源。 您不必擔心部署容器的方式和位置,只需關心在需要時部署和縮放應用程式即可。

Diagram that shows a list of Kubernetes components that including monitoring, microservices, databases, and the Docker runtime.

不過,請務必了解,Kubernetes 並不是單獨安裝的應用程式,其也包含用於管理及協調容器化解決方案的所有可能必要元件:

  • 部署、調整、負載平衡、記錄和監視等層面都是選擇性的。 您必須負責找出可滿足您處理這些層面之需求的最佳解決方案。

  • Kubernetes 並未限制可在平台上執行的應用程式類型。 若您的應用程式可在容器中執行,則其可在 Kubernetes 上執行。 為了充分利用容器化解決方案,開發人員必須了解微服務架構等概念。

  • Kubernetes 既不提供中介軟體、資料處理架構、資料庫、快取,也不提供叢集儲存體系統。 所有這些項目都是以容器的形式執行,或作為另一個服務供應項目的一部分執行。

  • 若要讓 Kubernetes 能夠執行容器,其必須具有容器執行階段,例如 Docker 或容器。 容器執行階段是負責管理容器的物件。 例如,容器執行階段會啟動、停止及報告容器的狀態。

  • 您需負責維護自己的 Kubernetes 環境。 例如,您必須管理 OS 升級及 Kubernetes 安裝與升級。 您也必須管理主機電腦的硬體組態,例如網路功能、記憶體及儲存體。

Azure Kubernetes Service (AKS) 等雲端服務可透過提供裝載的 Kubernetes 環境來減少這些挑戰。 這些服務也能簡化 Azure 中容器化應用程式的部署與管理。 利用 AKS ,您可獲得開放原始碼 Kubernetes 的優點,又不會產生執行自訂 Kubernetes 叢集的複雜性或操作額外負荷。

注意

Kubernetes 有時會縮寫為 K8s。 8 表示單字 K[ubernete]s 中介於 K 與 s 之間的八個字元。