Helm chart 配置、使用简介

embedded/2024/12/27 18:36:16/

helm说明

官方文档:https://helm.sh/zh/docs/helm/helm/

关于 Helm Chart

Helm是Kubernetes生态系统中的一个软件包管理工具,专门负责管理Kubernetes应用资源。而Helm仓库(Repository)在Helm中扮演着重要角色,是Helm实现应用包管理的重要组件,为用户提供了便捷、高效的应用管理方式。
Helm仓库本质上是一个Web服务器,该服务器保存了一系列的Chart软件包以供用户下载,并且提供了一个该Repository的Chart包的清单文件以供查询。开发者按照Helm Chart的格式,将应用所需的资源文件包装起来,通过模版化的方式将一些可变字段暴露给用户,最后将封装好的应用包,也就是Helm Chart,集中存放在统一的仓库中供用户浏览下载。用户只需要一行简单的命令就可以完成应用的安装、卸载与升级。对于安装之后状态,也可以通过 helm list 或者是原生的 kubectl 进行查询。
Helm可以同时管理多个不同的Repository。通过使用Helm仓库,用户可以方便地搜索和查找符合其需求的Kubernetes应用,并通过Helm工具进行安装、升级和管理。

Helm仓库应用场景

Helm仓库在Kubernetes应用部署和管理中具有广泛的应用场景。Helm仓库在Kubernetes应用部署和管理中具有广泛的应用场景,包括统一管理、版本控制和回滚、快速部署和分发、跨环境一致性部署、安全漏0管理和审核以及多团队协同工作。

  1. 统一管理应用:通过使用Helm仓库,用户可以将Kubernetes应用集中存储和管理,方便对应用的统一管理和控制。这有助于提高应用的管理效率,降低管理的复杂度。
  2. 版本控制和回滚:Helm仓库支持Charts的版本管理,用户可以方便地回滚到之前的版本,也可以比较不同版本之间的差异。这有助于在出现问题时快速恢复到正常状态,同时也有助于进行应用升级和回滚的版本控制。
  3. 快速部署和分发:Helm仓库提供了快速部署和分发Kubernetes应用的能力。用户可以从仓库中下载和安装Charts,也可以将自定义的Charts上传到仓库中进行分享和分发,实现应用的快速部署和分发。
  4. 跨环境一致性部署:通过使用Helm仓库,用户可以在不同的环境中实现一致的Kubernetes应用部署。例如,在开发和测试环境中,用户可以使用相同的Helm仓库,确保应用在不同环境中的一致性。
  5. 安全漏0管理和审核:Helm仓库可以对上传的Charts进行审核和安全检查,确保用户下载的Charts的安全性。此外,仓库还支持对安全漏0的管理和审核,包括漏0扫描和签名验证等,以保障应用的安全性。
  6. 多团队协同工作:通过使用Helm仓库,多个团队可以协同工作,共同管理和维护Kubernetes应用。团队之间可以共享相同的Helm仓库,共同维护和管理应用的部署和管理。

常用的命令

  • helm create:在本地创建新的 chart;
  • helm dependency:管理 chart 依赖;
  • helm intall:安装 chart;
  • helm lint:检查 chart 配置是否有误;
  • helm list:列出所有 release;
  • helm package:打包本地 chart;
  • helm repo:列出、增加、更新、删除 chart 仓库;
  • helm rollback:回滚 release 到历史版本;
  • helm pull:拉取远程 chart 到本地;
  • helm search:使用关键词搜索 chart;
  • helm uninstall:卸载 release;
  • helm upgrade:升级 release;

chart 操作案例

配置国内仓库地址

常用的仓库
  • 官方仓库(https://hub.kubeapps.com/charts/incubator)
  • 阿里云仓库(https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts )
  • 微软仓库( http://mirror.azure.cn/kubernetes/charts/) 这个仓库推荐,基本上官网有的 chart 这里都有。
添加存储库 我这里添加了多个存储库
## 添加阿里云的源
# helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
"aliyun" has been added to your repositories## 添加 azure 的源
# helm repo add stable http://mirror.azure.cn/kubernetes/charts
"stable" has been added to your repositories
更新所有仓库
# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "aliyun" chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈Happy Helming!
查看现在正在使用的源
# helm repo list
NAME               	URL
aliyun             	https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
stable             	http://mirror.azure.cn/kubernetes/charts

chart下载

搜索Helm仓库中可部署的Chart列表
## Redis 为例
# helm search repo redis
NAME                            	CHART VERSION	APP VERSION	DESCRIPTION
aliyun/redis                    	1.1.15       	4.0.8      	Open source, advanced key-value store. It is of...
aliyun/redis-ha                 	2.0.1        	           	Highly available Redis cluster with multiple se...
stable/prometheus-redis-exporter	3.5.1        	1.3.4      	DEPRECATED Prometheus exporter for Redis metrics
stable/redis                    	10.5.7       	5.0.7      	DEPRECATED Open source, advanced key-value stor...
stable/redis-ha                 	4.4.6        	5.0.6      	DEPRECATED - Highly available Kubernetes implem...
aliyun/sensu                    	0.2.0        	           	Sensu monitoring framework backed by the Redis ...
stable/sensu                    	0.2.5        	0.28       	DEPRECATED Sensu monitoring framework backed by...
下载chart到本地
## helm pull chart_name(名称须具体,例 google/nginx-ingress。不能只是关键字,否则下载不到 )# helm pull aliyun/redis
# ll
total 24
-rw-r--r--  1 qiangsh  staff   6.0K 12  4 20:06 redis-1.1.15.tgz## 下载基于OCI的chart
# helm pull oci://localhost:5000/helm-charts/mychart --version 0.1.0
Pulled: localhost:5000/helm-charts/mychart:0.1.0
Digest: sha256:0be7ec9fb7b962b46d81e4bb74fdcdb7089d965d3baca9f85d64948b05b402ff

上传自建chart

需提前搭建Helm私有仓库,此处我直接使用华为云OBS对象存储服务,或者自己部署minio服务(设置 helm 仓库策略为读写权限)。

1. 自建chart

除了从远程 helm 仓库中获取第三方 chart 外,你也可以创建自己的 chart。

# mkdir -p /data/helm/repo
# cd /data/helm/repo
# helm create mychart
Creating mychart
# ll
总用量 0
drwxr-xr-x 4 root root 4096 2024/12/04 19:40:12 mychart
2. chart 打包

如果你想上传自建的 chart 到私有仓库中去,需要先将自建的 chart 打包。

# helm package mychart
Successfully packaged chart and saved it to: /data/helm/repo/mychart-0.1.0.tgz
3. 生成或更新 chart 索引文件
# helm repo index /data/helm/repo
# ll
总用量 8
-rw-r--r-- 1 root root  392 2024/12/04 19:41:42 index.yaml
drwxr-xr-x 4 root root 4096 2024/12/04 19:40:12 mychart
-rw-r--r-- 1 root root 4168 2024/12/04 19:40:45 mychart-0.1.0.tgz

索引文件 index.yaml 内容如下:

apiVersion: v1
entries:mychart:  # 由内容可知,已经更新了准备上传的 chart 信息。- apiVersion: v2appVersion: 1.16.0created: "2024-12-04T19:41:42.875950524+08:00"description: A Helm chart for Kubernetesdigest: c8b7b97781c47c6f1add5134705aab28d80cb8c7c56379bcfbad5d9ff798d1e8name: mycharttype: applicationurls:- mychart-0.1.0.tgzversion: 0.1.0
generated: "2024-12-04T19:41:42.875205513+08:00"
4. 上传 chart 和索引文件

登录私有仓库,上传当前目录下index.yaml 和后缀为tgz 的包到远程私有仓库里。

5. 添加私有仓库
# helm repo add my-helm-repo https://xxxxxx.obs.cn-north-4.myhuaweicloud.com/helm-repo
# 注意不要忘写私有仓库名 helm-repo
6. 验证私有仓库
# helm repo list
NAME               	URL
aliyun             	https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
stable             	http://mirror.azure.cn/kubernetes/charts
my-helm-repo	https://xxxxxx.obs.cn-north-4.myhuaweicloud.com/helm-repo
7. 更新本地 chart 仓库
# helm repo update

更新本地 chart 仓库之后,就可以检索到刚上传的自定义 chart 了。

# helm search repo mychart
NAME                       	CHART VERSION	APP VERSION	DESCRIPTION
my-helm-repo/mychart       	0.1.0        	1.16.0     	A Helm chart for Kubernetes

http://www.ppmy.cn/embedded/143202.html

相关文章

初识交换机和路由器

目录 初识交换机和路由器交换机路由器主要区别工作流程如果是交换机:如果是路由器 初识交换机和路由器 左为路由器,右为交换机 交换机 交换机的前身是集线器,集线器是物理层的设备,有很多接口,当一台计算机A想发消息…

html-两个div,让一个div跟随另外一个div的高度

在开发的过程中遇到有些场景事这样的,两个div的高度不一致,而且都是动态高度,有的时候div1高,有的时候div2高,如果设置flex的话,那么就会把较矮的元素撑大,但是我想始终都以div1的高度作为基准&…

【Word 知识点】

快捷键 1.复制 Ctrlc 2.粘贴 Ctrlv 3.剪切 Ctrlx 4.全选 Ctrla 5.加粗 Ctrlb 6.打开 Ctrlo 7.新建 Ctrln 8.保存 Ctrls 9.查找 Ctrlf 10.替换 Ctrlh Word 要点 1.文档基本操作: 新建 打开 保存 复制 粘贴 剪切 查找 替换 2.字体:字体 字号 颜…

常见的 CSS 对齐方式介绍及代码示例

目录 常见的 CSS 对齐方式介绍及代码示例 1. 使用 text-align 属性对齐文本 2. 使用 vertical-align 对齐内联元素 3. 使用 margin 和 auto 实现水平居中 4. 使用 Flexbox 对齐 5. 使用 Grid 对齐 6. 使用 position 和 transform 对齐 常见的 CSS 对齐方式介绍及代码示例…

防抖与节流

防抖 当某个事件触发时,等待一段时间再执行函数。如果在这段时间内事件再次被触发,那么就重新计时,换句话说,防抖可以确保函数在事件结束后才被执行,避免了多次触发。 应用场景: 搜索框输入:…

2024年顶级小型语言模型前15名

本文,我们将深入了解2024年备受瞩目的十五款小型语言模型(SLMs),它们分别是Llama 3.1 8B、Gemma2、Qwen 2、Mistral Nemo、Phi-3.5等。这些SLMs以其精巧的体积和高效率著称,它们不需要依赖庞大的服务器资源&#xff0c…

Android Studio安装ADB Wi-Fi插件使用WIFI连接终端设备调试程序

提示:“奔跑吧邓邓子” 的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如 IBM System 3650 M5)、云服务平台(如腾讯云、华为云)、服务器软件(如 Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker 等)、开发工具(如 Gi…

【JavaEE】多线程(4)

一、单例模式 1.1 设计模式 单例模式是一种经典的设计模式,什么是设计模式? 设计模式就是为各种经典的问题场景提供一些解决方案,遇到这个场景,代码就按照"前人"总结 的模式去写,代码就不会写到很差 其实…