• 欢迎来到本博客,希望可以y一起学习与分享

k8s之helm(v3.5)简介、安装

笔记 benz 2年前 (2021-04-30) 253次浏览 0个评论 扫描二维码
文章目录[隐藏]

helm简介

很多人都使用过Ubuntu下的ap-get或者CentOS下的yum, 这两者都是Linux系统下的包管理工具。采用apt-get/yum,应用开发者可以管理应用包之间的依赖关系,发布应用;用户则可以以简单的方式查找、安装、升级、卸载应用程序。

我们可以将Helm看作Kubernetes下的apt-get/yum。Helm是Deis (https://deis.com/) 开发的一个用于kubernetes的包管理器。每个包称为一个Chart,一个Chart是一个目录(一般情况下会将目录进行打包压缩,形成name-version.tgz格式的单一文件,方便传输和存储)。

对于应用发布者而言,可以通过Helm打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓库。

对于使用者而言,使用Helm后不用需要了解Kubernetes的Yaml语法并编写应用部署文件,可以通过Helm下载并在kubernetes上安装需要的应用。

除此以外,Helm还提供了kubernetes上的软件部署,删除,升级,回滚应用的强大功能。

Helm 组件及相关术语

Helm
Helm 是一个命令行下的客户端工具。主要用于 Kubernetes 应用程序 Chart 的创建、打包、发布以及创建和管理本地和远程的 Chart 仓库。

Tiller
Tiller 是 Helm 的服务端,部署在 Kubernetes 集群中。Tiller 用于接收 Helm 的请求,并根据 Chart 生成 Kubernetes 的部署文件( Helm 称为 Release ),然后提交给 Kubernetes 创建应用。Tiller 还提供了 Release 的升级、删除、回滚等一系列功能。

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

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

Release
使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release。

注:需要注意的是:Helm 中提到的 Release 和我们通常概念中的版本有所不同,这里的 Release 可以理解为 Helm 使用 Chart 包部署的一个应用实例。

Helm工作原理


Chart Install 过程

  1. Helm从指定的目录或者tgz文件中解析出Chart结构信息
  2. Helm将指定的Chart结构和Values信息通过gRPC传递给Tiller
  3. Tiller根据Chart和Values生成一个Release
  4. Tiller将Release发送给Kubernetes用于生成Release

Chart Update过程

  1. Helm从指定的目录或者tgz文件中解析出Chart结构信息
  2. Helm将要更新的Release的名称和Chart结构,Values信息传递给Tiller
  3. Tiller生成Release并更新指定名称的Release的History
  4. Tiller将Release发送给Kubernetes用于更新Release

Chart Rollback过程

  1. Helm将要回滚的Release的名称传递给Tiller
  2. Tiller根据Release的名称查找History
  3. Tiller从History中获取上一个Release
  4. Tiller将上一个Release发送给Kubernetes用于替换当前Release

helm3 VS helm2

helm v2 版本: 包含两个组件,分别是 helm 客户端 和 Tiller 服务器, helm 是一个命令行工具,用于本地开发及管理chart,chart仓库管理等;Tiller 负责接收 Helm 的请求,与 k8s 的 apiserver 交互。

helm v3 版本: 移除了Tiller,helm直接和K8s交互, SA通过 kuberconfig 配置认证。

一、Helm 客户端安装(v3.5为例)

Helm 的安装方式很多,这里采用二进制的方式安装。更多安装方法可以参考 Helm 的官方帮助文档。

方式一:使用官方提供的脚本一键安装

方式二:手动下载安装
从官网下载最新版本的二进制安装包到本地:https://github.com/kubernetes/helm/releases。
注意:是从Installation and Upgrading这里下,不是Assets里面下的。

二、常用 chart 源

①、初始化 chart 源仓库

准备好 helm 后,需要添加 helm 源数据仓库。有以下几个常见的源库

  1. https://charts.helm.sh/stable : helm官网 chart 库,稳定
  2. https://apphub.aliyuncs.com : 阿里云chart 库,速度最快

添加 chart 库
格式:helm repo add 自定义名称 chart库的地址

查看当前集群有哪些 chart 库
helm repo list

查看某个 chart 库当中有哪些可安装程序

helm search repo chart库名

②、查找想要安装的软件程序

docker search repo 程序名

例:helm search repo nginx 查找 nginx 程序都有哪些版本的应用

③、部署 Helm 应用

要安装新软件包,请使用helm install命令。

它包含两个参数:您选择的 发行版名称 要安装的 chart 的名称

例:安装一个 Nginx 应用
查看都有哪些软件可用:helm search repo nginx

安装aliyun 的nginx :helm install nginx nginx/aliyuncs

查看访问的 SVC 映射端口:kubectl get svc --namespace default -w nginx

访问该 nginx 的 web 页面:curl -I 192.168.168.11:30367

要跟踪发布的状态或重新读取配置信息,可以使用 helm status +应用名

④、查看helm 生成应用、卸载应用

helm list 查看集群中有哪些 helm 应用

helm uninstall +应用名 卸载应用

⑤、设置参数

参数设置有两种方式:
1、通过修改values.yaml文件;
2、通过--set命令。

命令格式:helm install --set key=value

--set 参数可以指定多个参数,他的值会覆盖values.yaml定义的值,对象类型数据可以用 . (点)分割属性名,例子: --set apiAppResources.requests.cpu=1

⑥、调试

helm命令加上--debug --dry-run 两个参数,让helm输出yaml清单文件,但是不执行创建。

例子:

 

参考

kubernetes之helm简介、安装、配置、使用指南


文章 k8s之helm(v3.5)简介、安装 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!