k8s之helm入门

news2025/1/16 16:19:36

k8s之helm入门

helm是k8s的另外一个项目,相当于linux的yum,在yum仓库中,yum不光要解决包之间的依赖关系,还要提供具体的程序包,helm仓库里面只有配置清单文件,而没有镜像,镜像还是由镜像仓库来提供,比如hub.docker.com、私有仓库.

helm提供了一个应用所需要的所有清单文件.比如对于一个nginx,我们需要一个deployment的清单文件、一个service的清单文件、一个hpa的清单文件,把这三个文件打包到一起,就是一个应用程序的程序包,称之为Chart.

Chart

Chart是一个helm程序包,其实质只是一个模板,我们可以对这个模板进行赋值(value),形成我们自定义的清单文件,也就实现我们生产个性化的需求,这样的仓库叫Chart仓库,一个https/http服务器.

Repos

Helm chart 可以被存储在专用的 HTTP 服务器上,称为 chart 仓库(repositories),和 yum repository类似,chart 仓库提供了一个 index.yaml 来描述一批 chart,并且提供了每个 chart 的下载地址信息。

Helm 客户端可以指向多个 chart 仓库,默认情况下是没有配置仓库的,需要使用 helm repo add 来进行添加。helm3 中对于一些常用服务的下载安装,用 bitnami 仓库 取代了原来的stable 仓库,但是仍保留了 stable 仓库的使用。

Release

当 chart 被发布后,Helm 库会创建一个 release 来跟踪这个发布的对象,它的实质是在 Kubernetes 中运行的各种资源,service、deployment、configmap、secret 等,在 K8S 集群中的直接的表现就是一个或多个 pod。

在 Helm3 中,这种策略被升级成了三路策略合并,Helm 在生成一个补丁时,也会考虑之前老的 manifest 的活动状态。也就是说,在使用老的 chart manifest 生成新的补丁时,Helm 还会考虑当前的活动状态,并将其与之前老的 manifest 进行比对,并再比对新的 manifest 是否有改动,并进行自动补全,以此来生成最终的更新补丁

发布时必须指定 release 名称

在 Helm2 中,在发布时如果未提供 release 的名称,Helm 会自动生成一个,但是在 Helm3 中,如果未指定 release 名称,安装就会报错,如果仍然希望 Helm 能够自动生成 release 名称,可以使用 --generate-name 参数

二:官网介绍

https://helm.sh/docs/intro/quickstart/

三:Helm常用命令

[root@master ~]# helm version //查看helm版本信息

[root@master ~]# helm list /查看当前安装的Chart包

[root@master ~]# helm search mysql //查看与mysql相关的chart包

[root@master ~]# helm fetch stable/mysql //将mysql软件包下载到本地

[root@master ~]# helm inspect stable/mysql //查看该软件包的详细信息

[root@master ~]# helm install stable/mysql -n mysql //安装指定的mysql软件包,并命名为mysql

[root@master ~]# helm status mysql //查看mysql的状态信息

[root@master ~]# helm delete --purge mysql //删除mysql,并将本地的缓存也进行删除

[root@master ~]# helm repo add stable
https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts //添加阿里云的repo源

[root@master ~]# helm repo update //更新repo仓库资源

[root@master ~]# helm create helm_charts //创建一个chart,名称为helm_charts

[root@master ~]# cd helm_charts/ && helm lint //测试charts语法

[root@master ~]# helm package helm_charts //打包charts

[root@master helm_charts]# helm template helm_charts-0.1.0.tgz //查看该软件包生成的yaml文件

四:Helm 解决了什么痛点

在 Kubernetes中部署一个可以使用的应用,需要涉及到很多的 Kubernetes 资源的共同协作。比如你安装一个 WordPress 博客,用到了一些 Kubernetes (下面全部简称k8s)的一些资源对象,包括 Deployment 用于部署应用、Service 提供服务发现、Secret 配置 WordPress 的用户名和密码,可能还需要 pv 和 pvc 来提供持久化服务。并且 WordPress 数据是存储在mariadb里面的,所以需要 mariadb 启动就绪后才能启动 WordPress。这些 k8s 资源过于分散,不方便进行管理,直接通过 kubectl 来管理一个应用,你会发现这十分蛋疼。

所以总结以上,我们在 k8s 中部署一个应用,通常面临以下几个问题:

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

目录结构

  • charts 目录存放依赖的chart
  • Chart.yaml 包含Chart的基本信息,包括chart版本,名称等
  • templates 目录下存放应用一系列 k8s 资源的 yaml 模板
  • _helpers.tpl 此文件中定义一些可重用的模板片断,此文件中的定义在任何资源定义模板中可用
  • NOTES.txt 介绍chart 部署后的帮助信息,如何使用chart等
  • values.yaml 包含了必要的值定义(默认值), 用于存储 templates 目录中模板文件中用到变量的值

基本命令

创建一个 Chart 模板

# helm create test

Creating test

helm package

打包一个 Chart 模板

# helm package test

Successfully packaged chart and saved it to: /root/test-0.1.0.tgz

helm search

查找可用的 Chart 模板

helm inspect

查看指定 Chart 的基本信息

# helm inspect test

apiVersion: v1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1608692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习300问】77、什么是梯度消失和梯度爆炸?

一、梯度消失(Vanishing gradients) (1)定义 在训练深度神经网络时,随着误差梯度从输出层向输入层逐层回传,梯度可能因为连乘效应逐渐减小。当使用激活函数的导数的最大值小于1时,深度网络中越…

【软考】软件设计师中级

视频课 计算机组成原理 进制转换 定点数vs浮点数 校验码 计算机体系结构 指令系统 I/O 存储系统 直接映射:简单粗暴的死板派 全相联映射:跳脱的自由发挥派 组相联映射:折中派,组间直接映射&组内全相联映射 命中率&#xf…

百度网盘超级会员2024最新白嫖30天教程

百度网盘超级会员服务是百度网盘提供的一项高级服务,它为用户提供了许多特权和功能,旨在为用户带来更加便捷、高效的文件存储和管理体验。以下是关于百度网盘超级会员服务的详细介绍: 百度网盘VIP领取入口: 关注公众号回复&#x…

为什么选择TikTok直播专线而不是节点?

TikTok直播已成为许多商家的重要营销手段,而网络质量作为营销直播效果的关键因素,使得商家们开始应用TikTok直播专线。虽然与节点相比,专线的价格稍高,但更多商家都倾向于选择TikTok直播专线。那么,为什么TikTok直播更…

Java零基础入门到精通_Day 7

1.3 什么是类? 类是对现实生活中一类具有共同属性和行为的事物的抽象。 类的特点: 类是对象的数据类型 类是具有相同属性和行为的一组对象的集合 1.4 什么是对象的属性 属性:对象具有的各种特征,每个对象的每个属性都拥有特定的值。 1.5 什么是对象的行为 行为:对…

vue快速入门(三十三)scoped解决组件样式冲突

注释很详细&#xff0c;直接上代码 上一篇 新增内容 scoped解决样式冲突的用法 源码 MyHeader.vue <!-- 用于测试全局注册组件 --> <template><div id"myHeader"><h1>又可以愉快的学习啦</h1></div> </template><scri…

万物皆可计算|下一个风口:近内存计算-1

传统的冯诺依曼架构虽然广泛应用于各类计算系统&#xff0c;但其分离的数据存储与处理单元导致了数据传输瓶颈&#xff0c;特别是在处理内存密集型任务时&#xff0c;CPU或GPU需要频繁地从内存中读取数据进行运算&#xff0c;然后再将结果写回内存&#xff0c;这一过程涉及大量…

【idea插件】IDEA 书签Bookmarks 高效使用

当我们在查看源码时&#xff0c;由于源码调用链路很长可能涉及到非常多的类文件&#xff0c;查找起来并不容易。有时候可能还需要查找某段代码的入口函数&#xff0c;当类文件的代码量很大时&#xff0c;很难快速定位到代码段。 设置书签 要想将一行代码添加到 IDEA 的 Bookm…

创新电商模式:免单优选引领销售新潮流

免单优选&#xff0c;这一新颖的电商销售概念&#xff0c;通过独特的价格策略、奖励制度以及社交网络的融合应用&#xff0c;成功点燃了消费者的购买激情&#xff0c;引领销售迅猛增长。 一、合规经营&#xff0c;摒弃复杂奖励 免单优选坚守合法经营的原则&#xff0c;摒弃了复…

【点云语义分割】自适应一致性正则化的弱监督点云分割

Reliability-Adaptive Consistency Regularization for Weakly-Supervised Point Cloud Segmentation 摘要&#xff1a; 本文探讨了将弱监督学习中常用的一致性正则化应用于具有多种特定数据增强功能的点云学习中&#xff0c;而对这一问题的研究还不够深入。我们发现&#xff…

大数据操作第二天

文章目录 大数据命令的方式现在有三个命令的方式 启动一个计算圆周率的jar包方式什么是文件系统数据元数据传统的存储方式分布式存储方式元数据记录文件位置信息副本机制的方式 hafs 存储方式shell 操作大数据的方式创建目录查看文件目录下的方式上传文件的方式 大数据命令的方…

【若依】代码生成详细教程(单表、主从表、树形表增删改查)

若依代码生成开发接口 修改代码生成配置一、单表实现增删改查1. 新建数据库表结构2. 新建模块&#xff0c;解决项目依赖3. 启动项目&#xff0c;新建菜单4. 导入数据表&#xff0c;自动生成代码5. 将生成代码粘贴到对应的模块&#xff0c;执行生成的sql&#xff08;用于生成菜单…

【情侣博客网站】

效果图 PC端 建塔教程 第一步&#xff1a;下载网站源码&#xff08;在文章下方有下载链接&#xff09; 第二步&#xff1a;上传到服务器或虚拟主机&#xff0c;解压。 第三步&#xff1a;这一步很关键&#xff0c;数据库进行连接&#xff0c;看图 admin/connect.php就是这…

【学习笔记】Vue3源码解析:第五部分 - 实现渲染(2)

课程地址&#xff1a;【已完结】全网最详细Vue3源码解析&#xff01;&#xff08;一行行带你手写Vue3源码&#xff09; 第五部分-&#xff1a;&#xff08;对应课程的第33 - 35节&#xff09; 第33节&#xff1a;《讲解组件渲染流程》 1、在 render 函数中拿到虚拟dom vnode后…

WordPress 主题选择与自定义配置

最近我在使用wordpress网站进行建站。 我是使用的hostease的主机产品进行wordpress建站&#xff0c;在选择wordpress主题时颇为头疼。后来咨询了hostease的客服人员&#xff0c;他们家的技术人员提供了诸多帮助。在WordPress网站建设时&#xff0c;主题选择对于建立各类网站至关…

档案数字化能为企业带来什么帮助

档案数字化为企业带来以下帮助&#xff1a; 1. 空间节省&#xff1a;数字化档案可以减少实体档案的存储空间需求&#xff0c;不再需要大量的文件柜和文件存储空间&#xff0c;从而帮助企业节约办公场地。 2. 检索便捷&#xff1a;数字化档案可以通过关键词搜索、标签分类等方式…

fcrackzip工具的使用教程

下载fcrackzip软件包 查看版本 创建一个1.txt文本文件&#xff0c;然后把1.txt解压成1.zip&#xff0c;密码为007lyt fcackzip有两种使用方法 1、暴力破解 用法示例 fcrackzip -b -c 1a -l 1-10 -u 1.zip -b使用暴力破解 -c 指定掩码类型 a表示a-z&#xff0c;A表示A-Z&am…

与上级意见不合时如何恰当地表达自己的观点?

在工作中与上级意见不合时&#xff0c;恰当表达自己的观点并寻求共识是一个需要谨慎处理的问题。以下是一些建议&#xff1a; 1. **尊重与礼貌**&#xff1a;在任何情况下&#xff0c;都应保持对上级的尊重和礼貌。即使在意见不合时&#xff0c;也要避免情绪化&#xff0c;保持…

nodejs工具脚本json转excel

json转excel 主要使用 sheetjs 库 vim convertJsonToExcel.js 封装转换方法 import fs from fs; import XLSX from xlsx;/*** 扁平化嵌套json对象* param {Object} jsonObj* param {String} prefix* returns*/ export function flattenKeys(jsonObj, prefix ) {const resul…

运筹学基础(七):拉格朗日松弛(Lagrangian relaxation)

文章目录 基本概念原问题松弛问题、拉格朗日乘子、对偶函数对偶问题三个问题之间的关系 为什么要用拉格朗日松弛法算法流程核心问题松弛哪个约束松弛后分解的子问题的求解拉格朗日乘子怎么定 参考资料 基本概念 原问题 考虑如下的整数规划问题&#xff1a; m i n c T x s . …