天天看點

開源 Serverless 裡程碑:Knative 1.0 來了

近期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 自 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 誕生到 1.0 釋出至今,不斷的會面對一系列這樣的問題:Knative 到底有多少企業在使用?是否生産可用?

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

開源 Serverless 裡程碑:Knative 1.0 來了

圖檔 1 (圖檔來源詳見文末相關連結)

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

圖檔 2 (圖檔來源詳見文末相關連結)

我們可以看到,幾乎所有的大廠都支援或者內建 Knative, 如阿裡雲、谷歌雲、IBM、Red Hat等,并且大部分都提供了生産級别能力(Production),而随着 Knative 1.0 的釋出,相信有更多的使用者去擁抱 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 管控元件全托管,極大的節省了使用者的資源以及運維成本。

開源 Serverless 裡程碑:Knative 1.0 來了

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

AI 音視訊編/解碼場景

GPU 等異構計算場景

大資料及 AI 深度學習、機器視覺

傳統管理軟體

...

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

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

阿裡雲 Knative 釘釘交流群:

開源 Serverless 裡程碑:Knative 1.0 來了

1)圖檔 1:

​​https://www.cncf.io/blog/2021/04/28/cncf-cloud-native-survey-china-2020/?spm=a2c6h.12873639.0.0.50825d98LheP6P​​

2)圖檔 2:

​​https://github.com/knative/community/blob/main/ADOPTERS.MD?spm=a2c6h.12873639.0.0.50825d98LheP6P&file=ADOPTERS.MD​​

3)參考

​​https://knative.dev/blog/articles/knative-1.0/ ​​

​​https://cloudnative.to/blog/knative-1-0-ga/ ​​

​​https://github.com/knative/community/blob/main/ADOPTERS.MD​​

點選​​此處​​了解更多阿裡雲 Knative 産品相關資訊!

繼續閱讀