日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

KubeVela 高可扩展的云原生应用平台与核心引擎

發(fā)布時(shí)間:2024/7/5 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KubeVela 高可扩展的云原生应用平台与核心引擎 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

https://www.oschina.net/news/121015/kubevela-open-source

目錄

    • 什么是 KubeVela ?
    • KubeVela 解決了什么問題?
      • 1. 應(yīng)用開發(fā)者眼中的 KubeVela
        • 一個(gè) Appfile 示例
      • 2. 平臺(tái)工程師眼中的 KubeVela
      • 3. KubeVela vs 經(jīng)典 PaaS
    • 快速入門
      • 安裝KubeVela
        • 1. 安裝Kubernetes 集群
        • 2. 獲取Kubevela

美國(guó)西部時(shí)間 2020 年 11 月 18 日,在云原生技術(shù) KubeCon 北美峰會(huì) 2020 上,CNCF 應(yīng)用交付領(lǐng)域小組(CNCF SIG App Delivery) 與 Open Application Model (OAM) 社區(qū),以及來自阿里云、微軟云的 OAM 項(xiàng)目維護(hù)者們?cè)谘葜v中共同宣布了 KubeVela 開源項(xiàng)目的正式發(fā)布。

什么是 KubeVela ?

基于 Kubernetes 與 OAM 技術(shù)構(gòu)建的,簡(jiǎn)單易用且高度可擴(kuò)展的應(yīng)用管理平臺(tái)與核心引擎。核心思想是:
讓開發(fā)人員方便快捷地在 Kubernetes 上定義與交付現(xiàn)代微服務(wù)應(yīng)用,無需了解任何 Kubernetes 本身相關(guān)的細(xì)節(jié)。在這一點(diǎn)上,KubeVela 可以被認(rèn)為是云原生社區(qū)的 Heroku

Heroku是支持多種編程語言的云平臺(tái),在2010年被Salesforce.com收購(gòu)幫助開發(fā)人員構(gòu)建和發(fā)布Web應(yīng)用程序,而無需擔(dān)心管理服務(wù)器、擴(kuò)展操作或處理部署過程,支持Ruby、Java、Node.js、Python、PHP、GO等8種編程語言。

KubeVela 解決了什么問題?

讓平臺(tái)團(tuán)隊(duì)在不造輪子、完全打通 Kubernetes 生態(tài)的前提下,輕松的構(gòu)建面向用戶的上層平臺(tái)。

核心問題是:Kubernetes 生態(tài)本身的能力池固然豐富,但是社區(qū)里卻并沒有一個(gè)可擴(kuò)展的、方便快捷的方式,能夠幫助平臺(tái)團(tuán)隊(duì)把這些能力快速“組裝”成面向最終用戶的功能(Feature)。

這也是為什么在云原生生態(tài)中,幾乎每一個(gè)平臺(tái)團(tuán)隊(duì)都會(huì)基于 Kubernetes 構(gòu)建一個(gè)上層平臺(tái)給用戶使用。最簡(jiǎn)單的也會(huì)給 Kubernetes 做一個(gè)圖形界面,稍微正式一些的則往往會(huì)基于 Kubernetes 開發(fā)一個(gè)類 PaaS 平臺(tái)來滿足自己的需求。

KubeVela 對(duì)最終用戶平臺(tái)團(tuán)隊(duì)這兩種群體進(jìn)行了單獨(dú)的畫像,以滿足他們不同的訴求。KubeVela 里的每一個(gè)功能,都是一個(gè)插件,平臺(tái)團(tuán)隊(duì)可以輕松地“卸載”它的所有內(nèi)置能力、然后“安裝”自己需要的任何社區(qū)能力,讓 KubeVela 變成一個(gè)完全不一樣的系統(tǒng)。

1. 應(yīng)用開發(fā)者眼中的 KubeVela

讓開發(fā)者以極低的心智負(fù)擔(dān)和上手成本在 Kubernetes 上定義與部署應(yīng)用。而關(guān)于整個(gè)系統(tǒng)的使用,開發(fā)者只需要編寫一個(gè) docker-compose 風(fēng)格應(yīng)用描述文件 Appfile 即可,不需要接觸和學(xué)習(xí)任何 Kubernetes 層的相關(guān)細(xì)節(jié)。

一個(gè) Appfile 示例

vela.yaml 的 Appfile 放在你的應(yīng)用代碼目錄中(比如應(yīng)用的 GitHub Repo)。這個(gè) Appfile 定義了:

  • 如何將這個(gè)應(yīng)用編譯成 Docker 鏡像
  • 如何將鏡像部署到 Kubernetes
  • 如何配置外界訪問應(yīng)用的路由和域名
  • 如何讓 Kubernetes 自動(dòng)根據(jù) CPU 使用量來水平擴(kuò)展這個(gè)應(yīng)用

    只要有了這個(gè) 20 行的配置文件,接下來唯一需要的事情就是:
    $ vela up
    這個(gè)應(yīng)用就會(huì)被部署到 Kubernetes 中然后被外界以 https://example.com/testapp 的方式訪問到。

這個(gè) Appfile 是沒有固定的 Schema 的,意思是基于這種模塊化的設(shè)計(jì),Appfile 本身是高度可擴(kuò)展的。里面能夠填寫的每一個(gè)字段,直接取決于當(dāng)前平臺(tái)中有哪些工作負(fù)載類型(Workload Types)和可用的應(yīng)用特征(Traits)。這是核心概念,其中:

  • 工作負(fù)載類型(Workload Type),定義的是底層基礎(chǔ)設(shè)施如何運(yùn)行這個(gè)應(yīng)用。
  • 應(yīng)用特征(Traits),則為工作負(fù)載實(shí)例加上了運(yùn)維時(shí)配置。

在上面的例子中:

  • 名叫 testapp 的應(yīng)用會(huì)啟動(dòng)一個(gè)類型為“在線 Web 服務(wù)(Web Service)” 的工作負(fù)載,其實(shí)例的名字是 express-server。
  • 定義了一個(gè) Route Trait 來描述應(yīng)用如何被從外界訪問,以及一個(gè) Autoscale Trait 來描述應(yīng)用如何根據(jù) CPU 使用量進(jìn)行自動(dòng)的水平擴(kuò)容。

當(dāng)任何新的 Workload Type 或者 Trait 被安裝到平臺(tái)后,用戶可以立刻在 Appfile 里聲明使用這個(gè)新增的能力。

舉個(gè)例子,比如后面平臺(tái)團(tuán)隊(duì)新開發(fā)了一個(gè)用來配置應(yīng)用監(jiān)控屬性的運(yùn)維側(cè)能力,叫做 Metrics。那么應(yīng)用開發(fā)者就可以立刻使用:
$ vela show metrics
命令查看這個(gè)新增能力的詳情,并且在 Appfile 中使用它,如下所示:

這種簡(jiǎn)單友好、又高度敏捷的使用體驗(yàn),正是 KubeVela 在最終用戶側(cè)提供的主要體感。
通過 KubeVela 部署的應(yīng)用會(huì)被自動(dòng)設(shè)置好訪問 URL(以及不同版本對(duì)應(yīng)的不同 URL),并且會(huì)由 cert-manager 生成好證書。與此同時(shí),KubeVela 還提供了一系列輔助命令(比如:vela logs 和 vela exec)來幫助你在無需成為 Kubernetes 專家的情況下更好地管理和調(diào)試你的應(yīng)用。

2. 平臺(tái)工程師眼中的 KubeVela

KubeVela 不是一個(gè)簡(jiǎn)單的 PaaS 或者 Serverless,而是一個(gè)可以由平臺(tái)工程師擴(kuò)展成任意垂直系統(tǒng)的云原生平臺(tái)內(nèi)核,提供了三大核心能力:

第一:以應(yīng)用為中心,讓“應(yīng)用”這個(gè)概念成為了整個(gè)平臺(tái)對(duì)用戶暴露的核心 API。因此,基于 KubeVela 擴(kuò)展和構(gòu)建出來的平臺(tái),天然是用戶友好的:對(duì)于一個(gè)開發(fā)者來說,他只關(guān)心“應(yīng)用”,而不是容器或者 Kubernetes;而 KubeVela 會(huì)確保構(gòu)建整個(gè)平臺(tái)的過程,也只與應(yīng)用層的需求有關(guān)。

第二:Kubernetes 原生的高可擴(kuò)展性。Appfile 是一個(gè)由 Workload Type 和 Trait 組成的、完全模塊化的對(duì)象。任意一個(gè) Kubernetes API 資源,都可以直接基于 Kubernetes 的 CRD 發(fā)現(xiàn)機(jī)制注冊(cè)為一個(gè) Workload Type 或者 Trait。這種可擴(kuò)展性,使得 KubeVela 并不需要設(shè)計(jì)任何“插件系統(tǒng)”:KubeVela 里的每一個(gè)能力,都是插件,而整個(gè) Kubernetes 社區(qū),就是 KubeVela 原生的插件中心

第三:簡(jiǎn)單友好但高度可擴(kuò)展的用戶側(cè)抽象體系。KubeVela 中并不是僅僅簡(jiǎn)單的實(shí)現(xiàn)了一個(gè) Appfile。KubeVela 在 OAM 模型層實(shí)現(xiàn)中集成了 CUELang 模板語言,從而為平臺(tái)工程師基于 Kubernetes API 對(duì)象定義用戶側(cè)抽象(即:“最后一公里”抽象)提供了一個(gè)標(biāo)準(zhǔn)、通用的配置工具。更重要的是,平臺(tái)工程師或者系統(tǒng)管理員,可以隨時(shí)隨地的每個(gè)能力對(duì)應(yīng)的 CUE 模板進(jìn)行修改,這些修改一旦提交到 Kubernetes,用戶在 Appfile 里就可以立刻使用到新的抽象,不需要重新部署或者安裝 KubeVela。

有了 KubeVela,平臺(tái)工程師終于擁有了一個(gè)可以方便快捷地將任何一個(gè) Kubernetes 社區(qū)能力封裝抽象成一個(gè)面向用戶的上層平臺(tái)特性的強(qiáng)大工具。而作為這個(gè)平臺(tái)的最終用戶,應(yīng)用開發(fā)者們只需要學(xué)習(xí)這些上層抽象,在一個(gè)配置文件中描述應(yīng)用,就可以一鍵交付出去。

3. KubeVela vs 經(jīng)典 PaaS

KubeVela 跟經(jīng)典 PaaS 的設(shè)計(jì)目標(biāo)是非常一致的,其優(yōu)勢(shì)體現(xiàn)在擴(kuò)展性上。經(jīng)典 PaaS 往往是不可擴(kuò)展的,或者會(huì)引入屬于自己的插件生態(tài)(哪怕這個(gè) PaaS 是完全基于 Kubernetes 構(gòu)建的),以此來確保平臺(tái)本身的用戶體驗(yàn)和能力的可控制性(比如 Cloud Foundry 或者 Heroku 的插件中心)。

這種高度可擴(kuò)展的模型背后有著精密的設(shè)計(jì)與實(shí)現(xiàn)。比如:

  • KubeVela 如何確保某個(gè)完全獨(dú)立的 Trait 一定能夠綁定于某種 Workload Type?
  • 如何檢查這些相互獨(dú)立的 Trait 是否沖突?

這些挑戰(zhàn),正是 Open Application Model(OAM)作為 KubeVela 模型層的起到的關(guān)鍵作用,一言以蔽之:OAM 是一個(gè)高度可擴(kuò)展的應(yīng)用定義與能力管理模型

快速入門

https://kubevela.io/#/en/install

安裝KubeVela

1. 安裝Kubernetes 集群

要求:

  • Kubernetes cluster >= v1.15.0
  • kubectl 安裝并配置

對(duì)于沒有K8s集群或本地實(shí)驗(yàn)的情況,需要安裝Minikube 或 安裝KinD。

2. 獲取Kubevela

獲取最新版vela。
解壓縮,路徑加到$PATH,

總結(jié)

以上是生活随笔為你收集整理的KubeVela 高可扩展的云原生应用平台与核心引擎的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。