目錄
一、helm概念
1、什么是helm
2、helm的概念:
二、實(shí)驗(yàn)部署:
1、安裝helm:
2、對(duì)chart倉(cāng)庫(kù)的基本使用:
2.1、查看和更新chart倉(cāng)庫(kù)
2.2、安裝chart
2.3、卸載chart:
3、helm自定義模版:
3.1、使用官方模版
3.2、使用自定義模版
1、方法1:基于目錄安裝:
2、方法2:基于目錄打包好的壓縮包安裝
4、chart的回滾:
5、Helm 的私有倉(cāng)庫(kù)-Habor
三、總結(jié):
helm的常用命令:
一、helm概念
1、什么是helm
?每個(gè)成功的軟件平臺(tái)都有一個(gè)優(yōu)秀的打包系統(tǒng),比如Debian、Ubuntu 的 apt,RedHat、CentOS 的 yum。Helm 則是 Kubernetes上 的包管理器,方便我們更好的管理應(yīng)用。
在沒(méi)有這個(gè)helm之前,deployment service ingress helm的作用就是通過(guò)打包的方式,把deployment service ingress 這些打包在一塊,一鍵式部署服務(wù),類(lèi)似于yum
官方提供的一個(gè)類(lèi)似于安裝倉(cāng)庫(kù)的功能,可以實(shí)現(xiàn)一鍵化部署應(yīng)用。
2、helm的概念:
三個(gè)部分組成:
cahrt:helm軟件包,service ingress ,定義好的yaml資源,類(lèi)似于yum的rpm包。
Release:可以理解為版本,也可以理解為在安裝過(guò)程中,給這個(gè)部署的應(yīng)用起一個(gè)名稱(chēng)。
Repository:倉(cāng)庫(kù),提供一個(gè)服務(wù)器,這個(gè)服務(wù)器中包含chart的資源。yaml的資源保存地址。
二、實(shí)驗(yàn)部署:
1、安裝helm:
將helm-v3.12.0-linux-amd64.tar.gz上傳到/opt/helm中
cd linux-amd64/
mv helm /usr/local/bin/helm
helm version
#查看helm版本
vim /etc/profile
#設(shè)置環(huán)境變量,系統(tǒng)識(shí)別helm命令
source <(helm completion bash)
添加常用的倉(cāng)庫(kù):
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add incubator https://charts.helm.sh/incubator
2、對(duì)chart倉(cāng)庫(kù)的基本使用:
2.1、查看和更新chart倉(cāng)庫(kù)
helm repo list 查看倉(cāng)庫(kù)列表
helm repo update 更新倉(cāng)庫(kù)資源
helm search repo bitnami | grep nginx 查看指定倉(cāng)庫(kù),是否有nginx資源
2.2、安裝chart
helm install my-nginx bitnami/nginx -n default
helm install:安裝
my-nginx:release安裝的名稱(chēng)或者版本
bitanami/nginx:bitnami倉(cāng)庫(kù)名,nginx就是chart一系列yaml文件的集合
- n:指定命名空間安裝
helm install bitnami/nginx --generate-name
#--generate-name:隨機(jī)生成一個(gè)release名稱(chēng)
kubectl edit svc my-nginx
可以改service類(lèi)型
2.3、卸載chart:
helm uninstall my-nginx
卸載之后,pod、deployment和service都會(huì)被刪除
如何在helm當(dāng)中自定義模板
3、helm自定義模版:
根據(jù)自己的需求,定義chart。然后部署到
實(shí)驗(yàn)舉例:
3.1、使用官方模版
使用官方模版,這是官方提供的安裝包
helm pull stable/mysql
tar -xf mysql-1.6.9.tgz
charts:用于存儲(chǔ)依賴(lài)環(huán)境,如果這個(gè)chart依賴(lài)于其他chart,依賴(lài)文件會(huì)保存在這個(gè)目錄中
chart.yaml:helm chart的元數(shù)據(jù)文件,包含了這個(gè)chart的名稱(chēng)版本以及維護(hù)者信息等
Template:包含清單模版的目錄
deployment.yaml:部署應(yīng)用的模版文件
helpers.tpl:幫助文檔,告訴用戶(hù)如何定義模版的值
hpa.yaml:定義了應(yīng)用程序副本數(shù)的擴(kuò)縮容行為
ingress.yaml:定義外部流量如何轉(zhuǎn)發(fā)到應(yīng)用程序
NOTES.txt:注意事項(xiàng)
serviceaccount.yaml:應(yīng)用程序的服務(wù)賬號(hào)
service.yaml:集群內(nèi)部的訪(fǎng)問(wèn)配置
tests/test-connection.yaml:測(cè)試目錄和文件,部署完chart之后,可以用來(lái)測(cè)試的文件
values.yaml:核心文件,自定義的值,都是通過(guò)values里面的配置,把我們的數(shù)據(jù)覆蓋到安裝的chart
3.2、使用自定義模版
我們可以自己自定義一個(gè)安裝包
helm create nginx
定義配置文件:
vim Chart.yaml
helm lint nginx
檢測(cè)
helm package nginx
#將自定義的chart文件打包
helm install nginx-11 ./nginx --dry-run --debug
#測(cè)試,不會(huì)部署到集群中
helm install:安裝chart
nginx-11:release版本號(hào),名稱(chēng)
./nginx:使用當(dāng)前目錄下的nginx chart
--dry-run --debug:這個(gè)chart不會(huì)被部署到集群中,用于參數(shù)驗(yàn)證,測(cè)試chart的配置是否正確
1、方法1:基于目錄安裝:
helm install nginx-11 ./nginx -n default.
#運(yùn)行chart,并且部署
kubectl get pod,svc,ingress
可以用目錄安裝,也能使用打包壓縮文件安裝
修改chart之后,重新部署、回滾、如何上傳到harbor倉(cāng)庫(kù)
2、方法2:基于目錄打包好的壓縮包安裝
helm uninstall nginx-11
#先卸載
helm install nginx-11 /opt/helm/nginx-0.1.0.tgz -n default
#使用壓縮包安裝
修改chart之后如何重新部署
vim values.yaml
修改一些內(nèi)容做為區(qū)分
service:
type: NodePort
port: 80
nodePort: 31000
ingress:
enabled: false
vim service.yaml
nodePort: {{.Values.service.nodePort}}
#go語(yǔ)言的語(yǔ)法將values.yaml中定義的端口傳到service.yaml文件中
vim Chart.yaml
version: 0.2.0
#修改版本號(hào)做區(qū)分
helm upgrade nginx-11 nginx
vim service.yaml
vim values.yaml
?
helm upgrade nginx-11 nginx
#重載運(yùn)行
curl 20.0.0.61:31000
訪(fǎng)問(wèn)測(cè)試
4、chart的回滾:
helm history nginx-11
#查看chart的回滾點(diǎn)
?
helm rollback nginx-11 1
#回滾
5、Helm 的私有倉(cāng)庫(kù)-Habor
如何上傳到harbor倉(cāng)庫(kù):
上傳到harbor:
harbor服務(wù)節(jié)點(diǎn)操作:
vim harbor.yml
#執(zhí)行重新安裝倉(cāng)庫(kù)
harbor_admin_password: 123456
chart:
absolute_url: enabled
#在chart當(dāng)中使用絕對(duì)路徑的URL例如:http://hub.test.com/charts
$chart上傳不支持相對(duì)路徑
./install.sh
#重新安裝harbor
?
以下操作在master1上操作
?mkdir -p ~/.local/share/helm/plugins/helm-push
?#創(chuàng)建一個(gè)helm插件的目錄
?docker login -u admin -p 123456 https://hub.test.com
?#登錄docker-hub倉(cāng)庫(kù)測(cè)試
??
helm package nginx
#打包nginx為壓縮包
上傳helm-push解壓:
tar -xf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push/
在harbor上創(chuàng)建新項(xiàng)目,權(quán)限是公開(kāi)
上傳chart到harbor倉(cāng)庫(kù)
helm push nginx-0.2.0.tgz oci://hub.test.com/charts --insecure-skip-tls-verify
#--insecure-skip-tls-verify:跳過(guò)tls驗(yàn)證
測(cè)試從倉(cāng)庫(kù)下載,安裝
helm pull oci://hub.test.com/charts/nginx --version 0.2.0 --insecure-skip-tls-verify
--insecure-skip-tls-verify 跳過(guò)tls驗(yàn)證
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-817999.html
三、總結(jié):
helm就是一鍵部署微服務(wù)的工具,可以跳過(guò)繁瑣的自定義yaml過(guò)程,一鍵式的拉取和部署好所有的自定義或者模版定義的服務(wù)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-817999.html
helm的常用命令:
helm repo add 倉(cāng)庫(kù)名 url地址(4個(gè))
#添加倉(cāng)庫(kù)
helm repo update 倉(cāng)庫(kù)名
#不加倉(cāng)庫(kù)名,更新所有倉(cāng)庫(kù)
helm repo list
#倉(cāng)庫(kù)列表
helm repo remove 倉(cāng)庫(kù)名
#刪除倉(cāng)庫(kù)
helm show chart stable/nginx
#查看指定倉(cāng)庫(kù)nginx的信息
helm show all stable/nginx
#查看詳細(xì)信息
helm install nginx-11 stable/nginx -n lucky-cloud
#安裝chart,安裝官網(wǎng)的默認(rèn)版本
helm uninstall nginx-11
#刪除安裝好的chart
helm list
#查看已安裝的chart
自定義模版:
helm create nginx
#創(chuàng)建一個(gè)自定義的chart模版。核心文件values.yaml,這里面的值會(huì)傳給Template里面的yaml文件
helm install nginx-11 ./nginx
helm install nginx-11 ./nginx-0.1.0.tgz
如何打包創(chuàng)建好的chart:
helm package nginx
回滾:
helm history nginx-11
helm rollback nginx-11 標(biāo)簽(1/2/3)
到了這里,關(guān)于【K8S 云原生】K8S的包包管理器-helm的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!