【kubernetes】k8s中包管理工具-----Helm 超详细解读

目录

一、Helm

1.1什么是 Helm

1.2Helm 有三个重要的概念

1.2.1Chart

1.2.2Repository(仓库)

1.2.3Release

1.3Helm3 与 Helm2 的区别

二、Helm 部署

2.1安装 helm

2.2命令补全 

2.3使用 helm 安装 Chart

2.3.1添加常用的 chart 仓库

2.3.2更新 charts 列表

2.3.3查看 stable 仓库可用的 charts 列表

2.3.4删除 incubator 仓库

2.3.5搜索Bitnami官方Helm仓库中关于Nginx的chart 

2.3.6查看 chart 信息 

2.3.6.1查看指定 chart 的基本信息

2.3.6.2获取指定 chart 的所有信息 

2.3.7安装 chart 

2.3.8查看所有 release

2.3.9查看指定的 release 状态

2.3.10删除指定的 release

三、Helm 自定义模板

3.1拉取 chart

3.2查看Chart结构

3.2.1   Helm Chart结构

3.2.1.1Chart.yaml

3.2.1.2模板

3.2.1.3具体模板文件

3.3创建自定义的 chart

3.4修改 chart 

3.5打包chart和部署chart 

3.6部署 ingress

3.7升级Helm Chart 

3.8回滚 

3.8.1回滚Helm Release

 3.8.2使用-set参数部署或升级Release

四、Helm 仓库

4.1安装 harbor

4.2安装 push 插件 

4.2.1在线安装

4.2.2离线安装

4.3配置Helm仓库 

4.3.1登录 Harbor WEB UI 界面,创建一个新项目

4.3.2添加仓库 

4.5推送 chart 到 harbor 中

4.6查看 chart_repo 项目中的 Helm Charts 

五  理解加总结 

1,命令

2, 理解

 


一、Helm

1.1什么是 Helm

在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment、svc 等,步骤较繁琐。 况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制, 很大程度上简化了 Kubernetes 应用的部署和管理。

Helm 本质就是让 K8s 的应用管理(Deployment、Service 等)可配置,可以通过类似于传递环境变量的方式能动态生成。通过动态生成 K8s 资源清单文件(deployment.yaml、service.yaml)。然后调用 Kubectl 自动执行 K8s 资源部署。

Helm 是官方提供的类似于 YUM 的包管理器,是部署环境的流程封装

1.2Helm 有三个重要的概念

Helm 有三个重要的概念:Chart 、Repository 和 Release

1.2.1Chart

Chart:Helm 的软件包,采用 TAR 格式。类似于 APT 的 DEB 包或者 YUM 的 RPM 包,其包含了一组定义 Kubernetes 资源相关的 YAML 文件。

1.2.2Repository(仓库)

Helm 的软件仓库,Repository 本质上是一个 Web 服务器,该服务器保存了一系列的 Chart 软件包以供用户下载,并且提供了一个该 Repository 的 Chart 包的清单文件以供查询。Helm 可以同时管理多个不同的 Repository

1.2.3Release

使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。可以理解为 Helm 使用 Chart 包部署的一个应用实例。一个 chart 通常可以在同一个集群中安装多次。每一次安装都会创建一个新的 release

以 MySQL chart 为例,如果你想在你的集群中运行两个数据库,你可以安装该 chart 两次。每一个数据库都会拥有它自己的 release 和 release name。可以将 release 想象成应用程序发布的版本号。

总结:

Helm 安装 charts 到 Kubernetes 集群中,每次安装都会创建一个新的 release。你可以在 Helm 的 chart repositories 中寻找新的 chart

1.3Helm3 与 Helm2 的区别

Helm2 是 C/S 架构,主要分为客户端 helm 和服务端 Tiller。在 Helm 2 中,Tiller 是作为一个 Deployment 部署在 kube-system 命名空间中,很多情况下,我们会为 Tiller 准备一个 ServiceAccount ,这个 ServiceAccount 通常拥有集群的所有权限。

用户可以使用本地 Helm 命令,自由地连接到 Tiller 中并通过 Tiller 创建、修改、删除任意命名空间下的任意资源。

在 Helm 3 中,Tiller 被移除了新的 Helm 客户端会像 kubectl 命令一样,读取本地的 kubeconfig 文件,使用我们在 kubeconfig 中预先定义好的权限来进行一系列操作。

heml3的兼容性更好,一般使用heml3

Helm 的官方网站 https://helm.sh/

二、Helm 部署

2.1安装 helm

下载二进制 Helm client 安装包

Tags · helm/helm · GitHub

tar zxvf  helm-v3.6.0-linux-amd64.tar.gz
 
mv linux-amd64/helm /usr/local/bin/helm
 
helm version

 

2.2命令补全 

source <(helm completion bash)

2.3使用 helm 安装 Chart

2.3.1添加常用的 chart 仓库

 添加常用的 chart 仓库

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.3.2更新 charts 列表

repo 是一个子命令,用于管理 Helm 的图表仓库(chart repositories)。Helm 使用仓库的概念来存储和分发预配置的 Kubernetes 资源包,这些包称为 charts。repo 子命令允许用户添加、列出、删除仓库,以及更新仓库中的 charts 索引。

helm repo update
 
helm repo list

 

2.3.3查看 stable 仓库可用的 charts 列表
helm search repo stable

2.3.4删除 incubator 仓库
helm repo remove incubator

如果不想用,可以移除它 helm repo remove 加名字

示例:删除aliyun仓库

helm repo remove aliyun  #清除aliyun

2.3.5搜索Bitnami官方Helm仓库中关于Nginx的chart 
helm search repo bitnami/nginx

 

搜索Bitnami官方Helm仓库中关于redis的chart

helm search repo bitnami/redis

2.3.6查看 chart 信息 
2.3.6.1查看指定 chart 的基本信息
helm show chart stable/mysql  

2.3.6.2获取指定 chart 的所有信息 
helm show all stable/mysql	

查看redis的chart 的基本信息

2.3.7安装 chart 
helm install my-redis bitnami/redis -n default  #指定 release 的名字为 my-redis,-n 指定部署到 k8s 的 namespace
 
helm install bitnami/redis --generate-name    #不指定 release 的名字时,需使用 –generate-name 随机生成一个名字

2.3.8查看所有 release
helm ls 
 
helm list

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值