k8s系列-helm
2023-02-18 16:39:41 时间
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等程序。
相关文章
- Java编程中忽略这些细节,Bug肯定找上你
- 9个问题,带你掌握流程控制语句中的java原理
- 从IDC Marketscape报告看区块链政务数字化未来:权威解读新热点、新机遇
- chatGPT的火爆,并不偶然
- React 开发 | 常用 Hooks
- JDK19都出来了~是时候梳理清楚JDK的各个版本的特性了【JDK12特性讲解】
- Eolink 让我“重新认识“了自动化测试...
- 老板:你也把咱们网站弄成灰色——网站变灰色如何实现
- iptables规则案例
- ‘极锐’-一种新的锐化算法
- PS/LR滤镜插件套装 Nik Collection v5.3.0 Win/Mac
- Chrome插件:uBlock Origin – Chrome浏览器高效低占用的广告拦截插件
- 前端与区块链
- 云原生之微服务
- 集群动态环境管理神器 Modules
- 记 os_object_release Crash 排查
- 记 libAccessibility 通知 Crash 排查
- Ant Design Pro 中 点击子菜单的时候,其他菜单不自动收起来
- ETC 可视化
- 1267-Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLIC for o...