helm介绍
1.传统服务部署到k8s集群的流程
拉取代码——> 打包编译——>构建镜像——>准备一堆相关部署的yaml文件(如:deployment、service、ingress等)——>kubectl apply 部署到k8s集群

2.传统方式部署引发的问题
1).随着引用的增多,需要维护大量的yaml文件
2).不能根据一套yaml文件来创建多个环境,需要手动进行修改。
例如:一般环境都分为dev、预生产、生产环境,部署完了dev这套环境,后面再部署预生产和生产环境,还需要复制出两套,并手动修改才行。

3.什么是helm
Helm是Kubernetes 的包管理工具,可以方便地发现、共享和构建 Kubernetes 应用
helm是k8s的包管理器,相当于centos系统中的yum工具,可以将一个服务相关的所有资源信息整合到一个chart包中,并且可以使用一套资源发布到多个环境中, 可以将应用程序的所有资源和部署信息组合到单个部署包中。
就像Linux下的rpm包管理器,如yum/apt等,可以很方便的将之前打包好的yaml文件部署到kubernetes上。

4.helm的组件
1).Chart: 就是helm的一个整合后的chart包,包含一个应用所有的kubernetes声明模版,类似于yum的rpm包或者apt的dpkg文件。
理解:
helm将打包的应用程序部署到k8s,并将它们构建成Chart。这些Chart将所有预配置的应用程序资源以及所有版本都包含在一个易于管理的包中。
Helm把kubernetes资源(如deployments、services或ingress等) 打包到一个chart中,chart被保存到chart仓库。通过chart仓库可用来存储和分享chart
2).Helm客户端: helm的客户端组件,负责和k8s apiserver通信
3).Repository: 用于发布和存储chart包的仓库,类似yum仓库或docker仓库
4).Release: 用chart包部署的一个实例。通过chart在k8s中部署的应用都会产生一个唯一的Release. 同一chart部署多次就会产生多个Release.
理解:
将这些yaml部署完成后,他也会记录部署时候的一个版本,维护了一个release版本状态,通过Release这个实例,他会具体帮我们创建pod,deployment等资源
附录:
搭建本地私有helm chart仓库: https://blog.csdn.net/qq_33196814/article/details/126261132

#具体使用
添加chart仓库

helm repo add {{chart仓库名}}  {{chart仓库地址}}
helm repo add stable http://mirror.azure.cn/kubernetes/charts #添加远程chart仓
helm repo add chartmuseum http://localhost:9091/ #添加本地私有chart仓

更新chart仓库

helm repo update

查看chart仓库

helm repo list

创建chart包 #生成chart包文件

helm create nginx-chart

修改chart

> values.yaml
rm -rf templates/* cat values.yaml
deployment_name: nginx-deployment
replicas: 2
pod_label: nginx-pod-label
image: jdzs-prd-harbor.ccestack.baidu.com/ccr-public/nginx
imageTag: 1.17.1
container_name: nginx-container
service_name: nginx-service
port: 80
targetport: 80
containerport: 80
nodeport: 30011 cat templates/nginx-deploy-service.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Values.deployment_name }}
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels:
app: {{ .Values.pod_label }}
template:
metadata:
labels:
app: {{ .Values.pod_label }}
spec:
containers:
- image: {{ .Values.image }}:{{ .Values.imageTag }}
name: {{ .Values.container_name }}
ports:
- containerPort: {{ .Values.containerport }}
---
apiVersion: v1
kind: Service
metadata:
name: {{ .Values.service_name }}
spec:
type: NodePort
ports:
- port: {{ .Values.port }}
targetPort: {{ .Values.targetport }}
nodePort: {{ .Values.nodeport }}
protocol: TCP
selector:
app: {{ .Values.pod_label }}

部署release

helm install {{release实例}}  {{chart目录}}
helm install nginx-release ./nginx-chart/

或者

helm install {{release实例}}  {{chart仓库/chart包}}
helm install nginx-release-1 chartmuseum/nginx-chart

更新release

helm upgrade nginx-release {{chart名}}  -f {{更新的配置变量文件}}
helm upgrade nginx-release nginx-chart -f /root/nginx-chart/values.yaml

回滚

helm list #查找revision
helm rollback {{release实例}} {{REVISION}}
helm rollback nginx-release 1

卸载release

helm uninstall {{release实例}}
helm uninstall nginx-release

查看release

helm list

打包chart

helm package {{chart目录}}  {{保存的路径}}
helm package nginx-chart/ ./

生成的chart包:nginx-chart-0.1.0.tgz

将chart包推送到本地chart仓库

helm push {{chart包}} {{chart仓库名}}
helm push nginx-chart-0.1.0.tgz chartmuseum

查看chart包信息

helm show chart {{chart包}}
helm show chart nginx-chart-0.1.0.tgz

查看有哪些 chart

helm search repo

搜索nginx的chart包

helm search repo nginx

查看chart仓库的chart信息

helm show chart {{chart仓库/chart名}}
helm show chart chartmuseum/nginx-chart

查看chart仓库的chart包详细信息

helm show values chartmuseum/nginx-chart

下载chart

helm pull {{chart仓库名/chart名}}
helm pull chartmuseum/cce-rdma-plugin
helm pull chartmuseum/cce-rdma-pluginhelm --untar # --untar 下载chart包并解压

更新chart仓库的chart包
先更新Chart.yaml: vim nginx-chart/Chart.yaml
比如:version: 0.1.2
重新打包

helm package nginx-chart//

会输出:nginx-chart-0.1.2.tgz
推送到chart仓库:helm push nginx-chart-0.1.2.tgz chartmuseum
更新helm repo chart仓库:helm repo update
确认更新了chart: helm search repo

helm3培训文档的更多相关文章

  1. [第二届构建之法论坛] 预培训文档(C++版)

    本博客是第二届构建之法论坛暨软件工程培训活动预培训文档中[适用于结对编程部分的C++版本],需要实验者有一部分C++基础. 目录 Part0.背景 Part1.配置环境 Part2.克隆项目 Part ...

  2. [第二届构建之法论坛] 预培训文档(Java版)

    本博客是第二届构建之法论坛暨软件工程培训活动预培训文档中[适用于结对编程部分的Java版本],需要实验者有一部分Java基础. 目录 Part0.背景 Part1.配置环境 配置JDK Linux 平 ...

  3. 20165234 [第二届构建之法论坛] 预培训文档(Java版) 学习总结

    [第二届构建之法论坛] 预培训文档(Java版) 学习总结 我通读并学习了此文档,并且动手实践了一遍.以下是我学习过程的记录~ Part1.配置环境 配置JDK 原文中提到了2个容易被混淆的概念 JD ...

  4. dubbo培训文档

    培训文档 1.<服务框架实践与探索> 主题:QCon2011杭州主题演讲,分享Dubbo服务框架的实践历程.主讲:钱霄,梁飞课件:Service Framework Practices.p ...

  5. python oop培训文档里面的 正宗oop、多个函数间反复return传参、多个文件无限复制粘贴扣字、无效废物滑稽类4种方式的例子。(2)

    把文档里面说的几种范式发出来. 4种编程范式实现一个人吃喝拉撒长身体的代码.语法很简单,思想模拟了所有程序员写代码时候的代码规划设计想法. 0.我不反对复制粘贴的写法,可以百度搜索复制粘贴网上现有的, ...

  6. python编程范式培训文档,主要是结合4种代码和,对oop和面向过程编程区别和oop转化公式培训。

    这是写得培训文档.代码例子在附件. 是经过深入考察 4个git项目里面,找出代码非常非常十分low.代码重复得吓人的的最本质原因.提炼出oop转化公式. 围绕附件中的4种代码写法思维来实现同一个任务, ...

  7. teradata培训文档 相关索引

    teradata培训文档 http://wenku.baidu.com/view/ec44c201cc175527072208ba.html Teradata 和Greenplum 的讨论 http: ...

  8. jquery easyui中文培训文档

    目  录 1.... Accordion(可折叠标签)... 2 1.1          实例... 2 1.2          参数... 3 2.... DateBox(日期框)... 4 2 ...

  9. 最新jquery+easyui_api培训文档

    目  录 1 Accordion(可折叠标签) 2 1.1 实例 2 1.2 参数 3 2 DateBox(日期框) 4 2.1 实例 4 2.2 参数 6 2.3 事件 6 2.4 方法 6 3 C ...

  10. jquery+easyui开发、培训文档

    目  录 1.... Accordion(可折叠标签)......................................................................... ...

随机推荐

  1. thymeleaf 使用th:onclick传递参数问题:

    使用方法:注意:传递参数时如果参数是数字这样写没有问题,但是如果参数是字符串onclick的方法将无法接收到参数并报错,所以参数是字符串时要加单引号.如上图.

  2. 洛谷P3755 [CQOI2017] 老C的任务 题解

    前言:这个分块和刚被撤下的不同,因为这个分块时间复杂度正确,能通过所有 hack. 题目传送门. 有没有什么可以不用离线都能解决问题的简单算法?答案是分块!! 60pts 首先遇到这个题目,先写一个比 ...

  3. 【Abaqus】*Solid Section定义复合材料

    *SOLID SECTION 介绍 *solid section 用来定义单元的材料属性,材料方向等信息: solid (continuum) elements infinite elements a ...

  4. WPS常用快捷键汇总

    创建新文档 Ctrl+N或者Alt+F+N(对应baiNew) 打开文档 Ctrl+O或者Alt+F+O(对应Open) 关闭文du档 Ctrl+W或者Alt+W+C 保存当前文zhi档 Ctrl+S ...

  5. 史上最全EffectiveJava总结(一)

    创建和销毁对象 1.静态工厂方法代替构造器 优点 静态工厂方法有名称,能确切地描述正被返回的对象. 不必每次调用都创建一个新的对象. 可以返回原返回类型的任何子类对象. 创建参数化类型实例时更加简洁, ...

  6. DTMF从2833到inband的方案

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 之前的文章中介绍过通过dialplan拨号计划配置的方法,实现2833到inband的转换,但是实际生产环境中的场景会更复杂,无法预 ...

  7. 2025年最流行的5个Python ASGI服务器及其核心特性与适用场景

    以下是2025年最流行的5个Python ASGI服务器及其核心特性与适用场景: 1. Uvicorn • 核心优势: • 基于uvloop和httptools,性能远超传统WSGI服务器,支持HTT ...

  8. 又一款眼前一亮的Linux终端工具!

    大家好,我是良许. 最近二舅视频刷爆了全网,大家有没去看呢?强烈推荐大家观看一波,也就 11 分钟,保证会触动你的泪点. 不过今天不讲二舅哈,还是来聊聊技术. 今天给大家介绍一款最近发现的功能十分强大 ...

  9. zk基础—5.Curator的使用与剖析

    大纲 1.基于Curator进行基本的zk数据操作 2.基于Curator实现集群元数据管理 3.基于Curator实现HA主备自动切换 4.基于Curator实现Leader选举 5.基于Curat ...

  10. Audio DSP boot 过程

    在智能手机或智能手表等SoC上通常有一块专门的audio DSP(简称ADSP)来做音频处理.要做音频处理,ADSP首先要被boot起来.本文以CEVA BX2为例来讲讲ADSP的boot过程. 在上 ...