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