自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

KubeVela 上手(1)|讓云端應(yīng)用交付更加絲滑

開發(fā)
KubeVela 是阿里云和微軟共同發(fā)起的 OAM(Open Application Model)標(biāo)準(zhǔn)的技術(shù)實(shí)現(xiàn),旨在打造統(tǒng)一、標(biāo)準(zhǔn)、跨環(huán)境的云端應(yīng)用交付,省時(shí)省力,輕松簡單。

[[411221]]

 本文適合所有軟件工程師進(jìn)行閱讀使用,尤其是希望開拓后端技術(shù)視野的前端、移動端和全棧工程師們。

前言

在軟件開發(fā)越來越敏捷的今天,后端技術(shù)架構(gòu)也一直一刻不停地演進(jìn)以適應(yīng)需求的變化。

從最初的物理機(jī)時(shí)代、云計(jì)算萌芽的虛擬機(jī)時(shí)代,再到大爆發(fā)的容器時(shí)代,所有這一切,我們本來都朝著一個(gè)確定方向發(fā)展,即:讓應(yīng)用交付更好、更快和更強(qiáng)。目前處在容器時(shí)代的我們,一邊迎接 Kubernetes 等云原生技術(shù)浪潮帶來的豐富能力,一邊又不得不面對這些煩惱:

Kubernetes 陡峭的學(xué)習(xí)曲線和一堆眼花繚亂的概念,使得應(yīng)用開發(fā)人員的開發(fā)效率很難令人滿意。
服務(wù)應(yīng)用開發(fā)的平臺團(tuán)隊(duì),卻沒有一個(gè)合適的框架來構(gòu)建用戶友好且高度可擴(kuò)展的抽象。
尤其在未來的混合云、多云、分布式云這些日益復(fù)雜的業(yè)務(wù)場景中,應(yīng)用交付更是變得碎片化。
KubeVela 是阿里云和微軟共同發(fā)起的 OAM(Open Application Model)標(biāo)準(zhǔn)的技術(shù)實(shí)現(xiàn),旨在打造統(tǒng)一、標(biāo)準(zhǔn)、跨環(huán)境的云端應(yīng)用交付,省時(shí)省力,輕松簡單:

以應(yīng)用程序?yàn)橹行? KubeVela 引入了開放應(yīng)用程序模型(OAM)來作為更高級別的 API,通過高度一致的工作流來捕獲面向混合環(huán)境的微服務(wù)交付的所有信息。包括多集群分發(fā)策略、流量調(diào)配和滾動更新等運(yùn)維特征,都聲明在應(yīng)用級別。用戶無需關(guān)心任何基礎(chǔ)設(shè)施細(xì)節(jié),只需要定義和部署應(yīng)用即可。
可編程式交付工作流- KubeVela 的模型層是利用 CUE 來實(shí)現(xiàn)的。它使得你可以輕松地將應(yīng)用交付工作流聲明為一個(gè) DAG,并將所有步驟和應(yīng)用部署需求以可編程的方式粘合在一起。這里沒有任何限制,原生可擴(kuò)展。
運(yùn)行時(shí)無關(guān) - KubeVela 是一個(gè)完全與運(yùn)行時(shí)無關(guān)的應(yīng)用交付與管理控制平面。它可以按照你定義的工作流與策略,面向混合環(huán)境交付和管理任何應(yīng)用組件:包括容器、云函數(shù)、數(shù)據(jù)庫甚至 AWS EC2 實(shí)例。
現(xiàn)在快跟我來,走進(jìn) KubeVela 一探究竟!

可以先熟悉的概念

Docker:常用的一種容器。

Image:容器鏡像。Docker 的最核心組成,簡單理解為可拷貝的安裝光盤。

DockerHub:Docker 公司負(fù)責(zé)維護(hù)的一個(gè)容器鏡像公開下載中心。

Kubernetes:容器編排標(biāo)準(zhǔn),工作是統(tǒng)一管理調(diào)度容器。

YAML:一種配置文件格式。

話不多說,來愉快地敲代碼學(xué)習(xí)吧!

試玩 KubeVela 環(huán)境搭建

這一次,我們將介紹使用 Kind(Kubernetes in Docker)來搭建本地 Kubernetes 環(huán)境。顧名思義,Kubernetes in Docker,所以繼續(xù)往下看之前,請確保跟隨鏈接先安裝好 Docker(_https://docs.docker.com/desktop/_)和 Kubernetes 的命令行工具 kubectl(_https://kubernetes.io/zh/docs/tasks/tools/_)。

安裝 Kind,如果是 MacOS 系統(tǒng),請?jiān)诿钚墟I入:

  1. curl -Lo ./kind https://kind.sigs.k8s.io/dl/v0.11.1/kind-darwin-amd64chmod +x ./kindmv ./kind /some-dir-in-your-PATH/kind 

如果是 Windows 則使用:

  1. curl.exe -Lo kind-windows-amd64.exe https://kind.sigs.k8s.io/dl/v0.11.1/kind-windows-amd64Move-Item .\kind-windows-amd64.exe c:\some-dir-in-your-PATH\kind.exe 

安裝好 Kind 之后啟動 Kind,運(yùn)行如下命令:

  1. cat <<EOF | kind create cluster --image=kindest/node:v1.18.15 --config=-kind: ClusterapiVersion: kind.x-k8s.io/v1alpha4nodes:- role: control-plane  kubeadmConfigPatches:  - |    kind: InitConfiguration    nodeRegistration:      kubeletExtraArgs:        node-labels: "ingress-ready=true"  extraPortMappings:  - containerPort: 80    hostPort: 80    protocol: TCP  - containerPort: 443    hostPort: 443    protocol: TCPEOF 

同時(shí)我們需要安裝 Ingress for Kind。如果把 Kubernetes 比作為“容器酒店”的總經(jīng)理,Ingress 則類似于這家酒店的迎賓員,負(fù)責(zé)把前來的“訪問客人”引導(dǎo)到下面具體的哪一步,是去餐廳、去客房還是去健身等等:

  1. kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/kind/deploy.yaml 

當(dāng)以上一切就緒,就意味著本地我們已經(jīng)有了完備的 Kubernetes 環(huán)境。

接下來,讓我們來安裝 KubeVela。首先請安裝 Helm Chart,它是 Kubernetes 生態(tài)的包管理工具,運(yùn)行:

  1. curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 | bash 

然后在 Helm Chat 中添加 KubeVela:

helm repo add kubevela https://charts.kubevela.net/core
接著更新 Helm Chart:

helm repo update
最后安裝 KubeVela:

helm install --create-namespace -n vela-system kubevela kubevela/vela-core
我們查看一下是否安裝成功:

helm test kubevela -n vela-system
成功后提示:Welcome to use the KubeVela! Enjoy your shipping application journey!

好,那開始編寫第一個(gè) KubeVela Demo 吧!

KubeVela,Hello World!

在前一小節(jié)的環(huán)境配置當(dāng)中,我們啟動了一個(gè) Kind 集群,可以在 Docker GUI 里查看到相關(guān)容器信息:

按 KubeVela 所抽象的方式,我們定義一個(gè) Web Service,它會拉取 DockerHub 上命為「crccheck/hello-world」的鏡像。

  1. apiVersion: core.oam.dev/v1beta1kind: Applicationmetadata:  name: first-vela-appspec:  components:    - name: express-server      type: webservice      properties:        image: crccheck/hello-world        port: 8000      traits:        - type: ingress          properties:            domain: testsvc.example.com            http:              "/"8000 

緊接著使用 Kubernetes 的 kubectl apply 命令來部署這條 YMAL:

  1. kubectl apply -f https://raw.githubusercontent.com/oam-dev/kubevela/master/docs/examples/vela-app.yaml 

由于 Ingress for Kind 會默認(rèn)把你在 YAML 中聲明的 webservice 綁定到 localhost,所以如果你想得到訪問部署好的應(yīng)用,只需要在命令行里鍵入:

curl -H "Host:testsvc.example.com" localhost
Viola!出現(xiàn)了讓我們最親切的詞語:Hello World!

  1. <xmp>Hello World                                       ##         .                                                                  ## ## ##        ==                                            ## ## ## ## ##    ===                                             /""""""""""""""""\___/ ===                 ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~                           \______ o         _,/                            \      \       _,'                                       `'--.._\..--''</xmp>            

總結(jié)與預(yù)告

上文帶我們完整地體驗(yàn)了一遍 KubeVela 帶來的應(yīng)用交付流程,就像“把大象關(guān)進(jìn)冰箱只要三步”一樣簡單直接。

通過編寫一個(gè)叫做 Application 的“應(yīng)用交付計(jì)劃” YAML 文件,我們得到交付的是一個(gè) Web Service 類型的 Kubernetes 組件。

Web Service 組件背后的機(jī)制是什么?KubeVela 如何交付 Helm 組件?又如何交付云服務(wù)組件?如何編排這些組件?

這些就留待下一期我們回來詳細(xì)講解 KubeVela 的核心概念:Application 和 Components(組件系統(tǒng))。

責(zé)任編輯:梁菲 來源: 阿里云云棲號
相關(guān)推薦

2021-11-17 08:16:03

內(nèi)存控制Go

2025-03-03 12:00:00

JavaScriptfor 循環(huán)語言

2023-10-27 07:36:36

2023-10-19 07:33:41

KubeVelaapiserver

2023-10-07 14:49:45

2023-09-27 07:49:23

2020-07-22 15:15:28

Vue前端代碼

2025-03-10 08:44:17

2022-09-05 13:16:42

MicroVim編輯器

2023-10-06 20:46:27

開發(fā)工具開發(fā)代碼

2025-04-18 08:24:22

2022-08-28 10:08:53

前端代碼前端

2023-03-15 15:54:36

Java代碼

2023-06-26 08:01:42

debugger技巧代碼

2015-07-22 17:36:02

2013-06-07 10:46:48

深信服應(yīng)用交付應(yīng)用訪問

2021-01-18 18:42:33

工具調(diào)優(yōu)開發(fā)

2022-03-18 13:59:46

緩存RedisCaffeine

2013-05-29 09:30:51

BaaS移動中間件HTML5應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號