k8s的包管理工具h(yuǎn)elm使用簡(jiǎn)介
Helm Helm是什么?
Helm是Kubernetes的軟件包管理器,類似于yum、apt等包管理工具一樣,Helm可以輕松的一鍵式部署出我們想要的應(yīng)用。
編寫Helm有三個(gè)主要目標(biāo):
1.輕松地實(shí)現(xiàn)從“從零到Kubernetes”;
2.提供與操作系統(tǒng)類似的軟件包管理系統(tǒng);
3.強(qiáng)調(diào)將應(yīng)用程序部署到Kubernetes的安全性和可配置性。
Helm中一個(gè)很重要的元素:Chart
chart是Helm的軟件包,是航海圖的意思。chart是遵循chart規(guī)范的一組文件和目錄,用于定義要安裝到kubernetes中的資源。
chart中包含一個(gè)名為chart.yaml的文件,它描述了此chart的版本、名稱、說(shuō)明和作者的一些信息。
chart包含模板,即kubernetes清單。
chart中有一個(gè)提供默認(rèn)配置的文件名字為values.yaml。此文件包含安裝和升級(jí)期間可覆蓋的參數(shù),可以進(jìn)行修改。
當(dāng)你所見(jiàn)到一個(gè)chart的時(shí)候,它可能是一個(gè)壓縮包,像這個(gè)樣子ingress-nginx-4.0.17.tgz,也可以是一個(gè)目錄ingress-nginx。
它的目錄構(gòu)造可能是這個(gè)樣子:
[root@k8s-master01 ingress-nginx]# ls CHANGELOG.md Chart.yaml ci OWNERS README.md README.md.gotmpl templates values.yaml
當(dāng)一個(gè)chart被安裝時(shí),它的流程可能是這個(gè)樣子的:
- Helm讀取chart
- 將定義的值發(fā)送到模板,生成kubernetes清單
- 清單被發(fā)送到kubernetes
- kubernetes根據(jù)清單在集群中創(chuàng)建請(qǐng)求的資源
使用Helm
Helm擁有v2和v3版本,這里就忽略v2了,因?yàn)槲沂怯玫氖莢3。
Helm提供了一個(gè)名為helm的命令行工具,我們使用它進(jìn)行操作。
安裝helm客戶端注意點(diǎn)
安裝helm時(shí)要注意一點(diǎn),helm的版本要匹配kubernetes的版本,如下圖:
具體詳細(xì)版本對(duì)應(yīng)參考:https://helm.sh/docs/topics/version_skew/
通過(guò)二進(jìn)制的方式安裝helm客戶端:
詳細(xì)說(shuō)明或其他方式安裝參考:https://helm.sh/docs/intro/install/官方文檔
目前到我安裝的時(shí)候helm的最新版本為3.8.0,而我的k8s集群版本為1.23.x是完全符合的。
下載二進(jìn)制包
wget https://get.helm.sh/helm-v3.8.0-linux-amd64.tar.gz
解壓二進(jìn)制包
tar xf helm-v3.8.0-linux-amd64.tar.gz
將解壓后目錄中的helm目錄移動(dòng)到/usr/local/bin/helm下
mv linux-amd64/helm /usr/local/bin/helm
安裝結(jié)束,灰常簡(jiǎn)單
添加chart存儲(chǔ)庫(kù)
只有一個(gè)客戶端工具是沒(méi)法干活的,我們還需要知道它的chart包從哪來(lái),相當(dāng)于yum安裝的軟件源。
- 添加一個(gè)官方存儲(chǔ)庫(kù)
- 注意:add 后面的名稱是自定義的,方便你記住,不是固定的
helm repo add bitnami https://charts.bitnami.com/bitnami # 我的環(huán)境添加的存儲(chǔ)庫(kù) [root@k8s-master01 ~]# helm repo list NAME URL ingress-nginx https://kubernetes.github.io/ingress-nginx nginx-stable https://helm.nginx.com/stable bitnami https://charts.bitnami.com/bitnami
查看是否添加成功?其實(shí)上面已經(jīng)演示了,這條命令可以查看你添加過(guò)的存儲(chǔ)庫(kù)存不存在
helm repo list
搜索chart存儲(chǔ)庫(kù)
添加了庫(kù)后,怎么能知道我想安裝的chart包存不存在呢?使用下面這條命令
[root@k8s-master01 ~]# helm search repo apache NAME CHART VERSION APP VERSION DESCRIPTION bitnami/apache 9.0.2 2.4.52 Apache HTTP Server is an open-source HTTP serve... bitnami/airflow 12.0.1 2.2.3 Apache Airflow is a tool to express and execute...
當(dāng)然你也可以嘗試搜索來(lái)自網(wǎng)絡(luò)中的chart包:
[root@k8s-master01 ~]# helm search hub wordpress URL CHART VERSION APP VERSION DESCRIPTION https://artifacthub.io/packages/helm/kube-wordp... 0.1.0 1.1 this is my wordpress package https://artifacthub.io/packages/helm/bitnami/wo... 13.0.11 5.9.0 WordPress is the world's most popular blogging ...
安裝一個(gè)chart
安裝chart的前提是需要有一個(gè)命名空間,當(dāng)然默認(rèn)的也可以,為了區(qū)分還是創(chuàng)建一個(gè)
下面創(chuàng)建一個(gè)名為mysql的命名空間
kubectl create ns mysql
然后安裝chart軟件包
hellm install my-mysql bitnami/mysql -n mysql
說(shuō)一下這條命令的含義:
- my-mysql代表我運(yùn)行這個(gè)chart的名字,是自定義的
- bitnami/mysql:是存儲(chǔ)庫(kù)的名字加軟件包名
- -n mysql:是指定命名空間的名字
安裝完可以查看一下是否安裝成功:
需要注意的是:
- 不管你的Pod資源能不能創(chuàng)建成功,只要helm創(chuàng)建成功了那么這個(gè)實(shí)例就會(huì)存在
- 同一命名空間內(nèi)實(shí)例名稱唯一,再次創(chuàng)建同名稱的實(shí)例會(huì)報(bào)錯(cuò)
[root@k8s-master01 ~]# helm list -n mysql NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION my-mysql mysql 1 2022-02-17 14:32:38.423267837 +0800 CST deployed mysql-8.8.23 8.0.28
這條命令可以查看你創(chuàng)建chart 的一些狀態(tài):
[root@k8s-master01 ~]# helm status my-mysql -n mysql
當(dāng)你不想要這個(gè)chart的時(shí)候也可以選擇卸載掉:
[root@k8s-master01 ~]# helm uninstall my-mysql -n mysql
自定義配置安裝
默認(rèn)安裝的配置往往不是我們需要的,那么我們可以將chart包pull下來(lái),然后進(jìn)行修改參數(shù)后再執(zhí)行。
將chart包pull下來(lái),進(jìn)行解壓,可以看到包內(nèi)的基本信息
[root@k8s-master01 ~]# helm pull bitnami/mysql [root@k8s-master01 ~]# tar xf mysql-8.8.23.tgz -C /temp/ [root@k8s-master01 ~]# cd /temp/mysql/ [root@k8s-master01 mysql]# ls Chart.lock charts Chart.yaml ci README.md templates values.schema.json values.yaml
可以修改他的values.yaml
文件,這里就不修改了然后執(zhí)行修改后的values.yaml
文件,因?yàn)槟銏?zhí)行的是本地文件,就不用加源地址了
[root@k8s-master01 mysql]# helm install mysql-01 -n mysql .
如果你已經(jīng)運(yùn)行了這個(gè)chart,然后又修改了yaml文件,你可以用這條命令進(jìn)行更新
[root@k8s-master01 mysql]# helm upgrade --install mysql-01 -n mysql .
就到這吧,只說(shuō)一下helm的基本使用。
以后會(huì)寫chart的使用,自己創(chuàng)建chart等內(nèi)容。
以上就是k8s的包管理工具h(yuǎn)elm使用簡(jiǎn)介的詳細(xì)內(nèi)容,更多關(guān)于k8s包管理工具h(yuǎn)elm的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
K8s實(shí)戰(zhàn)教程之容器和?Pods資源分配問(wèn)題
這篇文章主要介紹了K8s實(shí)戰(zhàn)教程之容器和?Pods資源分配,本篇文章通過(guò)配置集群中運(yùn)行的容器的?CPU?請(qǐng)求和限制,你可以有效利用集群上可用的?CPU?資源,通過(guò)將?Pod?CPU?請(qǐng)求保持在較低水平,可以使?Pod?更有機(jī)會(huì)被調(diào)度,需要的朋友可以參考下2022-07-07k8s編排之StatefulSet知識(shí)點(diǎn)詳解二
這篇文章主要為大家介紹了k8s編排之StatefulSet知識(shí)點(diǎn)的部分詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01玩客云內(nèi)置EMMC存儲(chǔ)刷入Armbian系統(tǒng)(圖文詳解)
Armbian是其他項(xiàng)目可以信賴的單板計(jì)算機(jī)(SBC)的基本操作系統(tǒng)平臺(tái),接下來(lái)通過(guò)本文給大家介紹玩客云內(nèi)置EMMC存儲(chǔ)刷入Armbian系統(tǒng),需要的朋友可以參考下2022-05-05刪除Helm使用時(shí)關(guān)于kubernetes文件的警告問(wèn)題
這篇文章主要介紹了刪除Helm使用時(shí)關(guān)于kubernetes文件的警告問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-11-11IoT?邊緣集群Kubernetes?Events告警通知進(jìn)一步配置詳解
這篇文章主要為大家介紹了IoT?邊緣集群Kubernetes?Events告警通知進(jìn)一步配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02k8s編排之StatefulSet知識(shí)點(diǎn)詳解一
這篇文章主要為大家介紹了k8s編排之StatefulSet知識(shí)點(diǎn)的部分詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01