何謂 Kubernetes?

依據 IBM Services

在任何環境中編排並部署儲存器化的應用程式

Kubernetes 是一種開放程式碼解決方案,可以自動部署、擴充和監視儲存器化的應用程式。

儲存器是與其基礎架構分開的軟體。有了儲存器,所有作業都會虛擬化至作業系統層次。這代表,不管應用程式在哪裡執行,都能以同樣的方式運作。

現今大部分儲存器已在 Kubernetes 平台上執行。根據一家組織表示:「Kubernetes 提供了以儲存器為中心的管理環境,能代替使用者工作負載來編排運算、網路和儲存基礎架構的作業,還能在各種基礎架構提供者之間攜帶。」⁽¹⁾

Kubernetes 基礎原理

Kubernetes 一開始是由 Google 的工程師團隊開發了一個名為 Borg 的叢集管理系統。2014 年,Google 推出了開放原始碼版本的 Borg,稱為 Kubernetes。⁽²⁾

第一版 Kubernetes 於 2015 年發佈,為分散式應用程式提供儲存器編排作業。Google 除了發行 Kubernetes 之外,還與 Linux 基金會合作成立了雲端原生運算基金會,並提供 Kubernetes 作為種子技術。⁽³⁾

自從 Kubernetes 首次亮相以來,由於能以儲存器技術為基礎讓開發作業達到系統間的可攜性,因此日益受到歡迎。Kubernetes 已累積超過 1400 個貢獻者,現在 Kubernetes 開放程式碼社群是世界上最大的社群。

Docker 雖然是最常用的儲存器技術,不過 Kubernetes 也支援其他技術。Docker 定義的範本可將軟體封包成標準化單元,內含執行應用程式的所有元素。

Kubernetes 則會編排儲存器環境,同時優化伺服器用量和空間。它會使用智慧型排程、負載平衡、可擴充性、儲存管理及批次執行等特性,來管理儲存器的部署位置與方式。

一些主要概念:

  • 基本的 Kubernetes 管理單元就是儲存器 Pod 或儲存器群組。Pod 中的儲存器共用相同的儲存體、資源及 IP 位址。
  • Kubernetes 叢集由主要節點和工作者節點組成。(節點是儲存器所執行的主機或伺服器,它可以是虛擬機器或實體機器。)
  • 主要節點會管理儲存器工作負載,並引導跨系統間的通訊。其中包含一個排程器,可控制效能、容量和可用性。
  • 工作者節點則是依主要節點的引導來執行 Pod。
  • 配置檔可讓團隊指定作業參數,例如可以一次執行的 Pod 數目。使用 Kubernetes,就能像在單一系統般管理整個資料中心的資源。 

Kubernetes 與 Docker:這並不是兩者擇一的問題

為什麼 Kubernetes 很重要

大型企業應用程式可能包含大量儲存器,這種結構很快就會變得複雜。

組織需要能編排儲存器環境中的所有移動組件,最好是從單一有利位置中編排。許多企業選擇 Kubernetes 作為解決方案。

Kubernetes 能管理生態系統,並調整運算和儲存容量,確保儲存器能夠有效使用和部署。讓開發過程可以隨時一次看到所有作業的進度。

Kubernetes 可協助組織簡化新應用程式的部署作業,簡化儲存器和資源管理作業,降低升級風險,同時避免停機。它能以個別或群組方式擴充應用程式元件,並支援可攜式雲端原生應用程式。 

Matt Johnsen 在他的 IBM 部落格中略述了一些優點:

  • 節省成本:Kubernetes 叢集最為人知的就是維護成本很低。團隊不需要撰寫自己的儲存器自動化指令碼,就能運用共享的基礎架構。由於能更有效地使用現有硬體,因此就能降低硬體成本。
  • 加快上市速度:Kubernetes 相當適用於 DevOps。好的儲存器管理是指,只要是由軟體執行,部署起來幾乎毫不費力。
  • IT 彈性:在現代企業中,軟體會執行任何數量的專用及共用基礎架構。使用儲存器管理解決方案表示,團隊不需要犧牲效能或進行重大調整來移動應用程式。他們可以只在企業有需要的地方執行軟體。

Kubernetes 的另一個好處是水平擴充,這有助於解決移動效能需求的問題。

IBM 開發人員大使 Sai Vennam 表示:「如果您已經在應用程式中使用 Docker 和儲存器,那麼將其移至 Kubernetes 便能真正有所幫助,解決幾乎每一個應用程式在擴充時會有的作業負擔。」

Kubernetes 即服務

組織可使用內部的 Kubernetes 系統來編排其儲存器部署。或者,服務提供者可提供以 Kubernetes 為基礎的平台或基礎架構即服務。

客戶也能在同樣功能下獲益,不過複雜性和額外負擔則相對較少。根據 IBM Cloud 副總裁暨 IBM 研究員 Jason McGee 表示:

「將一系列資源安裝、連接及配置到可運作的儲存器叢集,這種機制其實並不容易。」這需要努力,也需要專業知識。如果您需要從儲存器環境新增或移除容量,該怎麼辦?當發生故障時,該如何回復?儲存器和 Kubernetes 也會瞬息萬變。

「如果只靠自己,就很難跟上變化的速度。」因此受管理服務的好處就是,幫您管理這些作業,讓您可以只專心處理應用程式。」⁽⁴⁾

像 IBM 這樣的受管理服務提供者,就能處理每一個節點叢集中的運算、網路和儲存體資源。IBM 服務提供智慧型排程、簡化叢集管理、儲存器安全與隔離原則,以及基礎架構升級等作業。

IBM 客戶也可以在裸機雲端基礎架構上使用 Kubernetes 服務。這樣一來,需要極高運算效能(例如機器學習或 AI 工作負載)的應用程式就能變得更敏捷、更快速。

McGee 表示:「開發人員現在可以選擇滿足其需求的裸機機器配置,無論是隔離、增加處理能力或大型本機磁碟儲存等等都沒問題,同時還能利用儲存器的好處,例如輕鬆在系統間移動資料,或讓多個團隊成員同時在應用程式的多個組件上工作。」

The Weather Company 擴充了網路服務,協助確保民眾安全

 

Kubernetes 資源

何謂儲存器?為什麼需要儲存器?

瞭解儲存器是什麼,以及組織使用的目的

Kubernetes 採用和應用程式效能管理的重要性

看看為什麼以 Kubernetes 為基礎的雲端環境可以成為眾多企業的轉型契機

Kubernetes 與 Docker:為什麼不能兩者兼得?

瞭解 Kubernetes 與 Docker 之間的差異

IBM 運用裸機伺服器上的受管理 Kubernetes,將儲存器輕鬆好用的特性引進複雜的工作負載中

探索在裸機雲端基礎架構上執行 Kubernetes 儲存器作為受管理服務的好處

向 Watson 學習:儲存器如何擴充 AI 工作負載

探索 AI 工作量之所以不同和在雲端中變得更好的原因

運用 Outlayer 監視 IBM Cloud Service

瞭解在 IBM Cloud Kubernetes Service 上使用 Outlayer 自助監視的好處

精選服務

IBM Kubernetes Cloud Service

 

1. https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

2.https://blog.risingstack.com/the-history-of-kubernetes/

3.https://en.wikipedia.org/wiki/Kubernetes

4. https://softwareengineeringdaily.com/2017/11/29/how-ibm-runs-its-cloud-with-jason-mcgee/