隨著機構逐漸廣泛採用容器,以容器為中心的管理軟體 Kubernetes 就成為部署和操作容器化應用程式的標準。Kubernetes 起源於 Google Cloud,我們先在 Google 開發 Kubernetes,隨後在 2014 年發布為開放原始碼。Google 憑藉執行容器化工作負載 15 年的經驗,並融合開放原始碼社群寶貴的貢獻,才建構出 Kubernetes。受到 Google 內部叢集管理系統 Borg 的啟發,Kubernetes 把所有部署和管理應用程式相關環節都精心簡化。Kubernetes 提供自動化的容器調度管理功能,有助於提升作業可靠性,並減少分配至日常運作的時間和資源。
Kubernetes (有時會使用縮寫 K8s,8 是 K 到 s 中間的英文字母數量) 是一種開放原始碼系統,可在任何環境中部署、擴充及管理容器化應用程式。
Kubernetes 會自動執行容器管理的操作工作,並內建多種指令,可用於部署應用程式、逐步推出應用程式的變更、根據不斷變動的需求來調度應用程式資源,以及監控應用程式等,藉此簡化應用程式的管理作業。
對於在多個容器和伺服器中調度資源的應用程式,Kubernetes 有助於簡化管理作業。這項服務會使用開放原始碼 API 編排部署作業,將容器分組至 Pod,並根據需求和資源可用性調度資源。Kubernetes 也會自動執行服務探索、負載平衡和資源分配作業,並監控健康狀態,藉由重新啟動或複製容器來自我修復。
以下是 Kubernetes 的運作方式,企業開發人員可參考:
自動化作業
Kubernetes 內建各種指令,可用於處理許多繁重的應用程式管理工作,不僅能協助您將日常作業自動化,還能確保應用程式始終按照預期方式執行。
基礎架構抽象層
Kubernetes 在安裝後,就會代替工作負載處理運算、網路和儲存。如此一來,開發人員就可以專注在應用程式上,不必擔心基礎環境的問題。
服務健康狀態監控
Kubernetes 會持續對服務執行健康狀態檢查,重新啟動失敗或暫停的容器,而且只會在確認容器都已成功運行後,才讓使用者使用服務。
最佳化資源使用率
Kubernetes 會根據需求,有效率地將容器封裝至節點,進而提升資源使用率,減少資源浪費,降低基礎架構成本。
簡化應用程式管理作業
透過 Kubernetes 簡化應用程式管理作業。Kubernetes 提供一致的方法,助您部署、更新及管理複雜度各異的應用程式。
可攜性更高
Kubernetes 是開放原始碼平台,可在各種環境 (從地端部署資料中心到公有雲) 穩定運作,為企業提供彈性和可攜性。
比較 Kubernetes 與 Docker 時,常會落入非此即彼的陷阱,兩者雖然是用於執行容器化應用程式的不同技術,卻能互相補足彼此的不足。
Docker 會讓您將執行應用程式所需的全部資源都放到一個箱子裡,這個箱子可以在需要的時間和位置儲存及開啟。一旦開始採用封裝應用程式的做法,就需要一種方法加以管理,這就是 Kubernetes 能派上用場的地方。
Kubernetes 是希臘文,指的是船長。就像船長負責海上航行安全一樣,Kubernetes 會負責將這些箱子安全運送到可以使用的位置。
Kubernetes 可用於建立易於管理且能輕鬆部署到任何環境的應用程式。以代管服務形式使用的 Kubernetes 能提供各種解決方案滿足您的需求,以下是一些常見的用途。
Kubernetes 可以協助建構以微服務為基礎的雲端原生應用程式,此外也支援現有應用程式的容器化,因此能做為翻新應用程式的基礎,讓您加速開發應用程式。
Kubernetes 可在任意位置使用,無論是現場部署和公有雲,還是混合式部署,都能執行應用程式。也就是說,您可以在任何需要的地方執行應用程式。
Kubernetes 可以自動調整執行服務所需的叢集大小,讓您可以根據需求自動調度應用程式資源,以更有效率的方式執行應用程式。
瀏覽這些 Kubernetes 常見問題
Kubernetes 叢集由節點 (虛擬或實體機器) 組成,這些節點會執行由 Kubernetes 自動調度的容器化應用程式。
Kubernetes Pod 是最小的可部署單位,可容納一或多個容器,代表單一運作中的程序執行個體。
Kubernetes Deployment 可管理副本及順利的更新作業,確保應用程式達到所需狀態。
Kubernetes 服務是 Kubernetes 物件,可為應用程式提供穩定的 IP 位址和 DNS 名稱,讓其他應用程式可以存取。
只要更新部署設定中的副本數量,就能調度應用程式資源。Kubernetes 會配合所需的規模,自動建立或移除 Pod。