k8s中的helm
·
k8s中的helm
Helm是什么?
Helm 是用于 Kubernetes(K8s)的开源包管理器,它可以帮助用户定义、安装和升级复杂的 Kubernetes 应用程序。
解决的用户痛点
-
简化复杂应用的部署流程
-
管理应用的依赖关系
-
实现应用的版本控制和回滚
-
统一应用的配置管理
部署Helm
# 获取安装脚本
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
# 权限授权
chmod 700 get_helm.sh
# 执行脚本安装
./get_helm.sh
# 默认安装在/usr/local/bin/helm目录下
Helm 的核心概念解析
- Chart 应用的安装包
my-chart/
├── Chart.yaml # 元数据(名称、版本、描述等)
├── values.yaml # 默认配置值
├── values.schema.json # 配置验证 schema
├── charts/ # 依赖的子 Chart
├── templates/ # Kubernetes 资源模板
│ ├── deployment.yaml
│ ├── service.yaml
│ └── _helpers.tpl # 模板辅助函数
└── README.md # 说明文档
- Release Chart的实例化部署
-
当 Chart 被部署到集群时,称为一个 Release
-
每个 Release 有唯一名称,可包含多个版本
-
支持通过
helm upgrade更新和helm rollback回滚
- Respository Chart的仓库
存储和共享Chart的地方,既有官方仓库又有私有仓库
工作流程
-
用户通过 Helm CLI 从仓库拉取 Chart
-
使用
values.yaml或命令行参数配置 Chart -
Helm 渲染模板生成完整的 Kubernetes 资源 YAML
-
将资源部署到集群,生成 Release
Helm 的常用命令(Helm 3)
| 命令 | 描述 |
|---|---|
helm search repo |
搜索仓库中的 Chart |
helm pull |
从仓库拉取 Chart 到本地 |
helm install |
安装 Chart 到集群,生成 Release |
helm upgrade |
更新已部署的 Release |
helm uninstall |
卸载 Release |
helm list |
列出集群中的所有 Release |
helm history |
查看 Release 的版本历史 |
helm rollback |
回滚 Release 到指定版本 |
helm template |
本地渲染 Chart 模板 |
helm list --all-namespaces
# 查看所有命名空间下的Chart
使用Helm创建资源
使用 --values 或 --set 分离环境配置,自定义灵活设置启动参数
# 安装 Nginx Chart
helm install my-nginx stable/nginx-ingress
# 可以使用--namespace指定命令空间
# --create-namespace如果命名空间不存在自动创建
# 查看部署状态
helm list
kubectl get pods -l app=nginx-ingress
# 升级应用
helm upgrade my-nginx stable/nginx-ingress --set replicaCount=3
# 灵活的设置副本数有容错升级
# 回滚到上一版本
helm rollback my-nginx 1
# 轻松回滚上一版本
部署参数详解
helm install my-nginx stable/nginx-ingress \
--namespace ingress-nginx \
--set controller.replicaCount=2 \
--set controller.service.type=LoadBalancer
# 可以指定命名空间和环境变量,降低了配置需要在文件中书写的复杂
# --values my-values.yaml可以指定启动参数配置文件
更多推荐


所有评论(0)