日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

k8s的包管理工具helm使用簡介_云其它

作者:、重明 ? 更新時間: 2022-05-21 編程語言

Helm Helm是什么?

Helm是Kubernetes的軟件包管理器,類似于yum、apt等包管理工具一樣,Helm可以輕松的一鍵式部署出我們想要的應用。

編寫Helm有三個主要目標:

1.輕松地實現從“從零到Kubernetes”;

2.提供與操作系統類似的軟件包管理系統;

3.強調將應用程序部署到Kubernetes的安全性和可配置性。

Helm中一個很重要的元素:Chart

chart是Helm的軟件包,是航海圖的意思。chart是遵循chart規范的一組文件和目錄,用于定義要安裝到kubernetes中的資源。

chart中包含一個名為chart.yaml的文件,它描述了此chart的版本、名稱、說明和作者的一些信息。

chart包含模板,即kubernetes清單。

chart中有一個提供默認配置的文件名字為values.yaml。此文件包含安裝和升級期間可覆蓋的參數,可以進行修改。

當你所見到一個chart的時候,它可能是一個壓縮包,像這個樣子ingress-nginx-4.0.17.tgz,也可以是一個目錄ingress-nginx。

它的目錄構造可能是這個樣子:

[root@k8s-master01 ingress-nginx]# ls
CHANGELOG.md  Chart.yaml  ci  OWNERS  README.md  README.md.gotmpl  templates  values.yaml

當一個chart被安裝時,它的流程可能是這個樣子的:

  • Helm讀取chart
  • 將定義的值發送到模板,生成kubernetes清單
  • 清單被發送到kubernetes
  • kubernetes根據清單在集群中創建請求的資源

使用Helm

Helm擁有v2和v3版本,這里就忽略v2了,因為我是用的是v3。
Helm提供了一個名為helm的命令行工具,我們使用它進行操作。

安裝helm客戶端注意點

安裝helm時要注意一點,helm的版本要匹配kubernetes的版本,如下圖:
具體詳細版本對應參考: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

安裝結束,灰常簡單

添加chart存儲庫

只有一個客戶端工具是沒法干活的,我們還需要知道它的chart包從哪來,相當于yum安裝的軟件源。

  • 添加一個官方存儲庫
  • 注意:add 后面的名稱是自定義的,方便你記住,不是固定的
helm repo add bitnami https://charts.bitnami.com/bitnami

# 我的環境添加的存儲庫
[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    

查看是否添加成功?其實上面已經演示了,這條命令可以查看你添加過的存儲庫存不存在

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

當然你也可以嘗試搜索來自網絡中的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的前提是需要有一個命名空間,當然默認的也可以,為了區分還是創建一個

下面創建一個名為mysql的命名空間

kubectl create ns mysql

然后安裝chart軟件包

hellm install my-mysql bitnami/mysql -n mysql

說一下這條命令的含義:

  • my-mysql代表我運行這個chart的名字,是自定義的
  • bitnami/mysql:是存儲庫的名字加軟件包名
  • -n mysql:是指定命名空間的名字

安裝完可以查看一下是否安裝成功:

需要注意的是:

  • 不管你的Pod資源能不能創建成功,只要helm創建成功了那么這個實例就會存在
  • 同一命名空間內實例名稱唯一,再次創建同名稱的實例會報錯
[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

這條命令可以查看你創建chart 的一些狀態:

[root@k8s-master01 ~]# helm status my-mysql -n mysql

當你不想要這個chart的時候也可以選擇卸載掉:

[root@k8s-master01 ~]# helm uninstall my-mysql -n mysql

自定義配置安裝

默認安裝的配置往往不是我們需要的,那么我們可以將chart包pull下來,然后進行修改參數后再執行。

將chart包pull下來,進行解壓,可以看到包內的基本信息

[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文件,這里就不修改了然后執行修改后的values.yaml文件,因為你執行的是本地文件,就不用加源地址了

[root@k8s-master01 mysql]# helm install mysql-01 -n mysql .

如果你已經運行了這個chart,然后又修改了yaml文件,你可以用這條命令進行更新

[root@k8s-master01 mysql]# helm upgrade --install mysql-01 -n mysql .

就到這吧,只說一下helm的基本使用。
以后會寫chart的使用,自己創建chart等內容。

原文鏈接:https://yyang.blog.csdn.net/article/details/123027203

欄目分類
最近更新