【Helm 及 Chart 快速入门】01、Helm 基本概念及仓库管理

目录

一、为何需要 Helm

二、什么是 Helm 

三、Helm 核⼼概念 

四、Helm 架构 

五、Helm 安装 

六、Helm 仓库管理

6.1 查看仓库 

6.2 添加仓库 

6.3 更新仓库 

6.4 删除仓库 


 

一、为何需要 Helm

        在早期的 Linux 系统中,维护和安装软件包是⼀件极其麻烦的事情。为了安装⼀个应⽤程序,我们需要使⽤到编译的⽅式,⽽编译软件包,⾸先有⼀定的技术⻔槛,同时对于⼀些⽐较挑剔的应⽤程序,它可能在编译过程中对内核版本或系统环境有特定的要求。为了解决这个问题,就引⼊了包管理⼯具 rpm,虽然 rpm 能在⼀定程度上减轻安装应⽤的压⼒,但任然会⾯临应⽤程序间依赖关系的困扰。直到后来 yum 的出现,我们才能轻松地解决依赖关系,实现⼀键安装应⽤程序。

        然⽽,当我们将应⽤迁移到 Kubernetes 系统时,我们部署应⽤通常需要编写⼀份配置清单⽂件。⽽每个清单⽂件都对应集群中的⼀个资源,如 Deployment、 Service、Ingress 等。但在实际⽣产环境中,我们需要部署和维护⼤量的应⽤,且每个应⽤都需要多个 YAML 资源清单。这意味着我们需要编写和维护⼤量的 YAML 清单⽂件。因此,我们迫切需要在 Kubernetes 中引⼊⼀个类似 yum 这样的⼯具,通过⼀条特定的命令就可以在系统上完成应⽤的安装、升级、以及后期的维护。⽽这个⼯具就是 Helm。

二、什么是 Helm 

Helm 官网:Helm

        Helm 是 CNCF 学院毕业的项⽬,它是 Kubernetes 中的包管理⼯具,它能让我们在Kubernetes 中⾮常⽅便的安装、升级、卸载我们的应⽤。Helm 的⼯作原理与 yum ⾮常相似。⾸先 Helm 会将应⽤所需要 YAML 配置清单⽂件打包成⼀个单元,称为 chart。⽽这个 chart 通常是保存在 Helm 仓库中,当需要时进⾏调⽤。⽽每个 chart 都包含了部署⼀个应⽤所需要的所有资源和配置,包括但不限于 Deployment、Service、Ingress、ConfigMap 等。因此借助 Helm ⼯具,我们就可以使⽤⼀条命令来部署和管理⼀个完整的应⽤。 

        值得注意的是:Helm Chart 中的资源清单⽂件并⾮是固定的,⽽是采⽤了模板的形式。在应⽤部署过程中,我们还需要借助 values.yaml 这个配置⽂件来渲染这些模板⽂件,从⽽⽣成真正要部署的资源清单。也就是说 helm 它需要将模板⽂件与⽤户定义的 values.yaml 配置⽂件结合起来,从⽽⽣成⼀份完整的应⽤部署清单,最后将这个清单部署到 Kubernetes 集群上。 

三、Helm 核⼼概念 

        Helm 的核⼼组成部分包括 Chart、Repository 和 Release,我们可以将其分别理解为应⽤程序包、应⽤程序包商店和已安装的应⽤。

  • Chart(应⽤程序包):Chart 是 Helm 的⼀种打包格式,就像 APK ⽂件⼀ 样。它包含了部署⼀个应⽤所有的必要资源清单⽂件和配置。

  • Repository(应⽤商店):Repository 是存储和分享 Chart 的地⽅,就像⼀个应⽤商店⼀样。你可以在这⾥找到并下载你需要的 Chart,然后进⾏安装。

  • Release(已安装的应⽤):当你⽤ Chart 在 Kubernetes 集群上部署⼀个应⽤或服务,这就产⽣了⼀个 Release,就像你在⼿机上安装了⼀个 APP。通过你也可以根据同⼀份 Chart 在集群上部署多次,每次都会⽣成⼀个新的 Release,就像同⼀个 APK 可以在⼿机上安装多次(例如安装多个微信、淘 宝、京东) 。

四、Helm 架构 

Helm 架构分为 V2 和 V3 版。 

        在 Helm v2 的架构中,有⼀个重要的组件叫做 Tiller 。 Tiller 是 Helm v2 的服务端,它在 Kubernetes 集群中运⾏,并负责响应 Helm 客户端的请求,同时管理 Release 的⽣命周期,包括部署、更新、删除等操作。但由于 Tiller 必须在 Kubernetes 集群中的每个命名空间都安装⼀个实例,以使 Helm 能在该命名空间中部署应⽤,这种要求增加了管理的复杂性。 

        在 Helm v3 的架构中,开发者移除了 Tiller 这个服务端组件。让 Helm 客户端可以直接通过 kubeconfig 的⽂件,与 Kubernetes 的 APIServer 进⾏交互。这个改变带来了两个主要的好处。

  1. ⾸先,Helm 可以直接使⽤ Kubernetes ⾃带的⻆⾊访问控制。这意味着,我们可以根据每个⽤户的需求和权限,提供定制的 kubeconfig ⽂件。这种改变增强了系统的安全,因为我们可以更精细地控制谁可以访问什么资源,以及他们可以进⾏什么操作。

  2. 其次,去掉 Tiller 后,Helm 的架构和部署流程都变得更简洁、更清晰,这使得使⽤ Helm 变得更加简单和⽅便。 

五、Helm 安装 

访问 github,搜索 helm,然后获取对应下载地址:https://github.com/helm/helm/releases

下载对应的 helm 包,然后解压:(在 master 节点安装)

[root@k8s-master1 ~]# wget https://get.helm.sh/helm-v3.13.3-linux-amd64.tar.gz
[root@k8s-master1 ~]# tar -zxvf helm-v3.13.3-linux-amd64.tar.gz 
[root@k8s-master1 ~]# mv linux-amd64/helm /usr/local/bin/

helm 命令补全:

[root@k8s-master1 ~]# helm completion bash > /etc/bash_completion.d/helm
[root@k8s-master1 ~]# source /etc/bash_completion.d/helm

查看当前 helm 版本:

[root@k8s-master1 ~]# helm version
version.BuildInfo{Version:"v3.13.3", GitCommit:"c8b948945e52abba22ff885446a1486cb5fd3474", GitTreeState:"clean", GoVersion:"go1.20.11"}

六、Helm 仓库管理

6.1 查看仓库 

[root@k8s-master1 ~]# helm repo list

目前没有任何仓库:

 

6.2 添加仓库 

添加其中一两个即可:

# azure 软源
helm repo add stable http://mirror.azure.cn/kubernetes/charts/

# 阿⾥云源
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

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

# appstore 仓库
helm repo add appstore https://charts.grapps.cn

6.3 更新仓库 

[root@k8s-master1 ~]# helm repo update

6.4 删除仓库 

[root@k8s-master1 ~]# helm repo remove bitnami 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【赠书第16期】码上行动:用ChatGPT学会Python编程

文章目录 前言 1 ChatGPT简介 2 Python编程简介 3 使用ChatGPT学习Python编程 4 如何使用ChatGPT学习Python编程 5 推荐图书 6 粉丝福利 前言 随着人工智能技术的不断发展,聊天机器人已经成为我们日常生活和工作中不可或缺的一部分。其中,ChatGP…

Android系统的启动流程

Android系统启动流程大致可以概括为以下的几个步骤: 电源启动BootLoader启动Linux内核启动init进程启动Zygote进程启动SystemServer进程启动Launcher启动 关键的进程及其作用: init进程 init进程是Android系统中用户空间的第一个进程,进程号…

leetcode 每日一题 2023年12月28日 收集巧克力

题目 2735. 收集巧克力 给你一个长度为 n、下标从 0 开始的整数数组 nums,nums[i] 表示收集位于下标 i 处的巧克力成本。每个巧克力都对应一个不同的类型,最初,位于下标 i 的巧克力就对应第 i 个类型。 在一步操作中,你可以用成…

每个程序员都该学习的5种开发语言

我曾在某处读到过(可能在《代码大全》,但我不敢确定),程序员应该每年学习一门新的编程语言。但如果做不到,我建议,你至少学习以下5种开发语言,以便你在职业生涯有很好的表现。 每个公司都喜爱精…

【数据结构】数据结构中应用题大全(完结)

自己在学习过程中总结了DS中几乎所有的应用题,可以用于速通期末考/考研/各种考试。很多方法来源于B站大佬,底层原理本文不做过多介绍,建议自己研究。例题大部分选自紫皮严书。pdf版在主页资源 一、递归时间/空间分析 1.时间复杂度的分析 设…

润和软件HopeStage与永中Office完成产品兼容性互认证

近日,江苏润和软件股份有限公司(以下简称“润和软件”)HopeStage 操作系统与永中软件股份有限公司(以下简称“永中软件”)永中Office办公软件完成产品兼容性测试。 测试结果表明:企业级通用操作系统HopeSta…

2023量子科技十大人物(团队) | 光子盒年度系列

今年,是量子科学与技术的又一个丰收年,学术研究团体和科技公司纷纷庆祝在量子计算、量子通信和量子计量学以及基础量子科学方面取得的重大成就。面对如此多令人兴奋的进展,我们不能不为这些进展庆祝——而所有这些的一切,都离不开…

如何编写高效的正则表达式?

正则表达式(Regular Expression,简称regex)是一种强大的文本处理技术,广泛应用于各种编程语言和工具中。本文将从多个方面介绍正则表达式的原理、应用和实践,帮助你掌握这一关键技术。 正则可视化 | 一个覆盖广泛主题…

为什么网络安全从业者都考CISP-PTE

网络an全从业者考取CISP-PTE证书的原因👇 1️⃣高度认可 💎CISP-PTE证书是中国信息an全测评中心认证颁发,是国家对信息an全人员资质的zui高认可,具有很高的含金量。 对于网络an全从业者来说,可以证明自己具备规划测试方…

【python、pytorch】

什么是Pytorch Pytorch是一个基于Numpy的科学计算包,向它的使用者提供了两大功能。作为Numpy的替代者,向用户提供使用GPU强大功能的能力。做为一款深度学习的平台,向用户提供最大的灵活性和速度。 基本元素操作 Tenors张量:张量…

企业如何选择可靠的文件传输软件?曝光6招内行方法

随着企业内部对于文件传输需求的增加,原先传统的传输方式逐渐不再适合传输要求,无论是内部协作还是外部合作,企业都需要高效、安全、稳定的文件传输软件来支持业务的顺利进行。 然而,市面上的文件传输软件众多,不同的软…

redis数据结构源码分析——string

前面的文章大体讲解了redis的几种数据类型,针对设计表巧妙的数据类型,后续会出几篇文章单独讲解下,那么本篇文章针对string的源码进行讲解。 文章目录 字符串的三种编码sds结构sds的设计思想和优势sds API解析sdsnewlen(创建字符…

Linux源码解读

Linux内核源码是一个开源的操作系统内核,由著名的开发者林纳斯托瓦兹(Linus Torvalds)于1991年在芬兰赫尔辛基大学发布。Linux内核的源代码由一系列的C语言程序文件组成,这些文件包含了操作系统内核所需的所有功能,包括内存管理、进程调度、文…

嘴尚绝:卤味市场未来发展潜力无限,谁将成为下一个风口?

随着人们生活水平的提高,卤味作为一种美味的小吃,越来越受到消费者的喜爱。在餐饮市场上,卤味市场也呈现出越来越繁荣的景象。那么,卤味市场未来发展如何呢?今天,我们就来探讨一下这个问题。 一、消费升级推…

【漏洞复现】Hikvision SPON IP网络对讲广播系统存在命令执行漏洞CVE-2023-6895

漏洞描述 Hikvision Intercom Broadcasting System是中国海康威视(Hikvision)公司的一个对讲广播系统。 Hikvision Intercom Broadcasting System是中国海康威视(Hikvision)公司的一个对讲广播系统。Hikvision Intercom Broadcasting System 3.0.3_20201113_RELEASE(HIK)版…

【Vue3】2-3 : 选项式API的编程风格与优势

本书目录:点击进入 一、选项式API - 三大优势 ▶ 只有一个参数,不会出现参数顺序的问题,随意调整配置的位置 传入的是一个对象,没有参数顺序问题 对比反面教材: ▶ 非常清晰,语法化特别强 ▶ 非常…

轨迹合并 合并轨迹

搜索微信小程序 merge gpx

Vue3-44-Pinia- 安装步骤

介绍 本文介绍 在 vue3 中 安装 Pinia 的步骤 安装步骤 1、npm 安装 npm install pinia》 安装完成后可以看到 package.json 中添加了 pinia 的依赖信息 2、main.ts 中配置 // 引入 vue实例创建方法 import { createApp } from vue// 引入pinia import { createPinia } fro…

Linux查找命令@which、find

目录 which概念语法作用 find概念语法按文件名查找按文件大小查找 作用演示一演示二演示三 通配符 总结 which 概念 which 是一个常用的 Linux/Unix 命令,用于查找并显示指定命令的绝对路径。 语法 which 要查找的命令 》无参数。 》 which后面,跟要查…

使用Adobe Acrobat Pro DC给pdf文件填加水印

前言 GPT4的官方售价是每月20美元,很多人并不是天天用GPT,只是偶尔用一下。 如果调用官方的GPT4接口,就可以按使用量付费,用多少付多少,而且没有3个小时内只能提问50条的使用限制。 但是对很多人来说调用接口是比较麻烦…