大佬都怎么用K8s?
譯文?譯者 | 布加迪
策劃 | 云昭
Kubernetes是如今最知名最流行的容器編排引擎。Kubernetes之所以成為云原生計算的中心,是由于它是開源的,還有一個快速增長的生態系統。如果我們觀察它在過去幾年的發展和采用趨勢,尤其是在云原生世界方面,就會發現它不僅僅是一種容器編排工具。它已經不再是一種容器編排引擎,現在是下一代云原生生態系統的主要構建模塊。
開發人員正在試用Kubernetes,絕不僅僅將其當成容器管理器。本文討論它在開源社區中幾個已確立的企業模式和流行用例。
一、Kubernetes作為無服務器計算的服務器
Kubernetes方面有經驗的企業已認識到Kubernetes作為“無服務器的服務器”平臺具有的全部潛力。無服務器現在因Kubernetes而被重新定義,而Knative最近由CNCF(Kubernetes的監管組織)推出,將Kubernetes抽象為無服務器計算。Knative的核心由三個模塊組成:
1. Build—從源代碼構建映像。
2. Serving—在Kubernetes集群上部署功能(映像構建),并映射擴展和路由等。
3. Eventing—用servicing映射事件和消息攝取。
就像面向Kubernetes的kubectl一樣,kn是終端上新的命令,用于在Kubernetes上啟用函數即服務(FaaS)。它將容器映像作為構建模塊,在Kubernetes上處理一切。Kubernetes作為一個無服務器平臺在加快其在企業界的采用;然而,同類產品(比如AWS Lambda、Cloud Functions和Azure Functions)仍然依賴供應商鎖定(即部署到各自的云上它們才管用)。
Kubernetes解決一些現有的挑戰,比如工件大小的限制、法規遵從、數據主權和企業內部的細粒度控制。Kubernetes上的無服務器Knative與傳統Kubernetes之間的主要架構差異來自額外的抽象層。作為無服務器的Kubernetes消除了重復的配置和構建任務。
圖1
Kubernetes上的無服務(Kubernetes集群概況圖)
Knative充當無服務器和事件驅動平臺
Knative是Kubernetes生態系統的新成員,它有望顛覆構建基于事件的架構的無服務器選項。“擴展到零”、“從零擴展”和集群內構建等功能使Kubernetes成為一種全面的無服務器平臺。
二、Kubernetes作為大數據和機器學習平臺
Kubernetes被視為數據科學和機器學習技術堆棧當中的大數據處理和有狀態數據服務平臺,并被廣泛采用。它抽象了底層基礎架構,優化了彈性計算的配置,在底層將GPU和CPU結合起來。Kubernetes非常適合機器學習,因為它本身就具備機器學習需要的所有調度和可擴展性。
與傳統的數據集群環境相比,容器和Kubernetes組合在構建大數據軟件時功能強大且靈活,傳統的數據集群環境面臨分布式集群管理的復雜性和計算規模開銷。Kubernetes利用按需提供的GPU和CPU計算來改善大數據和機器學習處理。Kubernetes可以提供GPU加速計算和網絡解決方案,以便在邊緣運行機器學習和NLP處理。運行在協處理器上的Kubernetes正成為未來計算的重要部分。其動態資源利用的特性有利于數據科學工作負載,而訓練模型或特征工程需求可以非常迅速地增減。
圖2
基于Kubernetes的大數據和機器學習集群
用于機器學習處理的按需可擴展協處理器
KubeFlow、Spark、Hadoop、PyTorch和TensorFlow等框架現都在采用容器。有狀態MLOps廣泛采用容器和Kubernetes來啟用多個集群,處理大型訓練集和測試集,并存儲學到的模型。為了簡化數據建模框架的處理,一種選擇是Kubeflow,這是一種面向Kubernetes的開源機器學習工具包,可以運行聲明式的可配置作業。
Kubeflow對運行在Kubernetes上的復雜的大數據和機器學習管道進行抽象和編排。機器學習管道底層的Kubernetes是MLOps的骨干。它使得數據科學家和機器學習工程師很容易利用混合云(公共云或本地環境)來處理彈性和可擴展性。Kubernetes能夠構建一個中立的大數據平臺,避免云管理服務被供應商鎖定。
三、Kubernetes作為企業混合和多云集群的聯合體
Kubernetes與基礎架構無關,企業利用它來實現復雜的基于容器的集群聯合。Kubernetes有助于將混合或多云環境合并到單一平臺中,從而獲得明顯的好處。
托管服務不是解決所有問題的方案。公共云和私有主權云的便利性之間總是需要兼顧。Kubernetes被認為是這方面的解決之道,因為它支持多云訪問,可以跨基于行業標準的API (Kubernetes接口)無縫交付應用程序。它通過將私有云和公共云集成抽象為單一聯合平臺,有助于企業借助Kubernetes實現法規遵從。
企業利用Kubernetes提供混合和多云集群方面的靈活性,從而避免供應商鎖定。當前基于云的架構模式如何采用Kubernetes值得拭目以待。基于云的企業以及開源社區已意識到,Kubernetes不僅僅是一種容器管理工具。現在很顯然,Kubernetes是一種完整的平臺,可以為在混合云或多云模式上運行的應用程序管理生命周期。
Kubernetes作為平臺即服務(PaaS)被廣泛采用。然而在早期,Kubernetes的官方文檔提到它是容器即服務(CaaS)。最近,人們觀察到Kubernetes的采用模式和使用已遠遠超出了CaaS,因此更新后的文檔稱Kubernetes是下一代PaaS。
Kubernetes是新時代的PaaS,意味著:
- Kubernetes結合超融合基礎架構(HCI)是一種新的私有或混合云替代方案。它讓企業可以全面控制服務,并遵從監管法規。
- Kubernetes使企業能夠實現單一的抽象和簡化型平臺,以便在混合和多云環境上操作SRE、DevOps和DevSecOps。
圖3
Kubernetes作為新一代PaaS
混合和多云容器聯合作為新一代PaaS
四、結論
大型組織通常不愿意將平臺控制權交給AWS Lambda、AWS Fargate或Azure Functions等。Kubernetes已成為一種事實上的選擇,它集兩者之所長:控制性和本地穩健性,以及來自聲明式容器化生態系統的云原生計算彈性、可擴展性和彈性。Kubernetes結合Helm(IaC)、Grafana(遙測儀表板和警報)以及Prometheus(度量指標獲取器)等開源工具,使其成為支持DevOps、對SRE友好的企業生態系統的完美組成部分。
數據科學和機器學習企業在加快采用Kubernetes作為大數據處理平臺。最近,機器學習和大數據框架正變得容器化,這使得Kubernetes成為底層數據集群和建模生態系統的首選。備受青睞的特性還包括Kubernetes抽象彈性GPU和CPU,以及按需可擴展和狀態性。
Knative之類的Kubernetes抽象框架將Kubernetes帶到了另一個層面。Kubernetes正在成為無服務器架構的新服務器,而且勢頭正猛。它正在為AWS Fargate和OpenShift提供開源替代方案。Kubernetes已被賦予了多種新的角色,而不僅僅“只是”一種容器編排工具。
原文鏈接:https://dzone.com/articles/kubernetes-beyond-container-orchestration