Knative 介绍
概述
Knative是由谷歌開源的一款基于k8s的Serverless項目,該項目的目標是致力于以容器為核心的serverless標準化,加速Serverless生態發展。Knative定義了serverless的構建、服務管理和事件驅動。該項目與2018年7月正式發布,目前還處在快速發展階段。
Knative使用應用模板和統一的運行環境來標準化服務的構建、部署和管理。Kubernetes作為基礎設施,解決應用編排和運行環境,Isito作為通信基礎設施層,提供服務治理相關能力。
解決的問題
K8s使用門檻高
Serverless無服務架構本身就是將所有的運維工作都封裝起來,對外提供一套免運維的環境。在傳統開發部署架構下,將應用部署到k8s上首先需要對k8s有一個全面的了解,用戶將代碼打包為容器鏡像上傳到鏡像中心,然后在k8s中創建相應的資源實現部署,并且要對k8s進行精細化管理。Knative便是為了解決這一問題,Knative自身基于k8s和istio,開發人員通過編寫配置文件便可以實現一系列的CI/CD流程,最終部署到k8s中。
Serverless混亂的技術棧
Serverless概念自提出之后,各個云廠商都有自己的技術棧和實現,混亂的技術棧并不利于相關生態的發展,另一方面對于用戶來說也會帶來不一致的體驗,也不利于遷移,甚至會廠商鎖定等問題。
廠商鎖定
由于沒有統一的標準,各云廠商的Serverless產品用法也不一樣,并且通常會和自有的其他云產品捆綁售賣,由此產生了廠商鎖定的問題,Knative通過制定統一開放的標準,實現跨廠商并且適合與私有云的一套方案,解決了這個問題。
核心組件
Knative Build
Build組件是Knative中負責CI/CD的組件,提供將代碼編譯打包為容器鏡像的能力,Build組件本身也是開放架構,擴展了k8s,使用k8s原語來定義操作資源。目前新版本Knative的Build組件使用Tekton Pipelines流水線。
Knative Serving
Serving組件提供了Serverless運行中的管理,當業務代碼通過Build構建完成后,在Knative中運行起來之后,就有Serving組件提供快速伸縮,支持伸縮到0個節點,服務的路由和流量控制、容器的配置和版本管理等。
Knative Eventing
Eventing組件提供了Serverless的事件驅動的功能,通過Event、Tiger和Service將事件與服務綁定起來,實現由事件觸發,驅動服務運行的機制。
總結
以上是生活随笔為你收集整理的Knative 介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4G模块 EC03-DNC的常用AT指令
- 下一篇: 学习3ds max—做自行车车轮