k8s的包管理工具helm使用简介

 更新时间:2022年03月18日 15:22:58   作者:、重明  
这篇文章主要为大家介绍了k8s的包管理工具helm使用简介,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

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等内容。

以上就是k8s的包管理工具helm使用简介的详细内容,更多关于k8s包管理工具helm的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Kubernetes 中容器跨主机网络

    详解Kubernetes 中容器跨主机网络

    这篇文章主要为大家介绍了Kubernetes中容器跨主机网络是怎么样的,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • K8S中Pod重启策略及重启可能原因详细讲解

    K8S中Pod重启策略及重启可能原因详细讲解

    在k8s集群中当某个pod资源需要重启时,我们只会对其进行删除,由其pod控制器进行重新构建,下面这篇文章主要给大家介绍了关于K8S中Pod重启策略及重启可能原因的相关资料,需要的朋友可以参考下
    2023-05-05
  • 云原生技术kubernetes(K8S)简介

    云原生技术kubernetes(K8S)简介

    这篇文章主要介绍了云原生技术kubernetes的相关资料,帮助大家更好的理解和学习使用K8S,感兴趣的朋友可以了解下
    2021-03-03
  • k8s强制删除一个Pod的详细步骤

    k8s强制删除一个Pod的详细步骤

    有时候遇到node宕机或者失联太久导致pod一直处于Terminating状态,kubectl delete又删不掉,其实这个pod已经确定已经死了,需要强制把他摘掉,这篇文章主要给大家介绍了关于k8s强制删除一个Pod的详细步骤,需要的朋友可以参考下
    2024-11-11
  • 一篇文章读懂K8S的PV和PVC以及实践攻略

    一篇文章读懂K8S的PV和PVC以及实践攻略

    本文详细介绍了Kubernetes中的存储卷(Volume)机制,包括PersistentVolume(PV)、PersistentVolumeClaim(PVC)及其与后端存储的关系,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • K8s如何拉取habor镜像

    K8s如何拉取habor镜像

    这篇文章主要介绍了K8s如何拉取habor镜像,在daemon.json中添加仓库地址,需要在创建资源对象所在的节点进行添加,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-04-04
  • Rainbond功能架构及应用管理官方文档介绍

    Rainbond功能架构及应用管理官方文档介绍

    这篇文章主要为大家介绍了Rainbond功能机构及使用官方文档,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • 不同k8s集群间服务如何相互访问实现详解

    不同k8s集群间服务如何相互访问实现详解

    这篇文章主要为大家介绍了不同k8s集群间服务如何相互访问实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • Kubernetes组件和架构简介

    Kubernetes组件和架构简介

    Kubernetes是google开源的容器编排工具,本质是一组服务器集群,在集群的各个节点上运行程序来进行容器进行管理,最终实现资源管理智能化、自动化,这篇文章主要介绍了Kubernetes组件和架构简介,需要的朋友可以参考下
    2023-09-09
  • KVM虚拟化技术之virt-manager使用及KVM虚拟化平台网络模型介绍

    KVM虚拟化技术之virt-manager使用及KVM虚拟化平台网络模型介绍

    这篇文章主要介绍了KVM虚拟化技术之virt-manager使用及KVM虚拟化平台网络模型介绍,需要的朋友可以参考下
    2016-10-10

最新评论