k8s系列-helm
k8s 系列 Helm
2023-06-13 09:16:10 时间
helm 介绍
Helm 是 Kubernetes 的包管理器,Helm 由客户端组件 helm 和服务端组件 Tiller 组成, 能够将一组K8S资源打包统一管理。
Helm 三大核心概念:
- chart:Helm的打包格式叫做chart,所谓chart就是一系列文件, 它描述了一组相关的 k8s 集群资源
- release:使用 helm install 命令在 Kubernetes 集群中部署的 Chart 称为 Release
- Tiller:是 Helm 的服务端,Tiller 负责接收 Helm 的请求,与 k8s 的 apiserver 交互,根据chart 来生成一个 release 并管理 release
- Repoistory:Helm chart 的仓库,Helm 客户端通过 HTTP 协议来访问存储库中 chart 的索引文件和压缩包
helm 架构图:
helm 安装
安装helm的前提是机器已经安装了K8S
#对应自己k8s版本号
wget https://get.helm.sh/helm-v3.6.1-linux-amd64.tar.gz
tar xf helm-v3.8.1-linux-amd64.tar.gz
cp linux-amd64/helm /usr/local/bin/helm
chmod +x /usr/local/bin/helm
配置镜像仓库:
# 查看helm镜像仓库
helm repo list
# 添加镜像仓库
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
# 刷新镜像仓库
helm repo update
Helm指令表
# 查看helm 版本
helm version
# 查看环境变量
helm env
# 检索chart包
helm search repo keyword
# 查看当前部署的所有 release
helm list
# 安装 release
helm install releaseName chartName
# 卸载release
helm uninstall releaseName
# 升级release
helm upgrade releaseName chartName
# 回滚release
helm rollback releaseName revision
# 查看release的基本信息
helm status releaseName
# 查看release的发布历史
helm history releaseName
# 查看添加的chart仓
helm repo list
# 本地添加chart仓库
helm repo add repoName URL
# 本地删除chart仓库
helm repo remove repoName
# 更新本地仓库
helm repo update
# 查看chart包中的chart.yaml文件内容
helm show chart chartName
# 查看release 信息
helm get all releaseName
自制 chart
首先需要一个准备部署的docker镜像,docker镜像制作的方法往期文章中有介绍。然后执行指令:
helm create test
会得到一个 helm 自动生成的空 chart。它 Chart 的文件夹目录如下:
test
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── ingress.yaml
│ ├── NOTES.txt
│ └── service.yaml
└── values.yaml
在根目录下的Chart.yaml
文件内,声明了当前 Chart 的名称、版本等基本信息,这些信息会在该 Chart 被放入仓库后提供检索。templates
下的文件从命名我们就能知道是k8s的配置文件。我们按照创建容器控制器的经验就能生成这些文件。values.yaml
提供了应用在安装时的默认参数。
改好配置文件后使用指令:
helm lint --strict test
检查配置文件是否有语法错误。
然后使用指令:
helm package
打包 chart,打包后会生成 test.tgz 的应用包。
使用指令:
helm install test test.tgz
安装helm包,会在你的k8s集群里面生成对应的pod等程序。
相关文章
- K8S学习笔记之在k8s中删除和添加节点的方法
- k8s实战系列: 1-再谈为什么需要Kubernetes[通俗易懂]
- K8S之CNI
- k8s学习三:创建一个nginx服务
- k8s系列(5)-Configmap和Secret
- K8s pod 动态弹性扩缩容(HPA )部署!步骤齐全,少走坑路
- 探讨 K8s 的守护进程集DaemonSet
- 【k8s连载系列】k8s介绍
- 图解K8s源码 - kubelet 下的 QoS 控制机制及 k8s Cgroups v2 简介
- mac 上学习k8s系列(54)xxl-job分布式任务调度
- K8S 生态周报| Cilium 新版本发布默认开启 ICMP 策略防护
- 图解K8s源码 - k8s核心数据结构
- mac 上学习k8s系列(46)canal同步mysql到es
- mac 上学习k8s系列(50)配置中心Apollo
- k8s 安装canal 注意事项
- 必知必会,7 张图轻松理解 K8S 集群内服务通信
- K8S 1.26 这个新特性,支持大规模并行批处理工作负载
- 实战篇:使用rook在k8s上搭建ceph集群
- k8s架构分析(二)
- K8S中快速部署Oracle(k8s配置oracle)