k8s的包管理工具helm使用簡介
Helm Helm是什么?
Helm是Kubernetes的軟件包管理器,類似于yum、apt等包管理工具一樣,Helm可以輕松的一鍵式部署出我們想要的應(yīng)用。
編寫Helm有三個主要目標(biāo):
1.輕松地實現(xiàn)從“從零到Kubernetes”;
2.提供與操作系統(tǒng)類似的軟件包管理系統(tǒng);
3.強調(diào)將應(yīng)用程序部署到Kubernetes的安全性和可配置性。
Helm中一個很重要的元素:Chart
chart是Helm的軟件包,是航海圖的意思。chart是遵循chart規(guī)范的一組文件和目錄,用于定義要安裝到kubernetes中的資源。
chart中包含一個名為chart.yaml的文件,它描述了此chart的版本、名稱、說明和作者的一些信息。
chart包含模板,即kubernetes清單。
chart中有一個提供默認配置的文件名字為values.yaml。此文件包含安裝和升級期間可覆蓋的參數(shù),可以進行修改。
當(dāng)你所見到一個chart的時候,它可能是一個壓縮包,像這個樣子ingress-nginx-4.0.17.tgz,也可以是一個目錄ingress-nginx。
它的目錄構(gòu)造可能是這個樣子:
[root@k8s-master01 ingress-nginx]# ls CHANGELOG.md Chart.yaml ci OWNERS README.md README.md.gotmpl templates values.yaml
當(dāng)一個chart被安裝時,它的流程可能是這個樣子的:
- Helm讀取chart
- 將定義的值發(fā)送到模板,生成kubernetes清單
- 清單被發(fā)送到kubernetes
- kubernetes根據(jù)清單在集群中創(chuàng)建請求的資源
使用Helm
Helm擁有v2和v3版本,這里就忽略v2了,因為我是用的是v3。
Helm提供了一個名為helm的命令行工具,我們使用它進行操作。
安裝helm客戶端注意點
安裝helm時要注意一點,helm的版本要匹配kubernetes的版本,如下圖:
具體詳細版本對應(yīng)參考:https://helm.sh/docs/topics/version_skew/
通過二進制的方式安裝helm客戶端:
詳細說明或其他方式安裝參考:https://helm.sh/docs/intro/install/官方文檔
目前到我安裝的時候helm的最新版本為3.8.0,而我的k8s集群版本為1.23.x是完全符合的。
下載二進制包
wget https://get.helm.sh/helm-v3.8.0-linux-amd64.tar.gz
解壓二進制包
tar xf helm-v3.8.0-linux-amd64.tar.gz
將解壓后目錄中的helm目錄移動到/usr/local/bin/helm下
mv linux-amd64/helm /usr/local/bin/helm
安裝結(jié)束,灰常簡單
添加chart存儲庫
只有一個客戶端工具是沒法干活的,我們還需要知道它的chart包從哪來,相當(dāng)于yum安裝的軟件源。
- 添加一個官方存儲庫
- 注意:add 后面的名稱是自定義的,方便你記住,不是固定的
helm repo add bitnami https://charts.bitnami.com/bitnami # 我的環(huán)境添加的存儲庫 [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
查看是否添加成功?其實上面已經(jīng)演示了,這條命令可以查看你添加過的存儲庫存不存在
helm repo list
搜索chart存儲庫
添加了庫后,怎么能知道我想安裝的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)然你也可以嘗試搜索來自網(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 ...
安裝一個chart
安裝chart的前提是需要有一個命名空間,當(dāng)然默認的也可以,為了區(qū)分還是創(chuàng)建一個
下面創(chuàng)建一個名為mysql的命名空間
kubectl create ns mysql
然后安裝chart軟件包
hellm install my-mysql bitnami/mysql -n mysql
說一下這條命令的含義:
- my-mysql代表我運行這個chart的名字,是自定義的
- bitnami/mysql:是存儲庫的名字加軟件包名
- -n mysql:是指定命名空間的名字
安裝完可以查看一下是否安裝成功:
需要注意的是:
- 不管你的Pod資源能不能創(chuàng)建成功,只要helm創(chuàng)建成功了那么這個實例就會存在
- 同一命名空間內(nèi)實例名稱唯一,再次創(chuàng)建同名稱的實例會報錯
[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)你不想要這個chart的時候也可以選擇卸載掉:
[root@k8s-master01 ~]# helm uninstall my-mysql -n mysql
自定義配置安裝
默認安裝的配置往往不是我們需要的,那么我們可以將chart包pull下來,然后進行修改參數(shù)后再執(zhí)行。
將chart包pull下來,進行解壓,可以看到包內(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
文件,因為你執(zhí)行的是本地文件,就不用加源地址了
[root@k8s-master01 mysql]# helm install mysql-01 -n mysql .
如果你已經(jīng)運行了這個chart,然后又修改了yaml文件,你可以用這條命令進行更新
[root@k8s-master01 mysql]# helm upgrade --install mysql-01 -n mysql .
就到這吧,只說一下helm的基本使用。
以后會寫chart的使用,自己創(chuàng)建chart等內(nèi)容。
以上就是k8s的包管理工具helm使用簡介的詳細內(nèi)容,更多關(guān)于k8s包管理工具helm的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
玩客云內(nèi)置EMMC存儲刷入Armbian系統(tǒng)(圖文詳解)
Armbian是其他項目可以信賴的單板計算機(SBC)的基本操作系統(tǒng)平臺,接下來通過本文給大家介紹玩客云內(nèi)置EMMC存儲刷入Armbian系統(tǒng),需要的朋友可以參考下2022-05-05刪除Helm使用時關(guān)于kubernetes文件的警告問題
這篇文章主要介紹了刪除Helm使用時關(guān)于kubernetes文件的警告問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11IoT?邊緣集群Kubernetes?Events告警通知進一步配置詳解
這篇文章主要為大家介紹了IoT?邊緣集群Kubernetes?Events告警通知進一步配置詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02