当前位置: 首页 > 工具软件 > python-helm > 使用案例 >

ks8-helm3.x安装

东方化
2023-12-01

Helm

Helm 是 Kubernetes 的软件包管理工具。本文需要读者对 Docker、Kubernetes 等相关知识有一定的了解。 本文将介绍 Helm 中的相关概念和基本工作原理,并通过一些简单的示例来演示如何使用Helm来安装、升级、回滚一个 Kubernetes 应用。

1. helm的理解

1.1 Helm 是什么?

helm 是 Kubernetes 的包管理器。包管理器类似于我们在 Ubuntu 中使用的apt、Centos中使用的 yum 或者Python中的 pip 一样,能快速查找、下载和安装软件包。Helm 由客户端组件 helm 和服务端组件 Tiller 组成,能够将一组K8S资源打包统一管理,是查找、共享和使用为Kubernetes构建的软件的最佳方式。

helm解决的问题

  • 统一管理、配置和更新这些分散的 k8s 的应用资源文件
  • 分发和复用一套应用模板
  • 将应用的一系列资源当做一个软件包管理

1.2 Helm 相关组件及概念

Helm 包含两个组件,分别是 helm 客户端 和 Tiller 服务器

  • helm 是一个命令行工具,用于本地开发及管理chart,chart仓库管理等
  • Tiller 是 Helm 的服务端。Tiller 负责接收 Helm 的请求,与 k8s 的 apiserver 交互,根据chart 来生成一个 release 并管理 release
  • chart Helm的打包格式叫做chart,所谓chart就是一系列文件, 它描述了一组相关的 k8s 集群资源
  • release 使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release
  • Repoistory Helm chart 的仓库,Helm 客户端通过 HTTP 协议来访问存储库中 chart 的索引文件和压缩包

2. Helm3.x的安装

1,Helm3.x的优势

helm3只有一个客户端,没有服务端,所以安装起来很方便,把相应的程序下下来即可,不需要helm init安装了。

相对于helm2,helm3有几大特性:

  • 移除了tiller
  • 支持分布式helm hub, 有了它就可以在很多时候不需要手动添加非官方repo了,例如helm3 search hub <package name>
  • 为chart输入值进行json schema验证。
  • 可以给helm charts添加test了,通过helm test <release>就能针对部署的应用跑一些tests。
  • 部署的时候release name必须指定了,helm2的时候不指定会自动生成一个。
  • 删除的时候不需要--purge了,删了就是删了。

开始安装

1,下载最新的helm二进制包

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

2,解压并移动二进制文件至可执行目录

tar xzvf helm-v3.5.2-linux-amd64.tar.gz 

chmod +x linux-amd64/helm 
mv linux-amd64/helm /usr/bin/

3,验证

helm  version 

version.BuildInfo{Version:"v3.5.2", GitCommit:"167aac70832d3a384f65f9745335e9fb40169dc2", GitTreeState:"dirty", GoVersion:"go1.15.7"}

3.Helm安装es单节点(由于资源不足仅供测试参考)

1,添加helm仓库

添加ES的helm仓库并查看helm的仓库列表

helm repo add elastic https://helm.elastic.co

2 ,查看是否添加成功

$ helm repo list 
NAME       URL                     
elastic    https://helm.elastic.co 

3,获取指定版本的包

获取指定版本es的chart包

helm pull --version 7.13.2 elastic/elasticsearch

ls |grep ela
elasticsearch-7.13.2.tgz

4,解压Chart包并根据需要修改values.yaml文件

tar xzvf elasticsearch-7.13.2.tgz
cd elasticsearch-7.13.2
vim values.yaml

##将replicas:字段修改为1

5,执行安装,#es1为安装名称,efk为namespace

$ helm3 install es1 -nefk ./

6,查看helm安装状态是否正常

kubectl get all -nefk 

详情请参考:

kubernetes(k8s) - 实战进阶篇:使用Helm安装、升级、回滚 Kubernetes 应用(七) - 知乎

Kubernetes包管理:Helm2 升级 Helm3 - 走看看 https://www.putianhui.cn/posts/639b1cad12a9/#helm%E5%AE%89%E8%A3%85ES%E9%9B%86%E7%BE%A4

 类似资料: