(一)Helm简介

一、Helm介绍

java使用maven;前端使用npm;python使用pip;运维使用yum或apt。分工不同,诉求却相同,都希望有一种资源管理工具,可以方便查找、下载、安装、使用和分发程序包。

helm 也一样,它是 k8s 的资源包管理工具。它使我们操作的对象不再是单个资源,而是一个实体。比如我们需要一个负载均衡的 web 服务,如果不使用 helm,我们需要写 deployment,service 和 ingress 才可以让集群外部的客户使用。但是如果使用 helm,直接使用一个 install 命令便可以实现相同的功能。

推荐使用 helm 的 3.0 版本。

二、Helm术语

2.1 Chart

chart 是 k8s 的资源包。一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 集群中的服务定义,类似 Homebrew 中的 formula、APT 的 dpkg 或者 Yum 的 rpm 文件。

2.2 Release

release 是 k8s 运行的资源。可以将其类比为进程。只不过在 k8s 中,运行的实体是一个一个的资源。在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Chart 可以安装很多次。每次安装都会创建一个新的 release。例如一个 MySQL Chart,如果想在服务器上运行两个数据库,就可以把这个 Chart 安装两次。每次安装都会生成自己的 Release,会有自己的 Release 名称。比如 deployment、pod、configmap、secret 等。

2.3 Repository

Repository用于发布和存储Chart的存储库

三、Helm架构

image
Chart Install 过程:

  • Helm从指定的目录或者tgz文件中解析出Chart结构信息
  • Helm将指定的Chart结构和Values信息通过gRPC传递给Tiller
  • Tiller根据Chart和Values生成一个Release
  • Tiller将Release发送给Kubernetes运行。

Chart Update过程:

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

四、下载安装Helm

4.1 下载Helm

wget https://get.helm.sh/helm-v3.0.0-linux-amd64.tar.gz

4.2 Helm解压

tar -zxvf helm-v3.0.0-linux-amd64.tar.gz

4.3 Helm安装

# mv linux-amd64/helm /usr/local/bin/

4.4 Helm验证

# helm version

4.5 Helm快速命令补全

# yum install -y bash-completion 
# source /usr/share/bash-completion/bash_completion 
# source <(helm completion bash) 
# echo "source <(helm completion bash)" >> ~/.bashrc
posted @ 2022-05-25 09:14  比特边界  阅读(329)  评论(0编辑  收藏  举报