初試 kubevela
開放(Open):支持異構(gòu)的平臺(tái)、容器運(yùn)行時(shí)、調(diào)度系統(tǒng)、云供應(yīng)商、硬件配置等,總之與底層無(wú)關(guān) 應(yīng)用(Application):云原生應(yīng)用 模型(Model):定義標(biāo)準(zhǔn),以使其與底層平臺(tái)無(wú)關(guān)
第一個(gè)核心理念是組成應(yīng)用程序的組件(Component),它可能包含微服務(wù)集合、數(shù)據(jù)庫(kù)和云負(fù)載均衡器; 第二個(gè)核心理念是描述應(yīng)用程序運(yùn)維特征(Trait)的集合,例如,彈性伸縮和 Ingress 等功能。它們對(duì)應(yīng)用程序的運(yùn)行至關(guān)重要,但在不同環(huán)境中其實(shí)現(xiàn)方式各不相同; 最后,為了將這些描述轉(zhuǎn)化為具體的應(yīng)用程序,運(yùn)維人員使用應(yīng)用配置(Application Configuration)來(lái)組合組件和相應(yīng)的特征,以構(gòu)建應(yīng)部署的應(yīng)用程序的具體實(shí)例
以應(yīng)用為中心。在Appfile的后面,KubeVela實(shí)施了一個(gè)應(yīng)用程序概念,因?yàn)樗闹饕狝PI和ALL?KubeVela的功能僅滿足應(yīng)用程序的需求。這是通過采用開放應(yīng)用程序模型作為KubeVela的核心API來(lái)實(shí)現(xiàn)的。 本地?cái)U(kuò)展。KubeVela中的應(yīng)用程序由各種可插拔工作負(fù)載類型和操作功能(即特征)組成。Kubernetes生態(tài)系統(tǒng)的功能可以隨時(shí)通過Kubernetes CRD注冊(cè)機(jī)制作為新的工作負(fù)載類型或特征添加到KubeVela中。 簡(jiǎn)單但可擴(kuò)展的抽象機(jī)制。KubeVela的主要用戶界面(即Appfile和CLI)使用基于CUELang的抽象引擎構(gòu)建,該引擎將面向用戶的模式轉(zhuǎn)換為下劃線的Kubernetes資源。KubeVela提供了一組內(nèi)置的抽象對(duì)象,平臺(tái)構(gòu)建者可以隨時(shí)隨意對(duì)其進(jìn)行修改。抽象更改將在運(yùn)行時(shí)生效,無(wú)需重新編譯或重新部署KubeVela。
架構(gòu)

概念和術(shù)語(yǔ)
application,service,workload type,trait,他們之間的關(guān)系如下圖:
workload type,trait)。service是KubeVela中基本可部署單元的描述符Appfile(vela.yaml默認(rèn)命名)定義。安裝
Kubernetes集群> = v1.15.0 安裝并配置了kubectl
下載kubevela
1 | curl -fsSl https://kubevela.io/install.sh | bash |
vela從發(fā)行頁(yè)面下載最新的二進(jìn)制文件。解壓縮 vela二進(jìn)制文件并將其添加$PATH到入門中。
1 | $ sudo mv ./vela /usr/local/bin/vela |
初始化kubevela
vela install安裝KubeVela服務(wù)器組件及其依賴組件。Prometheus Stack Cert-manager Flagger KEDA
1 | [root@master-01 kubevela]# vela install |
卸載
1 | $ helm uninstall -n vela-system kubevela |
1 | $ kubectl delete crd \ |
使用vela 部署一個(gè)服務(wù)
1 | $ git clone https://github.com/oam-dev/kubevela.git |
image: misterli/testapp:v1用戶替換為自己用戶,以便進(jìn)行推送。1 | [root@master-01 testapp]# ls |
部署
1 | [root@master-01 testapp]# vela up |
vela up之后,先進(jìn)行了docker鏡像的build push 操作,然后根據(jù)vela.yaml文件內(nèi)容生成.vela/deploy.yaml文件然后進(jìn)行apply操作,我們查看一下.vela/deploy.yaml文件內(nèi)容:1 | [root@master-01 testapp]# cat .vela/deploy.yaml |
我們修改vela.yaml文件中,取消如下注釋并修改為2
1 | scaler: |
我們?cè)趫?zhí)行vela up ,pod的副本數(shù)將變?yōu)?個(gè)
1 | [root@master-01 rabbitmq]# kubectl get pod |
vela delete APP_NAME1 | #錯(cuò)誤的刪除方式 |
?點(diǎn)擊屏末?|?閱讀原文?|?即刻學(xué)習(xí)評(píng)論
圖片
表情
