什么是helm?
deplyment service ingress helm的作用就是通过打包的方式,把deplyment service ingress这些打包在一块,一键式的部署服务。类似yum
官方提供的一个类似与安装仓库的功能,可以实现一键化部署应用。
helm的概念:
三个部分组成:
chart:helm的软件包,部署包,service ingress,定义好的yaml资源。类似于yum的rpm包
Release:可以理解为版本,也可以理解为在安装过程中,给这个部署的应用起一个名字
Repository:仓库。提供一个服务器,服务器中包含chart的资源。yaml资源的保存的地址
helm2 ?helm3
helm3是纯命令行方式
[root@master01 linux-amd64]# helm install my-nginx bitnami/nginx
?helm install:安装
my-nginx:release 安装的名称或者版本
bitnami/dginx:bitnami:bitnami仓库名,nginx就是chart 一系列yaml资源的集合
helm自定义模板:
根据自己的需求,定义chart。然后部署到集群当中去
[root@master01 helm]# tree nginx
nginx
├── charts
├── Chart.yaml
├── templates
│?? ├── deployment.yaml
│?? ├── _helpers.tpl
│?? ├── hpa.yaml
│?? ├── ingress.yaml
│?? ├── NOTES.txt
│?? ├── serviceaccount.yaml
│?? ├── service.yaml
│?? └── tests
│?? ????└── test-connection.yaml
└── values.yaml
3 directories, 10 files
chart:用于存储依赖,如果这个chart依赖于其他的chart,以来文件保存在这个目录
Chart.yaml:helm chart的元数据文件,包含了这个chart的名称、版本、维护者信息等等
templates:包含清单模板的目录
deployment.yaml:部署应用的模板文件
_helpers.tpl:帮助文档。告诉用户如何定义模板的值
hpa.yaml:定义了应用程序副本数的扩缩容行为
ingress.yaml:定义了外部流量如何转发到应用程序
NOTES.txt:注意事项
serviceaccount.yaml:应用程序的服务账号
service.yaml:集群内部的访问
tests?-- test-connection.yaml:测试的目录和文件,部罢完chart之后,用来测试的文件
values.yaml:核心文件。自定义的值,都是通过values。yaml,把我们的数据覆盖到安装的chart
helm install nginx-11 ./nginx --dry-run --debug
helm install 安装chart
nginx-11: release 版本号
/nginx:当前目录下的nginx的chart
-dry-run --debug: 这个chart不会被部署到集群当中,参数验证,测试chart的配置是否正确
修改chart之后重新部署
回滚
上传harbor
helm就是一个部署微服务的工具,可以跳过繁琐的自定义yaml过程,一键式的拉取和部署好所有自定义或者模版定义的服务
helm的常用命令:
① helm repo add 仓库名 url地址
② helm repo update 不加仓库名,就是更新所有仓库
③ helm repo list 仓库列表
④ hele repo remove 仓库名称
⑤ helm show chart stable/neinx 查看chart信息
? ? ?helm show all stable/nginx 查看详细信息
⑥ helm install nginx-11 stable/nginx -n lucky-cloud 安装chart,安装官网的默认版本
⑦ helm uninstall nginx-11 删除安装好的chart
⑧ helm list 查看已经安装chart
自定义模版:
helm create nginx 创建一个自定义的chart模版
values.yaml: 这里值会传给templates里面的yaml文件
helm install nginx-11 ./nginx
helm install nginx-11 ./nginx-0.1.0.tgz
如何打包创建好的chart:
helm package nginx
回滚:
helm history nginx-11
helm rollback nginx-11 1