AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

什么是Helm?它是如何提升云原生應用私有化部署效率的

來源: 責編: 時間:2024-01-08 09:16:16 217觀看
導讀大家好,我是蝸牛哥,試想一下,如果有一個項目有50 個微服務,每個微服務都有service、deployment、ingress、pvc等 yaml 文件,算下來大概有 200 個文件,然后這個項目需要基于k8s進行私有化交付,如果是你會怎么快速部署應用?首先

大家好,我是蝸牛哥,試想一下,如果有一個項目有50 個微服務,每個微服務都有service、deployment、ingress、pvc等 yaml 文件,算下來大概有 200 個文件,然后這個項目需要基于k8s進行私有化交付,如果是你會怎么快速部署應用?JLB28資訊網——每日最新資訊28at.com

首先讓我們先思考一下:JLB28資訊網——每日最新資訊28at.com

  • 200 個文件是否通過kubectl apply進行部署,寫個shell 腳本for 循環一個個讀取執行?,但是如果這些yaml 文件更新了,如何同步?
  • 如果這些pod進行需要升級怎么辦,一個個修改鏡像 tag?
  • yaml文件關聯地址如何更新,比如數據庫地址、文件系統地址,日志目錄,資源大小等?
  • 如果想進行卸載,如何做,一個個去刪除?

如果有一個工具能把這些yaml文件放在一個包里,類似npm、maven這樣的包管理工具,然后把關鍵的參數暴露出來,在部署時指定這些參數,執行一鍵部署,在卸載時一鍵卸載是不是很方便,而Helm 就是這樣的工具。JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

什么是Helm

Helm 是一個能夠在 Kubernetes 上打包、部署和管理應用程序的工具,即使是最復雜的 Kubernetes 應用程序它都可以幫助定義,安裝和升級,同時Helm 也是 CNCF 的畢業項目。JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

以下Helm中的概念:JLB28資訊網——每日最新資訊28at.com

  • Helm Charts:預先配置yaml的模板,在這里叫Chart,用于描述 Kubernetes 應用程序的yaml和配置
  • Helm Client:用于與 Helm 交互并管理這些Chart版本的命令行界面
  • Chart 倉庫:管理Chart的倉庫,跟Maven的Nexus一個意思,比如在公司環境構建上傳,在客戶的機房連接到這Chart 倉庫下載Chart,并部署到k8s中。

我們要做什么?

這里我們不介紹Helm 的具體函數,具體可以查官網,這里只講一下如何使用Helm,讓你對Helm有一個認識,知道在什么場景下使用即可,所以我們結合一個示例講一下玩法。JLB28資訊網——每日最新資訊28at.com

示例介紹

有一個運維部署系統,分為前后端,需要部署到客戶機房,在k8s架構如下,可以看到需要8 個文件(其中Istio需要2個yaml文件),下面通過示例一步步創建這個Chart。JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

1.示例創建

我們通過helm create dp-manage命令創建一個Chart,執行完以后,默認會生成一個 nginx 的Chart,如下圖JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

2.關鍵文件說明

(1) Chart.yamlJLB28資訊網——每日最新資訊28at.com

定義了當前 chart版本,以及描述當前chart用途,其中 name 參數表示 chart 名稱,后期上傳下載都會用此名稱JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

(2) values.yamlJLB28資訊網——每日最新資訊28at.com

可變參數,都是在此文件中定義,在yaml模板中引用,比如:image.repository,而引用則通過.Values+變量的名進行引用,如下圖JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

(3) _helpers.tplJLB28資訊網——每日最新資訊28at.com

通用代碼塊定義,類似于freemaker的宏,然后在yaml中通過名稱進行引用,include 修飾的都是,比如dp-manager.selectorLabelsJLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

3.示例修改

由于默認創建一個Nginx 的 Chart 無法滿足我們需求,所以刪除掉多余的文件,并添加運維部署系統的yaml 文件,如下圖:JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

可以看到有8個模板文件,其中backend-dp.yaml定義如下:JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

通過引用values.yml參數和_helpers.tpl的通用代碼塊,最終會生成一個k8s的deployment.yml文件,其他文件就不一一介紹JLB28資訊網——每日最新資訊28at.com

構建與部署

通過前面的介紹,需要把Chart構建好以后,上傳到Chart倉庫,然后在客戶機房連接這個倉庫,進行下載,因此需要一個Chart 倉庫,這里我們使用Harbor ,Habor可以作為容器鏡像倉庫也可以作為 Chart倉庫一舉兩得,推薦使用。JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

1.關聯倉庫

在安裝好 Helm client 以后,在本地執行以下命令,關聯到倉庫:JLB28資訊網——每日最新資訊28at.com

helm repo add myrepo https://host/倉庫地址 /--username sre /--password xxxx

添加完,執行helm repo list可以查到添加的myrepo倉庫:JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

2.構建打包

倉庫關聯好以后,執行helm package dp-manager命令打包,會生成一個dp-manager-1.0.0.tgz包:JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

執行helm cm-push dp-manager-1.0.0.tgz myrepo推送至Harbor 倉庫,myrepo為我們的倉庫名稱,推送完以后登錄Harbor 查看,如下圖:JLB28資訊網——每日最新資訊28at.com

JLB28資訊網——每日最新資訊28at.com

3.拉取部署

Chart 上傳以后,我們在客戶機房安裝Helm Client和Kubectl客戶端,具體安裝方法查詢網上,通過helm repo add關聯Habor倉庫地址,關聯以后執行search 命令查找運維部署系統的Chart:JLB28資訊網——每日最新資訊28at.com

helm search repo  myrepo/dp-manager

JLB28資訊網——每日最新資訊28at.com

Chart查詢到以后,就可以進行部署了,部署分為兩種方式,一種是下載 Chart至本地,修改values.yaml文件在部署,另外一種是不用下載直接指定參數部署,我們使用第二種:JLB28資訊網——每日最新資訊28at.com

helm install dp-manager myrepo/dp-manager  /--set istioGateway.hosts={dpmanager.test.com} /--set pv.log.pvEnabled=false /--set pv.log.type=storageClass /--set pv.log.pvc.storageName=gfs-storage /--set pv.log.pvc.storage=20Gi /--set apollo.cluster=default 

我們在這個命令中指定了域名,存儲大小等參數,這些參數通過values.yaml文件暴露,另外此命令部署運維部署系統至default命令空間,可以通過-n 參數指定命名空間。JLB28資訊網——每日最新資訊28at.com

命令執行完以后,可以通過helm list進行查看,如下圖:JLB28資訊網——每日最新資訊28at.com

helm list

JLB28資訊網——每日最新資訊28at.com

4.更新

假設apollo.cluster值由 default修改為prod,執行upgrade 更新即可:JLB28資訊網——每日最新資訊28at.com

helm upgrade dp-manager myrepo/dp-manager  /--set istioGateway.hosts={dpmanager.test.com} /--set pv.log.pvEnabled=false /--set pv.log.type=storageClass /--set pv.log.pvc.storageName=gfs-storage /--set pv.log.pvc.storage=20Gi /--set apollo.cluster=prod 

5.卸載

卸載非常簡單,執行以下命令即可:JLB28資訊網——每日最新資訊28at.com

helm uninsall dp-manager

本文鏈接:http://www.tebozhan.com/showinfo-26-57887-0.html什么是Helm?它是如何提升云原生應用私有化部署效率的

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 從錯誤中學習:了解 Go 編程的六個壞習慣

下一篇: Golang流水線設計模式實踐

標簽:
  • 熱門焦點
  • 5月安卓手機好評榜:魅族20 Pro奪冠

    性能榜和性價比榜之后,我們來看最后的安卓手機好評榜,數據來源安兔兔評測,收集時間2023年5月1日至5月31日,僅限國內市場。第一名:魅族20 Pro好評率:97.50%不得不感慨魅族老品牌還
  • Raft算法:保障分布式系統共識的穩健之道

    1. 什么是Raft算法?Raft 是英文”Reliable、Replicated、Redundant、And Fault-Tolerant”(“可靠、可復制、可冗余、可容錯”)的首字母縮寫。Raft算法是一種用于在分布式系統
  • 服務存儲設計模式:Cache-Aside模式

    Cache-Aside模式一種常用的緩存方式,通常是把數據從主存儲加載到KV緩存中,加速后續的訪問。在存在重復度的場景,Cache-Aside可以提升服務性能,降低底層存儲的壓力,缺點是緩存和底
  • 得物效率前端微應用推進過程與思考

    一、背景效率工程隨著業務的發展,組織規模的擴大,越來越多的企業開始意識到協作效率對于企業團隊的重要性,甚至是決定其在某個行業競爭中突圍的關鍵,是企業長久生存的根本。得物
  • 微信語音大揭秘:為什么禁止轉發?

    大家好,我是你們的小米。今天,我要和大家聊一個有趣的話題:為什么微信語音不可以轉發?這是一個我們經常在日常使用中遇到的問題,也是一個讓很多人好奇的問題。讓我們一起來揭開這
  • 2天漲粉255萬,又一賽道在抖音爆火

    來源:運營研究社作者 | 張知白編輯 | 楊佩汶設計 | 晏談夢潔這個暑期,旅游賽道徹底火了:有的「地方」火了——貴州村超旅游收入 1 個月超過 12 億;有的「博主」火了&m
  • 自律,給不了Keep自由!

    來源 | 互聯網品牌官作者 | 李大為編排 | 又耳 審核 | 谷曉輝自律能不能給用戶自由暫時不好說,但大概率不能給Keep自由。近日,全球最大的在線健身平臺Keep正式登陸港交所,努力
  • 疑似小米14外觀設計圖曝光:后置相機模組變化不大

    下半年的大幕已經開啟,而誰將成為下半年手機圈的主角就成為了大家關注的焦點,其中被傳有望拿下新一代驍龍8 Gen3旗艦芯片的小米14系列更是備受大家矚
  • 世界人工智能大會國際日開幕式活動在世博展覽館開啟

    30日上午,世界人工智能大會國際日開幕式活動在世博展覽館開啟,聚集國際城市代表、重量級院士專家、國際創新企業代表,共同打造人工智能交流平臺。上海市副市
Top