你認識Kubernetes嗎?其實K8S還可以拿來這樣用……
Kubernetes出自於雲端原生運算基金會(Cloud Native Computing Foundation)專案,它支援多種IT作業需求,不只是容器協作而已,還包括多雲部署、服務發現和無伺服器(serverless)平台等。以下列出企業對Kubernetes的主流和新興應用趨勢。
本文目錄
容器環境協作
Kubernetes最主要應用仍是容器管理和協作,特別是協助IT管理員自動化跨叢集的容器部署、擴充和排程。
即使Kubernetes現在成為企業容器協作平台的王道,但也不是通行無礙。一些企業發現Kubernetes用在生產系統,特別是安全和監控類環境還是遭遇到問題。
支援重度資料應用
Kubernetes—和容器—並不太會讓人與重度資料或狀態(stateful)應用聯想在一起。但最近Kubernetes市場開始有一些變化。
例如Google 9月間公佈一款在Kubernetes跑Apache Spark的服務,名為Cloud Dataproc for Kubernetes(Apache Spark是一個跑大量資料分析應用的平行處理框架)。這款代管服務讓IT部門可以透過Google Kubernetes Engine (GKE)跑Spark 作業。不過目前它還在alpha版,一些功能像是Spark和Kubernetes排程功能的差異解決還需要再改進。
其他廠商如Robin Systems也推出一款hyper-converged Kubernetes平台,適用於大數據及機器學習作業,進一步把Kubernetes用在重度資料和狀態App上。
串流多雲管理
Kubernetes的管理功能,再在從本地部署(on-premise)延伸到公有雲,甚至多個公有雲環境。一家企業用協作平台來管理跨多朵雲上的容器,也增加彈性及設定上的靈活度。這家企業有節點架在2個公有雲上,甚至有節點橫跨公有及私有雲,但只要用Kubernetes即可執行容器協同。
執行服務發現(service discovery)
利用Kubernetes,使用者可針對容器應用客製服務發現且自動化執行。微服務和容器管理的Kubernetes用途一般用於例行作業,但到平台功能上找一下可以找到服務發現功能。它可以自動偵測網路上裝置及可用服務,這對容器經常開開關關、新容器取代舊容器的環境下,這項功能就變得很重要。將Kubernetes用於服務有2種作法:一是透過域名伺服器,二是環境變項。平台其他功能像是複製控制器(replication controller)也頗為好用。
執行容器叢集聯邦(federation)
Apache Mesos、Marathon結合已成為現今大型IT環境容器聯邦偏好的作法,但Kubernetes未來會愈來愈普遍。目前還在2.0版制訂過程的Kubernetes叢集聯邦著重多叢集聯邦,這類使用情境最適合一般情境下自主運作,但偶爾需要串聯合作的Kubernetes叢集。
擁抱下世代PaaS
Knative是擴充Kubernetes能力,像是支援無伺服器作業的開原平台。利用Knative和Kubernetes,工作重點就從平台轉到程式碼部署,因為Knative會將基礎架構管理的工作抽象化。產業專家預測,Kubernetes加入無伺服器化元素會在下一波PaaS基礎架構發生。
雖然無伺服器是否真能改善作業還有爭議,但採用事件驅動模型的企業將會感受到像是精細計費(billing)、成本降低、擴充自動化和穩定性提升等效益。
請做好準備開拓更多Kubernetes使用情境
Kubernetes還在持續演變中,且提供了一定程度的彈性,使得它的用途不斷增加—有些還是相當新的概念。例如VMWorld 2019上,VMWare宣佈Project Pacific,將Kubernetes整合vSphere,讓熟悉vSphere介面的管理員得以部署和管理容器及VM。