成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發(fā) 云原生
如果有一個工具能把這些yaml文件放在一個包里,類似npm、maven這樣的包管理工具,然后把關鍵的參數暴露出來,在部署時指定這些參數,執(zhí)行一鍵部署,在卸載時一鍵卸載是不是很方便,而Helm 就是這樣的工具。

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

首先讓我們先思考一下:

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

如果有一個工具能把這些yaml文件放在一個包里,類似npm、maven這樣的包管理工具,然后把關鍵的參數暴露出來,在部署時指定這些參數,執(zhí)行一鍵部署,在卸載時一鍵卸載是不是很方便,而Helm 就是這樣的工具。

什么是Helm

Helm 是一個能夠在 Kubernetes 上打包、部署和管理應用程序的工具,即使是最復雜的 Kubernetes 應用程序它都可以幫助定義,安裝和升級,同時Helm 也是 CNCF 的畢業(yè)項目。

以下Helm中的概念:

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

我們要做什么?

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

示例介紹

有一個運維部署系統,分為前后端,需要部署到客戶機房,在k8s架構如下,可以看到需要8 個文件(其中Istio需要2個yaml文件),下面通過示例一步步創(chuàng)建這個Chart。

1.示例創(chuàng)建

我們通過helm create dp-manage命令創(chuàng)建一個Chart,執(zhí)行完以后,默認會生成一個 nginx 的Chart,如下圖

2.關鍵文件說明

(1) Chart.yaml

定義了當前 chart版本,以及描述當前chart用途,其中 name 參數表示 chart 名稱,后期上傳下載都會用此名稱

(2) values.yaml

可變參數,都是在此文件中定義,在yaml模板中引用,比如:image.repository,而引用則通過.Values+變量的名進行引用,如下圖

(3) _helpers.tpl

通用代碼塊定義,類似于freemaker的宏,然后在yaml中通過名稱進行引用,include 修飾的都是,比如dp-manager.selectorLabels

3.示例修改

由于默認創(chuàng)建一個Nginx 的 Chart 無法滿足我們需求,所以刪除掉多余的文件,并添加運維部署系統的yaml 文件,如下圖:

可以看到有8個模板文件,其中backend-dp.yaml定義如下:

通過引用values.yml參數和_helpers.tpl的通用代碼塊,最終會生成一個k8s的deployment.yml文件,其他文件就不一一介紹

構建與部署

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

1.關聯倉庫

在安裝好 Helm client 以后,在本地執(zhí)行以下命令,關聯到倉庫:

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

添加完,執(zhí)行helm repo list可以查到添加的myrepo倉庫:

2.構建打包

倉庫關聯好以后,執(zhí)行helm package dp-manager命令打包,會生成一個dp-manager-1.0.0.tgz包:

執(zhí)行helm cm-push dp-manager-1.0.0.tgz myrepo推送至Harbor 倉庫,myrepo為我們的倉庫名稱,推送完以后登錄Harbor 查看,如下圖:

3.拉取部署

Chart 上傳以后,我們在客戶機房安裝Helm Client和Kubectl客戶端,具體安裝方法查詢網上,通過helm repo add關聯Habor倉庫地址,關聯以后執(zhí)行search 命令查找運維部署系統的Chart:

helm search repo  myrepo/dp-manager

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

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 參數指定命名空間。

命令執(zhí)行完以后,可以通過helm list進行查看,如下圖:

helm list

4.更新

假設apollo.cluster值由 default修改為prod,執(zhí)行upgrade 更新即可:

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.卸載

卸載非常簡單,執(zhí)行以下命令即可:

helm uninsall dp-manager
責任編輯:趙寧寧 來源: 架構成長指南
相關推薦

2023-10-28 09:08:19

微服務saas私有化

2023-03-16 09:27:07

PUE電力數據

2025-04-29 08:04:10

DeepSeek私有化部署數字化轉型

2023-05-15 07:33:06

云原生自身業(yè)務云廠商

2025-05-14 02:00:00

DeepSeek私有化部署

2024-08-19 00:25:00

2020-09-11 08:41:50

域名系統DNS網絡

2013-04-22 17:14:12

2018-01-10 10:52:46

數據

2013-09-25 10:46:10

2024-04-08 14:29:45

AI工廠數據中心

2024-09-03 10:15:21

2023-06-01 11:36:41

ChatGLM-6B

2015-08-17 10:26:02

云計算云應用程序十二要素

2017-08-14 16:14:57

云原生容器云平臺

2013-03-26 09:40:58

戴爾私有化收購

2022-04-25 12:39:57

云原生云計算

2021-02-05 08:42:21

云原生系統方式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天看天天干 | 一区二区国产精品 | 亚洲视频一区在线观看 | 久色网| 国产一级电影在线观看 | 在线 丝袜 欧美 日韩 制服 | 99婷婷| 9久久婷婷国产综合精品性色 | 国产在线不卡 | 国产美女一区二区 | 久久久精品一区二区三区 | 欧美日韩国产中文字幕 | av一区二区三区四区 | 韩国毛片一区二区三区 | 无码日韩精品一区二区免费 | 久久影院一区 | 艹逼网 | 国产欧美日韩精品一区二区三区 | 亚洲国产成人精品久久久国产成人一区 | 欧美a区 | 亚洲天堂一区二区 | 日韩一区在线播放 | 日韩1区| 久综合| 色欧美综合 | 国产精品九九九 | 日日艹夜夜艹 | 蜜桃av鲁一鲁一鲁一鲁 | 手机av在线| 色婷婷亚洲国产女人的天堂 | av一区二区三区在线观看 | 日韩一区二区在线观看 | 黄网站在线观看 | 伊人伊人| 国产欧美一级二级三级在线视频 | 日本高清中文字幕 | 小川阿佐美pgd-606在线 | 男人天堂色 | 色婷婷av一区二区三区软件 | 亚洲精品国产偷自在线观看 | 日日综合 |