什么是 KUBERNETES?
Kubernetes 提供了一個框架,用于部署、管理、擴展和切換分布式容器,這些容器是隨依賴項和配置打包的微服務。
它建立在 Google 十多年的容器管理系統開發經驗基礎上,并結合了來自社區的出色想法、模式和實踐。
為何選擇 KUBERNETES?
軟件容器隨著 2013 年出現的 Docker 得到了普及,而現在,Moby 也發揮了這一作用。容器鏡像會打包整個運行時環境,包括應用程序,以及執行應用程序所需的所有依賴項、庫和其他二進制文件以及配置文件。與虛機相比,容器具有相似的資源和隔離優勢,但更為輕巧,因為容器將操作系統虛擬化而非采用硬件。容器便于移植,占用空間以及使用的系統資源更少,且幾秒鐘內即可加快運行。容器還可提高開發者的效率。DevOps 團隊無需再等待操作系統來配置計算機,他們可以快速將應用程序打包到容器中并部署。
得益于這些優勢,容器立即受到開發者的青睞,并迅速成為云應用程序部署的熱門選擇。容器的普及意味著一些組織很快會運行成千上萬個容器,因此需要實現管理自動化。Kubernetes 簡化了容器管理,因此大受歡迎,并通過進一步支持微服務架構使容器成為主流,該架構促進了云原生應用程序的快速交付和可擴展編排。
云原生計算基金會 (Cloud Native Computing Foundation) 成立于 2015 年,是 Linux 基金會的一個項目,旨在推動云原生技術的采用。其中包括容器、服務網格、微服務、不可變基礎設施以及聲明性 API,并圍繞一套通用標準使開發者保持一致。CNCF 為許多增長快速的開源項目(包括 Kubernetes)提供了供應商中性平臺。該團隊的工作有助于防止 Kubernetes 代碼庫出現分叉。因此,各大計算平臺和云提供商現在都支持相同的 Kubernetes 代碼庫。雖然已經出現了 Kubernetes 的品牌版本(如 Red Hat OpenShift 或 Amazon Elastic Kubernetes Service),但其底層代碼是相同的。
KUBERNETES 的工作原理是什么?
Kubernetes 引入了一個分組概念(稱為“POD”),允許多個容器在主機上運行,并共享資源,而不會發生沖突。POD 可用于定義共享服務(如目錄、IP 地址或存儲),并公開至 POD 中的所有容器。這使得應用程序內的服務能夠容器化并一起運行,因為每個容器都與主應用程序緊密相連。
節點代理稱為 kubelet,用于管理 POD、容器和圖像。Kubernetes 控制器管理 POD 集群,并確保分配充足資源,以實現所需的可擴展性和性能級別。
Kubernetes 提供各種有用服務,特別是在集群環境中。它實現了服務發現和負載均衡的自動化,自動安裝存儲系統,并自動推廣和回退,以達到指定的預期狀態。它還會監控容器運行狀況、重啟出現故障的容器,并啟用密碼和密鑰等敏感信息以安全存儲在容器中。
這簡化了機器和服務管理,使單個管理員能夠管理同時運行的數千個容器。Kubernetes 還允許跨現場部署到公共或私有云,以及介于兩者之間的混合部署的編制。
Kubernetes 因其作為一個支持混合云計算平臺的承諾引起了很多關注。由于每個物理和虛擬環境中的代碼庫都相同,因此從理論上講,容器化應用程序可以在支持 Kubernetes 的任何平臺上運行。業界仍在持續討論混合架構的優點。支持者表示,這種方法可以避免出現鎖定問題,而反對者則認為,在可移植性方面做出的妥協在于,開發者只能使用一系列有限的開源技術,無法利用品牌云和本地平臺上的全部服務功能。
KUBERNETES 用例
如上所述,混合和多云部署是 Kubernetes 的一個理想用例,因為應用程序無需與底層平臺綁定。Kubernetes 負責處理資源分配并監控容器運行狀況,以確保根據需要提供服務。
Kubernetes 還非常適合可用性至關重要的環境,因為編排器可以抵御故障實例、端口沖突和資源瓶頸等問題。
容器是一種用于無服務器計算的基礎技術,在這種計算中,應用程序由活躍的服務構建,這些服務僅針對該應用程序的需要執行函數。無服務器計算有點用詞不當,因為容器必須在服務器上運行。但目標是將虛機封裝到容器中,以盡可能減少調配虛機所需的成本和時間,這些容器幾毫秒內即可啟動,由 Kubernetes 管理。
Kubernetes 還有一個稱為命名空間的功能,指一個集群內的虛擬集群。允許運營和開發團隊共享同一組物理機,并訪問相同服務,而不會造成沖突。
KUBERNETES 的重要意義
數據科學家
數據科學的挑戰之一是在可復制的環境中創建可重復的實驗,并能夠跟蹤和監控生產中的指標。容器能夠創建具有多個協調階段的可重復流程,這些流程以可復制的方式協同工作,用于處理、特征提取和測試。
Kubernetes 中的聲明性配置描述了服務之間的關系。微服務架構使調試變得更容易,并改善了數據科學團隊成員之間的協作。數據科學家還可以利用 BinderHub 等擴展程序,從存儲庫中構建和注冊容器鏡像,并將它們發布為其他用戶可交互使用的共享筆記本。
Kubeflow 等擴展程序簡化了在 Kubernetes 中設置和維護機器學習工作流程和管線的過程。編排器具有可移植性優勢,讓數據科學家可以在筆記本電腦上進行開發,并隨時隨地進行部署。
Devops
數據工程師很難將機器學習模型投入生產。他們花時間編輯配置文件、分配服務器資源,還要擔心如何在不導致項目崩潰的情況下擴展模型并整合 GPU。容器生態系統引入了許多工具,旨在簡化數據工程師的工作。
例如,Istio 是一個可配置的開源服務網格層,可用于輕松創建一個具備自動化負載均衡、服務到服務身份驗證以及監控的已部署服務網絡,且無需對服務代碼做任何更改。它可精細控制流量行為、豐富的路由規則、重試、故障轉移和故障注入,以及用于訪問控制、速率限制和配額的可插入策略層和配置 API。
Kubernetes 生態系統借助此類專用工具繼續發展,使服務器配置隱形,允許數據工程師可視化依賴項,從而簡化配置和故障排除。
為何 KUBERNETES 在 GPU 上表現更出色
Kubernetes 包括對 GPU 的支持,這使得配置和使用 GPU 資源來加速數據科學、機器學習和深度學習等工作負載變得容易。設備插件允許 POD 訪問 GPU 等專用硬件功能,并作為可調度資源公開。
隨著 AI 應用程序和服務的不斷增加以及公有云中 GPU 的全面發售,Kubernetes 需要具備 GPU 感知能力。NVIDIA 一直在穩步構建其軟件庫,以優化在容器環境中使用的 GPU。例如,NVIDIA GPU 上的 Kubernetes 支持多云 GPU 集群通過跨多節點集群 GPU 加速容器的自動化部署、維護、調度和操作實現無縫擴展。
GPU 上的 Kubernetes NVIDIA 具有以下主要特性:
借助 NVIDIA 設備插件,在 Kubernetes 中啟用 GPU 支持
指定 GPU 屬性(例如 GPU 類型和內存需求),以便在異構 GPU 群集中進行部署
借助 NVIDIA DCGM、Prometheus 和 Grafana 的集成 GPU 監控堆棧,允許對 GPU 指標和運行狀況進行可視化和監控
支持多個基礎容器運行時,例如 Docker 和 CRI-O
NVIDIA DGX? 系統提供官方支持
NVIDIA EGX? 堆棧是一款可擴展的原生云軟件堆棧,可實現由 Kubernetes 管理的容器化加速 AI 計算。借助 NVIDIA EGX 堆棧,組織可以在幾分鐘內輕松部署經過更新的 AI 容器。
但是,Kubernetes 并不是什么靈丹妙藥。它為資源發現和管理提供了良好的 API,但其并非簡化資源使用的全部解決方案。因此,NVIDIA 開發了 Triton,這是一個開源推理服務平臺,允許用戶在任何 GPU 或基于 CPU 的接口上部署 AI 訓練模型。在 Kubernetes 環境中運行 Triton,可以完全從軟件中提取出硬件。在這種情況下,Kubernetes 充當 Triton 運行的基礎。Triton 負責提取節點內的硬件,而 Kubernetes 負責編排集群,使其能夠更有效地向外擴展。
GPU 硬件中的 KUBERNETES
除了軟件之外,NVIDIA 已采取措施定制其硬件,以用于虛擬化環境。不過,這并非 Kubernetes 所特有。隨著公司推出基于 Ampere? 的 A100 企業級 GPU 和 DGX A100 服務器,NVIDIA 還推出了多實例 GPU (MIG)。MIG 允許將單個 A100 GPU 分割為七個小 GPU,類似于將 CPU 分割成多個單獨核心。允許用戶使用 Kubernetes 等容器運行時以更精確的粒度自動擴展其應用程序。
在 MIG 推出之前,GPU 加速 Kubernetes 集群中的每個節點都需要自己的專用 GPU。有了 MIG,單個 NVIDIA A100(DGX A100 中有 8 個)現在可以支持多達 7 個小節點。這使得應用程序和資源可以實現更大規模的線性擴展。
隨著 AI 服務成為 GPU 加速工作負載,而這正處于成功前的拐點,GPU 將開始進入 Kubernetes 的主流。隨著形勢發展,人們會把 GPU 加速視為一個快速或高效的按鈕,而不必考慮 GPU 開發或編程。
-
gpu
+關注
關注
28文章
4768瀏覽量
129227 -
操作系統
+關注
關注
37文章
6889瀏覽量
123603 -
硬件
+關注
關注
11文章
3380瀏覽量
66386 -
機器學習
+關注
關注
66文章
8438瀏覽量
132932 -
kubernetes
+關注
關注
0文章
227瀏覽量
8738
發布評論請先 登錄
相關推薦
評論