Helm 包管理器

news/2024/7/8 1:53:47

一、什么是 Helm?

Kubernetes 包管理器
Helm 是查找、分享和使用软件构件 Kubernetes 的最优方式。

Helm 管理名为 chart 的 Kubernetes 包的工具。Helm 可以做以下的事情:
从头开始创建新的 chart
将 chart 打包成归档(tgz)文件
与存储 chart 的仓库进行交互
在现有的 Kubernetes 集群中安装和卸载 chart
管理与 Helm 一起安装的 chart 的发布周期

对于Helm,有三个重要的概念:

chart 创建Kubernetes应用程序所必需的一组信息。
config 包含了可以合并到打包的chart中的配置信息,用于创建一个可发布的对象。
release 是一个与特定配置相结合的chart的运行实例。

二、Helm 架构 

2.1 重要概念

chart:chart 创建 Kubernetes 应用程序所必需的一组信息。

config:config 包含了可以合并到打包的 chart 中的配置信息,用于创建一个可发布的对象。

release:release 是一个与特定配置相结合的 chart 的运行实例。

2.2 组件

Helm 客户端:

Helm 客户端 是终端用户的命令行客户端。负责以下内容:
本地 chart 开发
管理仓库
管理发布
与 Helm 库建立接口
发送安装的 chart
发送升级或卸载现有发布的请求




Helm 库:

Helm 库 提供执行所有 Helm 操作的逻辑。与 Kubernetes API 服务交互并提供以下功能:
结合 chart 和配置来构建版本
将 chart 安装到 Kubernetes 中,并提供后续发布对象
与 Kubernetes 交互升级和卸载 chart
独立的 Helm 库封装了 Helm 逻辑以便不同的客户端可以使用它。

三、安装 Helm

1.下载二进制文件:https://get.helm.sh/helm-v3.2.3-linux-amd64.tar.gz

2.解压(tar -zxvf helm-v3.10.2-linux-amd64.tar.gz)

3.将解压目录下的 helm 程序移动到 usr/local/bin/helm

4.添加阿里云 helm 仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add azure http://mirror.azure.cn/kubernetes/charts

四、Helm 的常用命令

helm repo    列出、增加、更新、删除 chart 仓库

helm search  使用关键词搜索 chart

helm pull    拉取远程仓库中的 chart 到本地

helm create    在本地创建新的 chart

helm dependency    管理 chart 依赖

helm install    安装 chart

helm list        列出所有 release

helm lint        检查 chart 配置是否有误

helm package        打包本地 chart

helm rollback        回滚 release 到历史版本

helm uninstall        卸载 release

helm upgrade        升级 release

五、chart 详解

5.1 目录结构

mychart
├── Chart.yaml
├── charts # 该目录保存其他依赖的 chart(子 chart)
├── templates # chart 配置模板,用于渲染最终的 Kubernetes YAML 文件
│   ├── NOTES.txt # 用户运行 helm install 时候的提示信息
│   ├── _helpers.tpl # 用于创建模板时的帮助类
│   ├── deployment.yaml # Kubernetes deployment 配置
│   ├── ingress.yaml # Kubernetes ingress 配置
│   ├── service.yaml # Kubernetes service 配置
│   ├── serviceaccount.yaml # Kubernetes serviceaccount 配置
│   └── tests
│       └── test-connection.yaml
└── values.yaml # 定义 chart 模板中的自定义配置的默认值,可以在执行 helm install 或 helm update 的时候覆盖

5.2 Redis chart 实践

5.2.1 搜索 redis chart

# 搜索 redis chart
helm search repo redis

# 查看安装说明
helm show readme bitnami/redis

5.2.2  修改配置安装

# 先将 chart 拉到本地
helm pull bitnami/redis

# 解压后,修改 values.yaml 中的参数
tar -xvf redis-17.4.3.tgz

# 修改 storageClass 为 managed-nfs-storage
# 设置 redis 密码 password
# 修改集群架构 architecture,默认是主从(replication,3个节点),可以修改为 standalone 单机模式
# 修改实例存储大小 persistence.size 为需要的大小
# 修改 service.nodePorts.redis 向外暴露端口,范围 <30000-32767>

# 安装操作
# 创建命名空间
kubectl create namespace redis

# 安装
cd ../
helm install redis ./redis -n redis

5.2.3 查看安装情况

# 查看 helm 安装列表
helm list

# 查看 redis 命名空间下所有对象信息
kubectl get all -n redis

5.2.4 升级与回滚

要想升级 chart 可以修改本地的 chart 配置并执行:
helm upgrade [RELEASE] [CHART] [flags]
helm upgrade redis ./redis
使用 helm ls 的命令查看当前运行的 chart 的 release 版本,并使用下面的命令回滚到历史版本:

helm rollback <RELEASE> [REVISION] [flags]

# 查看历史
helm history redis
# 回退到上一版本
helm rollback redis
# 回退到指定版本
helm rollback redis 3

5.2.5 helm 卸载 redis

helm delete redis -n redis


http://lihuaxi.xjx100.cn/news/1886154.html

相关文章

Next.js中的App Router与Page Router,各自的作用和使用方式,如何理解和配置使用?

App Router介绍 Next.js中的App Router是全局的路由器&#xff0c;它用于在应用程序的所有页面之间进行导航。它可以用于在页面之间传递状态和数据&#xff0c;类似于React中的Context。 App Router是通过_app.js文件中的getInitialProps方法来配置的。 在 Next.js 中&#xf…

SD-WAN架构:优化连接以提升性能

SD-WAN架构主要分为三种类型&#xff0c;分别为本地架构、支持云的架构、支持云的骨干架构。每一种架构都基于它们利用广域网&#xff08;WAN&#xff09;的方式而有其独特的优势。本文将对三种SD-WAN架构进行简要介绍。 SD-WAN本地架构 SD-WAN本地架构是在现场使用SD-WAN盒或…

mysql源码linux环境部署

文章目录 一、mysql下载地址二、安装步骤1.cd /usr/local/ #切换到此目录下2.上传mysql安装包到该目录下3.解压并且移动文件到 /usr/local/mysql目录下 三、创建用户组&#xff0c;分配权限四、修改文件总结 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参…

【教程】app备案流程简单三部曲即可完成

APP备案流程包括以下步骤&#xff1a; 1. 开发者实名认证&#xff1a;在提交备案申请之前&#xff0c;开发者需要通过移动应用开发平台进行实名认证。这个步骤需要提供身份证号码、姓名、联系方式等信息&#xff0c;并上传相关证件照片或扫描件。 2. 应用信息登记&#xff1a…

【开题报告】基于SpringBoot的小饭桌管理系统的设计与实现

1.选题背景 &#xff08;1&#xff09;技术需求&#xff1a;随着互联网和移动互联网的快速发展&#xff0c;餐饮行业也面临着数字化、信息化的挑战和机遇。许多餐厅或饭店管理仍然采用传统的方式&#xff0c;存在着排队等候时间长、座位安排不合理等问题。因此&#xff0c;设计…

HyperGCN代码复现

环境&#xff1a;python3.6.7&#xff0c;torch0.4&#xff0c;外加pyyaml。 问题1:TypeError: cant convert np.ndarray of type numpy.intc. The only supported types are: double, float, float16, int64, int32, and uint8. 解决办法&#xff1a; 复现结果&#xff1a; …

dockerfile基于NMP+wordpress创建镜像

内部通信地址 nginx 172.111.0.10 docker-nginx mysql 172.111.0.20 docker-mysql php 172.111.0.30 docker-php 1、创建单独目录 2、创建容器的自定义网络 docker network create --subnet172.111.0.0/16 --opt "com.docker.network.bridge.name"&quo…

cache教程 2.单机并发缓存

0.对原教程的一些见解 个人认为原教程中两点知识的引入不够友好。 首先是只读数据结构 ByteView 的引入使用是有点迷茫的&#xff0c;可能不能很好理解为什么需要ByteView。 第二是主体结构 Group的引入也疑惑。其实要是熟悉groupcache&#xff0c;那对结构Group的使用是清晰…