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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

利用Helm简化Kubernetes应用部署(1)

發(fā)布時(shí)間:2023/12/4 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 利用Helm简化Kubernetes应用部署(1) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

  • 利用Helm簡化Kubernetes應(yīng)用部署?

  • Helm基礎(chǔ)?

  • 安裝Helm?

  • 使用Visual Studio 2019為Helm編寫一個(gè)簡單的應(yīng)用?

利用Helm簡化Kubernetes應(yīng)用部署


Helm是Kubernetes生態(tài)系統(tǒng)中的一個(gè)軟件包管理工具,有點(diǎn)類似于Linux操作系統(tǒng)里面的“apt-get”和“yum”。結(jié)合上一節(jié)內(nèi)容,對Kubernetes集群進(jìn)行部署應(yīng)用時(shí),我們面臨了以下問題:

  • 如何管理、編輯和更新這些這些分散的 Kubernetes 應(yīng)用配置文件。

  • 如何把一套相關(guān)的配置文件作為一個(gè)應(yīng)用進(jìn)行管理。

  • 如何分發(fā)和重用 Kubernetes 的應(yīng)用配置。

Helm 的出現(xiàn)就是為了很好地解決上面這些問題。Helm Chart是用來封裝Kubernetes原生應(yīng)用程序的一系列YAML文件。我們可以在部署應(yīng)用的時(shí)候自定義應(yīng)用程序的一些 Metadata,以便于應(yīng)用程序的分發(fā)。對于應(yīng)用發(fā)布者而言,可以通過 Helm 打包應(yīng)用、管理應(yīng)用依賴關(guān)系、管理應(yīng)用版本并發(fā)布應(yīng)用到軟件倉庫。對于使用者而言,使用 Helm 后不用需要編寫復(fù)雜的應(yīng)用部署文件,可以以簡單的方式在 Kubernetes 上查找、安裝、升級、回滾、卸載應(yīng)用程序。總之,Helm大大簡化了應(yīng)用管理的難度,其主要有以下優(yōu)勢:

  • 管理復(fù)雜應(yīng)用。Charts能定義哪怕是再復(fù)雜的應(yīng)用,并且提供了可重復(fù)使用應(yīng)用程序部署定義。

  • 易于更新升級。

  • 易于共享。Charts無論是在私有服務(wù)器還是公共服務(wù)器上,都非常易于升級、共享和托管。

  • 輕松回滾。

Helm基礎(chǔ)

  • Helm

Helm 是一個(gè)命令行下的客戶端工具。主要用于 Kubernetes 應(yīng)用程序 Chart 的創(chuàng)建、打包、發(fā)布以及創(chuàng)建和管理本地和遠(yuǎn)程的 Chart 倉庫。

  • Tiller

Tiller 是 Helm 的服務(wù)端,部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的請求,并根據(jù) Chart 生成 Kubernetes 的部署文件( Helm 稱為 Release ),然后提交給 Kubernetes 創(chuàng)建應(yīng)用。Tiller 還提供了Release 的升級、刪除、回滾等一系列功能。

  • Chart

Helm 的軟件包,采用 TAR 格式。類似于APT的DEB包或者YUM的RPM包,其包含了一組定義 Kubernetes 資源相關(guān)的 YAML 文件。

  • Repoistory

Helm 的軟件倉庫,其保存了一系列的 Chart 軟件包以供用戶下載,并且提供了一個(gè)該 Repository 的 Chart 包的清單文件以供查詢。Helm 可以同時(shí)管理多個(gè)不同的 Repository。

  • Config

應(yīng)用程序?qū)嵗渴疬\(yùn)行時(shí)的配置信息。

  • Release

使用 helm install 命令在 Kubernetes 集群中部署的 Chart 稱為 Release。Helm 中提到的 Release和我們通常概念中的版本有所不同,這里的 Release 可以理解為 Helm 使用 Chart包部署的一個(gè)應(yīng)用實(shí)例。在同一個(gè)集群中,一個(gè)Chart可以使用不同的配置(Config)安裝多次,每次安裝都會創(chuàng)建一個(gè)Release。

安裝Helm

1.安裝Helm客戶端

推薦使用官方腳本一鍵安裝:

curl https://raw.githubusercontent.com/helm/helm/master/scripts/get > get_helm.sh

chmod 700 get_helm.sh

./get_helm.sh

如果安裝包無法下載,可以復(fù)制腳本輸出的下載鏈接手動下載然后再解壓復(fù)制到bin目錄,如下所示:

tar -zxvf helm-v2.14.2-linux-amd64.tar.gz cp linux-amd64/helm /usr/local/bin/

2.安裝服務(wù)端——Tiller

安裝腳本如下所示:

#創(chuàng)建 Kubernetes 的服務(wù)帳號和綁定角色 kubectl create serviceaccount --namespace kube-system tiller kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller #初始化安裝tiller,并制定服務(wù)賬戶和鏡像 helm init --service-account tiller --tiller-image gcr.azk8s.cn/kubernetes-helm/tiller:v2.14.2 --skip-refresh

其中,Helm初始化指定了第三方鏡像。安裝過程如下所示:

安裝完成后,我們可以執(zhí)行以下命令來查看安裝的版本以及賬戶授權(quán):

helm version kubectl get deploy --namespace kube-system tiller-deploy --output yaml|grep serviceAccount

值得注意的是,tiller安裝完成后,會運(yùn)行在Pod之中,我們可以通過標(biāo)簽“app=helm”來查看tiller是否安裝成功:

kubectl get pods -o wide -n kube-system -lapp=helm

如果安裝過程中出現(xiàn)問題需要重新安裝,可以執(zhí)行以下命令再重裝:

kubectl delete deployment tiller-deploy --namespace=kube-system kubectl delete service tiller-deploy --namespace=kube-system rm -rf ~/.helm/

安裝完成之后,我們編寫一個(gè)簡單的應(yīng)用然后來使用Helm進(jìn)行部署。

使用Visual Studio 2019為Helm編寫一個(gè)簡單的應(yīng)用

Visual Studio 2019提供了一個(gè)犀利的擴(kuò)展工具——Visual Studio Kubernetes Tool來輔助我們編寫Helm應(yīng)用,如果還沒有安裝的小伙伴可以在擴(kuò)展中查找并安裝此擴(kuò)展。

VS除了可以自動編寫dockerfile,構(gòu)建并推送docker鏡像之外,還能自動添加Helm的配置模板,接下來我們按照以下步驟來創(chuàng)建我們第一個(gè)Helm應(yīng)用工程。

1.創(chuàng)建項(xiàng)目,選擇Kubernetes項(xiàng)目模板。如下圖所示:

2.填寫項(xiàng)目名稱等信息。

3.選擇項(xiàng)目模板類型。

4.添加【容器業(yè)務(wù)流程協(xié)調(diào)程序支持】。

5.選擇【Kubernetes/Helm】。

6.查看解決方案目錄,確認(rèn)Chart。

如上圖所示,VS自動為我們創(chuàng)建了charts目錄,相關(guān)目錄和文件說明如下所示:

  • Chart.yaml 用于描述這個(gè)Char的相關(guān)信息,包括應(yīng)用名稱、描述以及版本等。

  • values.yaml 用于存儲templates目錄中模板文件中用到變量的值。

  • NOTES.txt 用于介紹 Chart 部署后的一些信息,例如:如何使用這個(gè) Chart、列出缺省的設(shè)置等。

  • Templates 目錄下是YAML文件的模板,比如deployment、service、secrets等模板,該模板文件遵循 Go template 語法。

注意:如上圖所示的charts目錄,我們也可以通過命令“helm create mychart”來創(chuàng)建。

至此,一個(gè)簡單的Helm應(yīng)用模板創(chuàng)建完成,接下來我們來將此應(yīng)用通過Helm快速部署,下一篇我們再來詳細(xì)說明!

往期內(nèi)容

Docker+ Kubernetes已成為云計(jì)算的主流(二十六)

容器化之后如何節(jié)省云端成本?(二十七)

了解Kubernetes主體架構(gòu)(二十八)

使用Minikube部署本地Kubernetes集群(二十九)

使用kubectl管理k8s集群(三十)

使用Kubeadm創(chuàng)建k8s集群之部署規(guī)劃(三十一)

使用Kubeadm創(chuàng)建k8s集群之節(jié)點(diǎn)部署(三十二)

集群故障處理之處理思路以及健康狀態(tài)檢查(三十三)

集群故障處理之處理思路以及聽診三板斧(三十四)

使用WebDeploy部署遠(yuǎn)程IIS網(wǎng)站

使用Kubectl部署應(yīng)用

通過Service訪問應(yīng)用 (1)

通過Service訪問應(yīng)用 (2)

使用Ingress來負(fù)載分發(fā)微服務(wù)


總結(jié)

以上是生活随笔為你收集整理的利用Helm简化Kubernetes应用部署(1)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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