TKE 超級節點,Serverless 落地的最佳形態

2022-11-29 21:00:25

陳冰心,騰訊雲產品經理,負責超級節點迭代與客戶拓展,專注於 TKE Serverless 產品演進。

背景

讓人又愛又恨的 Serverless

Serverless 炙手可熱,被稱為雲原生未來發展的方向。信通院報告顯示:在核心業務中使用 Serverless 的使用者佔到18.11%,已經開始和計劃使用 Serverless 技術的使用者超過了70%。Serverless 廣受追捧,得益於它在「快速的開發交付」、「極高的運維效率」、「極低的資源成本」這三個方面上的優勢。
Serverless 可以讓業務更快上雲,讓使用者用最小的運維投入享受雲帶來的便利性。底層資源規劃及運維交給更專業的雲平臺處理,使使用者可以更專注業務和產品本身,從而更好地提升產品和業務的核心競爭力。

Serverless 的優勢如此明顯,但在實際落地使用中,無論是雲廠商還是使用者,均處在摸著石頭過河的階段,仍在不斷學習不斷試錯,主要原因是 Serverless 在帶來便利性的同時,也打破了傳統 Serverful 模式下的種種使用者使用習慣,對企業各個組織均造成了衝擊;其先進的產品形態在老的架構上又引入了較高的適配複雜度。具體表現在:

Serverless 對企業的運維團隊造成衝擊

  • 對接複雜度高,架構改造和適配有成本
  • 改變了常規的節點運維習慣,運維需要重新適應新的運維方式
  • 業務對資源的彈性使用讓平臺運維對資源不再可控

Serverless 對企業的財務團隊造成衝擊

  • 按量計費模式替代了傳統包年包月,財務規劃異常困難
  • 資源成本不再可控
  • 無法以固有的方式對業務團隊進行分賬

Serverless 和 Serverful 的完美平衡

我們仍然認可 Serverless 模式下不可替代的優勢並且堅信這些優勢最終能夠幫助企業提升效率,在 Serverless 漸進式演化的過程中,我們思考的是,在當下如何找到 Serverless 和 Serverful 的中間態,讓使用者在資源可控度和運維簡化間找到一個平衡,用更小的代價獲得 Serverless 的收益,由此我們提出了 HouseKeeper 的理念,構造了全新的節點產品形態,以求平衡 Serverless 與 Serverful,靠近傳統 Serverful 的形態下,我們孵化出雲原生增強型的 Serverful節點 - 原生節點 ,那麼在靠近 Serverless 的一邊,又能做些什麼呢,我們給出的完美答案是有節點的 Serverless 服務 - 超級節點。

超級節點是基於 Serverless (此處亦可稱 Nodeless)容器技術,模擬 Serverful 有節點管理體驗的新的叢集節點形態。有 pod 強隔離高穩定、Node 免運維、精確設定資源、兼顧資源可控性與使用便捷性等特點。適用於希望降低運維負擔、提高資源裝箱率且不想改變運維模式的企業漸進式 Serverless 化。我們期望通過遷移式的使用體驗,讓使用者在不改變自身架構、不影響財務核算的前提下,切實體驗到 Serverless 的便利。

如下總結了超級節點的特點:

超級節點向用戶提供可用區級別的、支援自定義規格的節點能力,使用超級節點類似於使用一臺超大規格的 CVM,每一個排程至超級節點的 pod 都是一臺獨立的子機,pod 間因此完全隔離,使業務具有極高的穩定性和安全性。在節點維度支援了按量計費和包年包月兩種計費模式,包年包月的資源可以在保障資源供給的基礎上以較低的價格交付使用者,如果需要進行固定資源的擴縮容,僅需要對這臺「超大規格的 CVM」進行升降配,資源管理變得更為簡單。
在產品能力上,超級節點針對相容 TKE 標準叢集形態做了大量工作,保障使用者的業務可以平滑在普通節點和超級節點間無失真切換。在底層架構上,超級節點基於騰訊雲自研的 Serverless 容器技術,通過安全沙箱、輕量的高效能執行、增強排程器以及高效能網路等保障業務安全穩定地執行。

超級節點承載了內外部共計千萬核業務穩定、安全執行,騰訊QQ、會議、檔案等業務,公有云小紅書、超引數、搜狐、百果園等客戶,沿用原運維體系,將大量穩態核心模組部署在超級節點上,包年包月的超級節點模式穩定上線數月,替換了 90% 預留券的使用,新增了數十萬核線上常駐業務切換至超級節點。

超級節點,有節點的 Serverless 服務

傳統的節點運維管理模式

傳統的節點運維管理模式的特點在於:有節點概念,計費維度在單個節點上。其優勢在於對無論是對運維來講還是財務人員來講,管理完全可控。但缺點也非常明顯:

海量的節點維護工作:

  • 眾多測試叢集、生產叢集大量節點的日常維護
  • 節點 OS、核心、容器執行時的維護
  • 節點 K8s 元件的維護和升級
  • 為提升叢集資源利用率進行復雜的節點擴縮容工作

難以避免的容器隔離性問題:

  • pod 共用宿主節點核心
  • pod 共用宿主節點硬碟
  • pod 共用宿主節點網路卡
  • 容器逃逸風險

專業、複雜的資源規劃和排程工作:

  • 大量的業務混部、Qos、親和性等規劃和設定工作才能帶較好的資源利用率
  • 叢集資源規劃須深入瞭解業務容器資源需求,資源不足則容器無法排程,對波峰業務需預留 buffer 資源,波谷時,會造成預留的資源浪費

常見的Serverless管理模式

Serverless 模式的特點在於:無節點,以 pod 為資源交付物件和計費物件。其優勢在於,完全彈性使用,沒有資源浪費,應用部署靈活,無需進行節點運維。這種模式的問題在於:

資源管理成本高:

pod 數比 Node 數高一個量級,資源粒度越細,帶來的精確規劃成本越高。特別是當企業需要長時間使用 Serverless 資源的時候,當前主流的雲廠商給出的解決方案為預留券模式,該模式需要為不同規格的 pod 對應購買相應數量的預留券以抵扣其消耗,需要使用者精確地統計每一種規格 pod 的執行數量,pod 規格及執行數量為業務側動態變化的資料,購買資源卻是平臺側的行為,這中間的 Gap 導致平臺側對於資源的購買和維護成本變得極其高昂,這種不優雅的包月實現方式不僅讓不應該關心精確資源使用量的人員陷入了困境,也限制了真正的資源使用者,與 Serverless 倡導的輕運維按需使用的初衷背道而馳。

財務管理成本高:

在 Serverless 模式下,計費單元在 pod 上,資源(pod)的生命週期由業務控制,業務的變更將直接帶來成本的變化。成本不可控會為企業的財務管理帶來極大挑戰。除了成本不可控外,成本的核算和業務間的分攤也將變得棘手,傳統的節點管理模式下,以節點維度來統計每個業務的使用量,將節點資源的成本消耗與業務掛鉤,財務管理清晰簡單,而在 Serverless 場景中,預留券的模式下, pod 生命週期各不相同,預留券每小時的抵扣物件也均不相同,從而導致了分賬困難,按量計費模式下的資源消耗也需要額外統計。在 Serverless 模式下,資源和成本在傳統運維模式下均不易管理,企業的各個組織均需要做出較大改變才能適應 Serverless 在企業內落地。

超級節點模式

超級節點模式的特點在於:有節點概念,但無節點運維工作,以 Node 為計費物件,相容基於節點的運維、財務體系。從而達到了 Serverless 模式的運維簡單、資源不浪費和業務部署靈活的特點,也兼顧了 Serverful 模式的成本可控、資源可控。

更簡單可控的資源管理模式:

使用者可以像管理一臺超大號雲主機一樣管理 K8s 超級節點。可以通過包年包月的模式申明需要使用的固定資源總規格,後臺將預留對應的資源,告別了 Serverless 模式下資源不可見,按量使用資源無法保障的擔憂,讓使用者用得放心。針對固定資源的擴縮容變成了單節點維度的升降配;針對彈性資源的擴縮容,僅需加入按量計費的超級節點,即可按照節點上排程 pod 的實際規格進行計費,再無 buffer 資源浪費。

更輕量的運維:

無需再關注資源利用率,無需考慮排程,超級節點模式下保障資源百分百裝箱。在包年包月超級節點、按量計費超級節點與普通節點共用的場景下,排程器會智慧優先排程到最合適的資源上,幫助最大化實現資源的有效利用。

更簡單的財務管理模式:

Serverless 模式下首創節點維度的包月計費形式,解決了精細化使用資源場景下的資源規劃問題、預留券購買問題、財務管理問題。企業只需要計算固定和彈性資源的總使用量,購買合適的包年包月固定資源並配合彈性資源進行使用。預付費的包年包月計費也更適合企業財務部門的資源預算模式。

更高穩定性的服務:

超級節點底層基於自研 Serverless 容器技術 Heeler,經由內外部千萬級規模驗證,可以保障業務穩定執行。

超級節點產品特性

高穩定性、高安全性

為業務穩定性保駕護航:

超級節點上的一個 Pod 底層對應一個子機,底層為虛擬機器器級別的隔離,通過自研的安全沙箱技術和虛擬化技術,保證 Pod 間無干擾,業務間強隔離。不會出現節點上Pod間資源搶佔的問題,也不會出現單 Pod 故障導致整個節點故障的情況。

為容器應用安全提供全方位保障:

  • 保障通用安全需求:叢集隔離、網路隔離,底層依賴與環境安全共同保障應用安全
  • 保障應用環境安全:通過網路安全策略控制、映象拉取安全控制保障應用環境安全,提供全方位的操作審計
  • 託管平臺隔離:做到叢集間隔離,角色和存取控制保障平臺獨立隔離
  • 基礎設施隔離:容器間實現虛擬化隔離,pod 間天然做到子機級別的隔離,高可用場景下支援 pod 實現物理機、機架級別的隔離

運維更簡單:

完全託管的模式,學習成本低,不依賴專職的 K8s 運維即可輕鬆部署業務。在日常的運維中,免去了海量的節點維護工作,不需要處理容器隔離性的問題,也極大簡化了專業、複雜的資源規劃和排程工作。

計費模式更靈活:

我們獨創了超級節點的包年包月模式,解決了企業運維和財務頭疼的問題。包年包月模式下,由使用者自定義節點規格,使用者可包年包月購買自定義總規格的節點算力來實現預付費,契合固定算力的線上常駐業務,包年包月的超級節點相較於普通節點單核價格更低,使用者可將符合規則的 pod 全部遷移至超級節點,來降低固定資源的單核成本,從而達到降本增效的目的。按量計費模式下,可彈性使用節點資源,使用後按節點內實際使用的 CPU 記憶體按量計費。按量計費模式適用於彈性算力場景,可通過新增按量計費的超級節點,在業務高峰時使用彈性資源,進一步降低叢集的資源成本。

完全相容 K8s:

超級節點提供標準的 Kubernetes 服務和使用方式,滿足絕大部分容器場景下的交付標準,提供了標準的 K8s 編排、運維、擴縮容等的使用方式,保留了 K8s 的擴充套件性,在基礎能力、可觀測性、雲原生解決方案上均完全相容 K8s 生態。此外,適配 Nodeless 的 K8s 特性包含:

  • 支援在超級節點上注入 Daemonset
  • 支援 pod 固定 IP
  • 支援 pod 繫結安全組
  • 支援掛載 Ceph CBD 型別的塊儲存裝置,保留支援各種 K8s 原生支援的 CSI volume 的能力
  • 支援 pod 編排指定 hostNetwork: true
  • 支援 pod 編排中的 container/initContainer.ports 指定 hostPort
  • 支援 pod 編排中指定 hostPath
  • 支援通過 pod metrics 埠(預設9100)獲取更多的指標,包括:cpu/memory/gpu/network/diskio/filefd/vmstat 以及容器的 cadvisor 指標
  • 支援特權級容器

超級節點使用場景

超級節點適用於全業務場景,尤其適合高穩態業務的執行。支援在公有云或 IDC 的標準 Kubernetes 叢集、Serverless 叢集中使用,可通過簡單的開啟方式,將固定和彈性算力排程到超級節點上,其排程模式完全相容原叢集的排程正規化,可讓原叢集平滑進行 Serverless 化或混合雲化升級。

線上常駐業務使用包月+按量超級節點

優勢:高穩定、低成本、易管理 相較於包年包月的普通節點,超級節點單核價格更便宜。對於線上常駐的服務,使用者所需算力固定,若當前 pod 規格大部分在 8C 以下,可使用超級節點的包年包月模式,基於 pod 總規格按需購買包年包月的超級節點,將 pod 全部排程至超級節點,降低叢集資源的單核價格,實現降本訴求。

彈性業務使用按量計費超級節點

優勢:高穩定、低成本、高彈性 彈性業務場景下,使用者使用按量計費的超級節點,可實現快速秒級擴容,輕鬆應對突發流量,通過減少預留的資源 buffer 降低成本。高彈性:快速秒級擴容,輕鬆應對突發流量,業務流量下降後自動銷燬 pod,無失真縮容。低成本:減少叢集預留 buffer,將叢集的節點維護在資源利用率更高、使用和預留更合理的水平,節省成本。

如何建立超級節點

在 TKE 叢集和 TKE Serverless 叢集中均可建立超級節點。進入叢集詳情頁 > 選擇左側選單欄中的節點管理 > 節點池 > 單擊新建節點池,選擇超級節點池並填寫對應引數即可:

總結

雲端計算的概念層出不窮,其本質上是對生產關係和生產力的設定與優化,最終達到為使用者增效的目的,在容器化的漫長程序中,企業的觀念和行為都在不斷變化,但接受和擁抱新技術對於每一個處於程序中的親歷者來說都一定有一個陣痛期,如何幫助使用者用最少的代價換取最大的收益,如何能夠平衡好優勢與矛盾,是每個雲廠商應該思考的課題。從完全的 Serverless 到有節點的 Serverless,我認為並不是產品技術的退步,只要能夠解決使用者的痛點,為使用者帶來切實的價值,我們不應該拘泥於產品的形態,我們走出的這一步,其實是進步的,我們正在走向偉大的創新。

優惠活動

活動倒計時,錯過拍大腿!

超級節點大額滿減券等你領取!

掃描下方圖片二維條碼進入會場搶優惠!

【騰訊雲原生】雲說新品、雲研新術、雲遊新活、雲賞資訊,掃碼關注同名公眾號,及時獲取更多幹貨!!