Helm介绍安装使用

embedded/2024/12/22 23:02:57/

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.ppmy.cn/embedded/118318.html

相关文章

Vue Element UI 打包上线后icon偶发性乱码问题

1、升级sass版本,及对应的sass-loader 升级到 sass升级到1.39.0会出现不兼容报错,不支持“/” 2、vue.config.js中添加配置 css: { loaderOptions: { sass: { sassOptions: { outputStyle: expanded } } } }

haproxy程序崩溃问题处理

背景: 线上一k8s环境告警出节点失联,通过排查和k8s的api建立链接失败,检查发现haproxy出现了重启,对应的日志显示出程序运行崩溃,这个情况根据日志追溯,发现曾多次崩溃,后续也在其他k8s环境也有…

JAVA集合框架 类型包装器

Collection接口 用于集合类的接口 boolean add() 将对象添加给集合,如果添加对象之后,集合确实发生了变化,则返回true,否则false。若集合中已经有该对象,则返回false 一个特别的方法Iterator iterator() 该方法用于返…

CAT1 RTU软硬件设计开源资料分析(MQTT协议+Modbus协议+GNSS定位版本 )

01 CAT1 RTU方案简介: 远程终端单元( Remote Terminal Unit,RTU),一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的、特殊的计算机测控单元,它将末端检测仪表和执行机构与远程控制中心相连接。 奇迹MQTT RTUGN…

人工智能-大语言模型-微调技术-LoRA及背后原理简介

1. 《LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS》 LORA: 大型语言模型的低秩适应 摘要: 随着大规模预训练模型的发展,全参数微调变得越来越不可行。本文提出了一种名为LoRA(低秩适应)的方法,通过在Transf…

算法:斐波那契数列

题目描述&#xff1a; 大家都知道斐波那契数列&#xff0c;现在要求输入一个整数 n&#xff0c;请你输出斐波那契数列的第 n 项。 n<39 问题分析&#xff1a; 可以肯定的是这一题通过递归的方式是肯定能做出来&#xff0c;但是这样会有一个很大的问题&#xff0c;那就是递…

建造者模式__c#

目录 调用 指挥者 抽象建造者 建造者 定义具体产品 调用 用指挥者指挥建造者建造产品 在指挥者这里组装成产品 namespace _建造者模式 {internal class Program{static void Main(string[] args){Builder buildernew JiangHuaiBuilder();//建造者Director director new…

等保测评:企业如何构建安全的网络架构

等保测评的目的和重要性 等保测评&#xff08;信息安全等级保护测评&#xff09;是企业构建安全网络架构的重要依据。它通过对信息系统的安全等级进行评估&#xff0c;帮助企业识别潜在的安全风险&#xff0c;提供科学的安全保护建议&#xff0c;确保网络系统的稳定和可靠运行。…