開源 Serverless 裏程碑:Knative 1.0 來了

阿裏雲雲棲號 2022-01-07 12:26:57 阅读数:629

serverless knative

簡介:近期Knative發布了1.0版本,達到了一個重要的裏程碑。Knative自2018年7月首次發布以來, 版本不斷的迭代發展,除了無數的錯誤修複、穩定性和性能增强之外,按時間順序還進行了一些改進,下文將進行簡單介紹。

作者:元毅

導讀

Knative 是基於 Kubernetes 之上提供的一款開源 Serverless 應用框架,幫助用戶部署和管理現代化的 Serverless 工作負載,打造企業級 Serverless 平臺。Knative 具備如下優勢:

  • 在幾秒鐘內建立可擴展、安全、無狀態的服務。
  • 具有更高級別 Kubernetes 應用抽象的 API
  • 可插拔組件,讓您可以使用自己的日志記錄和監控、網絡和服務網格。
  • 在 Kubernetes 運行的任何地方都可以運行 Knative,無需擔心供應商鎖定
  • 開發者無縫體驗,支持 GitOps、DockerOps、ManualOps 等。
  • 支持常用工具和框架,例如 Django、Ruby on Rails、Spring 等。

Knative 1.0

近期 Knative 發布了 1.0 版本,達到了一個重要的裏程碑。Knative 自 2018 年 7 月首次發布以來, 版本不斷的迭代發展,除了無數的錯誤修複、穩定性和性能增强之外,按時間順序還進行了以下改進:

  • 支持多個 HTTP 路由層(包括 Istio、Contour、Kourier 和 Ambassador)
  • 支持事件驅動 Eventing 概念以及常見的訂閱方法(包括 Kafka、GCP PubSub 和 RabbitMQ)
  • “鴨子類型 " 的抽象,允許處理具有共同字段(如 status.conditions 和 status.address)的任意 Kubernetes 資源
  • 支持額外功能插件的命令行客戶端
  • 6 周一次的定期發布流程
  • 支持 HTTP/2、gRPC 和 WebSockets
  • Broker 和 Trigger,以簡化事件的發布和訂閱,同時將生產者和消費者解耦
  • 支持事件組件向非 Knative 組件傳遞,包括集群外組件或主機上的特定 URL
  • 支持自動提供 TLS 證書(通過 DNS 或 HTTP01 挑戰)
  • 定制事件交付選項,包括對無法交付的事件進行重試和 dead-letter 死信隊列
  • 對 Broker 和 Channel 的事件追踪支持,以改善調試工作
  • 由 Knative Build 催生的 Tekton 項目
  • 支持並行和順序組件,用於編排事件的工作流
  • 事件源的文檔以及如何貢獻說明,目前涵蓋了大約 40 個不同的事件源
  • “無中斷” 平滑昇級,在小版本昇級期間無請求中斷
  • 重新設計Serving的 API,以匹配Deployment、CronJob 等使用的 PodTemplateSpec,簡化 Kubernetes 用戶的使用
  • 支持將事件目標地址注入 PodTemplateSpec 的對象中
  • 支持基於並發數或 RPS 的水平 Pod 自動擴縮容
  • 使用領導者選舉實現控制平面組件的高可用性
  • 提供一個幫助管理員安裝 Knative 的 Operator
  • 快速入門,供開發者在本地試用 Knative
  • 使用 DomainMapping 簡化服務的管理和發布

Knative 到底有多少擁躉

從 Knative 誕生到 1.0 發布至今,不斷的會面對一系列這樣的問題:Knative 到底有多少企業在使用?是否生產可用?

根據 CNCF 2020 中國雲原生調查報告,Knative 已經成為 Kubernetes 上最廣泛安裝的無服務器

圖片 1 (圖片來源詳見文末相關鏈接)

另外 Knative 社區近期也發起了一項統計:當前哪些雲廠商或企業在提供或者使用 Knative。目前已統計如下(並且這項列錶還在持續更新中):

圖片 2 (圖片來源詳見文末相關鏈接)

我們可以看到,幾乎所有的大廠都支持或者集成 Knative, 如阿裏雲、穀歌雲、IBM、Red Hat等,並且大部分都提供了生產級別能力(Production),而隨著 Knative 1.0 的發布,相信有更多的用戶去擁抱 Knative。

阿裏雲 Knative

阿裏雲容器服務從 Knative 0.6.0 版本開始產品化集成,持續跟進 Knative 社區功能迭代,當前已全面支持 Knative 1.0 版本。在此期間,阿裏雲 Knative 與容器服務Kubernetes生態、消息、存儲等雲產品進行了全方比特的融合。包括:

  • 豐富的消息雲產品事件源:Kafka 、MNS 、RocketMQ
  • 服務訪問:SLB
  • 存儲:NAS 、雲盤等
  • 可觀測性:日志服務、ARMS
  • IaaS 資源:ECS 、ECI

此外為了降低用戶使用 Knative 門檻,通過容器服務 UI 控制臺提供一鍵部署能力,在 Serverless Kubernetes(ASK) 中將 Knative 管控組件全托管,極大的節省了用戶的資源以及運維成本。

在產品化持續迭代中,也帶來了更豐富的客戶應用場景,當前在阿裏雲 Knative 典型的應用場景(包括但不限):

  • AI 音視頻編/解碼場景
  • GPU 等异構計算場景
  • 大數據及 AI 深度學習、機器視覺
  • 傳統管理軟件
  • ...

行業涵蓋智慧醫療、在線教育、數字空間建模等領域。阿裏雲容器服務 Knative 正在為用戶持續不斷的提供企業級 Serverless 平臺能力。

小結

如果你正面對複雜、多樣的 Kubernetes 資源(Deploymemt、Service、Ingress 等)無從下手的難題,Knative 或許可以幫你輕松應對;如果你正面對成本壓力、運維負擔,Knative 可以為你减負。歡迎有興趣的同學一起交流。

原文鏈接

本文為阿裏雲原創內容,未經允許不得轉載。

版权声明:本文为[阿裏雲雲棲號]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201071226567598.html