当前位置: 首页 > article >正文

Helm介绍安装使用

Helm介绍

  • Helm介绍
    • 官网:
    • Helm中的一些概念
    • Helm v3版本变化
    • K8s版本支持的各个helm版本对照表
    • 下载
    • 配置国内存放chart仓库的地址
  • Helm基本使用
    • 搜索和下载Chart
    • 部署chart
      • helm部署memcached服务
      • 验证memcache是否部署成功:
    • release相关操作

Helm介绍

官网:

https://v3.helm.sh/zh/docs/

helm 官方的chart站点:

https://hub.kubeapps.com/

Helm介绍

  • Helm是kubernetes的包管理工具,相当于linux环境下的yum/apg-get命令。
  • Helm的首要目标一直是让“从零到Kubernetes”变得轻松。无论是运维、开发人员、经验丰富的DevOps工程师,还是刚刚入门的学生,Helm的目标是让大家在两分钟内就可以在Kubernetes上安装应用程序。
  • Helm可以解决的问题:运维人员写好资源文件模板,交给开发人员填写参数即可

Helm中的一些概念

  • helm:命令行客户端工具,主要用于Kubernetes应用中的chart的创建、打包、发布和管理。
  • Chart:helm程序包,一系列用于描述k8s资源相关文件的集合,比方说我们部署nginx,需要deployment的yaml,需要service的yaml,这两个清单文件就是一个helm程序包,在k8s中把这些yaml清单文件叫做chart图表。

chart—>通过values.yaml这个文件赋值–>生成release实例

  • vlues.yaml文件为模板中的文件赋值,可以实现我们自定义安装,如果是chart开发者需要自定义模板,如果是chart使用者只需要修改values.yaml即可
  • repository:存放chart图表的仓库,提供部署k8s应用程序需要的那些yaml清单文件
  • Release:基于Chart的部署实体,一个chart被Helm运行后将会生成对应的一个release;将在k8s中创建出真实运行的资源对象。

总结:

helm把kubernetes资源打包到一个chart中,制作并完成各个chart和chart本身依赖关系并利用chart仓库实现对外分发,而helm还可通过values.yaml文件完成可配置的发布,如果chart版本更新了,helm自动支持滚更更新机制,还可以一键回滚,但是不是适合在生产环境使用,除非具有定义自制chart的能力。

Helm v3版本变化

在这里插入图片描述

该版本主要变化如下:
架构变化:
1、Helm服务端Tiller被删除
2、Release名称可以在不同命名空间重用
3、支持将Chart推送至Docker镜像仓库中
4、使用JSONSchema验证chartvalues

K8s版本支持的各个helm版本对照表

https://helm.sh/zh/docs/topics/version_skew/

在这里插入图片描述

下载

helm属于kubernetes一个项目:

下载地址:

https://github.com/helm/helm/releases

在这里插入图片描述

上传安装包至master节点

tar zxvf helm-v3.16.1-linux-amd64.tar.gz
mv linux-amd64/helm /usr/bin/

查看helm版本:

helm version

在这里插入图片描述

配置国内存放chart仓库的地址

阿里云仓库(https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts)
官方仓库(https://hub.kubeapps.com/charts/incubator)官方chart仓库,国内可能无法访问。
微软仓库(http://mirror.azure.cn/kubernetes/charts/)这个仓库推荐,基本上官网有的chart这里都有,国内可能无法访问。

添加阿里云的chart仓库

helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

添加bitnami的chart仓库

helm repo add bitnami https://charts.bitnami.com/bitnami

在这里插入图片描述

更新chart仓库

helm repo update

在这里插入图片描述

查看配置的chart仓库有哪些

helm repo list

在这里插入图片描述

删除chart仓库地址

helm repo remove aliyun
显示如下:
"aliyun" has been removed from your repositories

从指定chart仓库地址搜索chart

helm search repo aliyun

Helm基本使用

搜索和下载Chart

查看阿里云chart仓库中的memcached

helm search repo aliyun |grep memcached

在这里插入图片描述

查看chart信息

helm show chart  aliyun/memcached

在这里插入图片描述

下载chart包到本地

helm pull  aliyun/memcached
tar zxvf memcached-2.0.1.tgz

在这里插入图片描述

cd memcached
ls

在这里插入图片描述

  • Chart.yaml: chart的基本信息,包括版本名字之类
  • templates: 存放k8s的部署资源模板,通过渲染变量得到部署文件
  • values.yaml:存放全局变量,templates下的文件可以调用
cd templates/
ls

在这里插入图片描述

  • _helpers.tpl 存放能够复用的模板
  • NOTES.txt 为用户提供一个关于chart部署后使用说明的文件

部署chart

helm部署memcached服务

安装memcached的Chart
上传memcache_1_4_36.tar.gz至k8snode1节点

修改statefulset.yaml文件

cd ~/memcached
cat templates/statefulset.yaml
apiVersion后面的value值变成apps/v1

在这里插入图片描述

#spec下添加selector字段
  selector:
    matchLabels:
        app: {{ template "memcached.fullname" . }}
        chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
        release: "{{ .Release.Name }}"
        heritage: "{{ .Release.Service }}"

在这里插入图片描述

删除affinity亲和性配置

在这里插入图片描述

安装memcached

rm -rf ~/memcached/templates/pdb.yaml
cd ~/memcached
helm install memcached ./

在这里插入图片描述

验证memcache是否部署成功:

kubectl get pods

在这里插入图片描述

在k8smaster 安装nc

yum install nc -y

测试memecached服务是否正常:

export POD_NAME=$(kubectl get pods --namespace default -l "app=memcached-memcached" -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward $POD_NAME 11211

新开k8smaster1窗口,执行以下命令

echo -e 'set mykey 0 60 5\r\nhello\r' | nc localhost 11211

在这里插入图片描述

release相关操作

查看release发布状态

helm list

在这里插入图片描述

删除release,删除release会把release下对应的资源也删除

helm delete memcached
kubectl get pods

在这里插入图片描述


http://www.kler.cn/a/320687.html

相关文章:

  • MYSQL_深入理解自连接_图书借阅情况(2/2)
  • 【论文模型复现】深度学习、地质流体识别、交叉学科融合?什么情况,让我们来看看
  • vue使用List.reduce实现统计
  • 3356. 零数组变换 Ⅱ
  • SQLite 和 MySQL语法区别
  • Javascript高级—函数柯西化
  • 饿了么基于Flink+Paimon+StarRocks的实时湖仓探索
  • 企业如何使用数据分析管理系统
  • 从准备面试八股文,感悟到技术的本质
  • Flutter局域网广播(UDP通信)与TCP通信
  • ant design vue做表单验证及form表单外验证、父子嵌套多个表单校验
  • MySQL篇(leetcode刷题100(查询))(二)(持续更新迭代)
  • 美食雷达:Spring Boot校园美食探索工具
  • Java实现Excel导入和导出
  • 面对淘宝镜像证书过期,npm怎么办?
  • 撤销与恢复的奥秘:设计模式之备忘录模式详解
  • SLM2304S 600V, 130mA/270mA 高压半桥驱动芯片,隐藏着哪些强大功能?
  • Linux上写Shell脚本遍历多个ip是否能够telnet通
  • 自然语言处理在人工智能领域的发展历程,以及NLP重点模型介绍
  • 计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
  • 深度解读WFST:音频与语音识别领域的关键技术
  • 无人机集群路径规划:雾凇优化算法( rime optimization algorithm,RIME)求解无人机集群路径规划,提供MATLAB代码
  • CentOS:稳定的服务器操作系统选择
  • HTTP和HTTPS的区别,HTTP协议转HTTPS协议测试需要注意内容
  • JVM的基本概念
  • scrapy 爬取微博(四)【最新超详细解析】: 设计篇