上海手机网站制作南昌网站开发商哪家强
1、在没有helm之前,部署deployment、service、ingress等等
2、helm的作用:通过打包的方式,deployment、service、ingress这些打包在一块,一键部署服务、类似于yum功能
3、helm:官方提供的一种类似于仓库的功能,可以实现一键化部署应用
(1)helm自带回滚功能
4、helm的组件
|   chart  |   helm的软件包:包含部署包deployment,service包,ingress等等(定义好的yaml资源)类似于yum的rpm包  | 
|   release  |   版本/在安装过程中给部署的应用起一个名字  | 
|   repository  |   仓库(yaml资源的保存地址):提供一个服务器,这个服务器当中包含chart资源  | 
5、helm的版本
(1)helm2(已淘汰)
(2)helm3:纯命令行方式(目前使用)
6、部署helm
(1)部署软件
tar -xf helm-v3.12.0-linux-amd64.tar.gz
mv helm /usr/local/bin/helm
(2)配置自动补齐


(3)部署仓库
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add stable http://mirror.azure.cn/kubernetes/charts
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add incubator https://charts.helm.sh/incubator(官网)

(4)仓库(repo)的相关命令
①查看有哪些仓库:helm repo list

②更新仓库:helm repo update

③查找指定仓库中是否有nginx的yaml资源:helm search repo bitnami | grep nginx

(5)查看指定chart的一般信息:helm show chart bitnami/nginx

(6)查看指定chart的所有信息:helm show all bitnami/nginx

7、部署nginx实例
(1)查找指定仓库中是否有nginx的yaml资源:helm search repo bitnami | grep nginx

(2)安装:
①指定release名称创建:helm install my-nginx bitnami/nginx
|   helm install  |   安装  | 
|   my-nginx  |   release安装的名称或者版本  | 
|   bitnami/nginx  |   bitn仓库名,nginx就是chart一系列yaml资源的集合  | 
|   -n default  |   指定命令空间  | 


②随机生成release名称创建:helm install bitnami/nginx --generate-name


(3)访问

(4)修改service的类型
kubectl edit svc my-nginx


(5)删除:helm uninstall my-nginx

(6)查看本机所有基于helm安装的release:helm ls/helm list

8、helm自定义模版:根据需求定义chart
(1)查看chart的模版
①拉取mysql的chart包:helm pull stable/mysql
tar -xf mysql-1.6.9.tgz

②安装tree:yum -y install tree


(2)自定义nginx的chart:helm create nginx

|   charts  |   用于存储依赖环境,如果这个chart依赖于其他的chart,依赖文件保存在这个目录  | 
|   chart.yaml  |   chart的元数据文件,包含了这个chart的名称,版本,维护者信息等等  | 
|   templates  |   包含清单模版的目录  | 
|   deployment.yaml  |   部署应用的模版文件  | 
|   helpers.tpl  |   帮助文档,告诉用户如何定义模版的值  | 
|   hpa.yaml  |   定义了应用程序副本数的扩缩容行为  | 
|   ingress.yaml  |   定义了外部流量如何转发到应用程序  | 
|   NOTES.txt  |   注意事项  | 
|   serviceaccou.yaml  |   应用程序的服务账号  | 
|   service.yaml  |   集群内部的访问  | 
|   test test-connection.yaml  |   测试的目录和文件,部署完chart之后,用来测试的文件  | 
|   values.yaml  |   核心文件:自定义的值,都是通过values.yaml,把数据覆盖到安装的chart文件  | 
(3)修改配置文件
①vim Chart.yaml

②修改核心文件:vim values.yaml



(4)验证语法是否正确:helm lint nginx

(5)打包chart:helm package nginx

(6)检测:helm install nginx-1 ./nginx --dry-run --debug
|   helm install  |   安装  | 
|   nginx-1  |   release版本号  | 
|   ./nginx  |   当前目录下nginx的chart  | 
|   --dry-run --debug  |   这个chart不会被部署到集群当中,用于参数验证,测试chart的配置是否正确  | 


(7)部署安装
①第一种:基于目录安装:helm install nginx-1 ./nginx -n default


删除(一键删除):helm uninstall nginx-1

②第二种:基于压缩包安装:helm install nginx-1 /opt/helm/nginx-0.1.0.tgz -n default


(8)配置映射

(9)安装ingres
wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/mandatory.yaml
wget https://gitee.com/mirrors/ingress-nginx/raw/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml


(10)访问测试


9、修改chart之后重新部署(更新)
(1)修改核心文件values.yaml


(2)修改service文件


(3)修改版本


(4)升级:helm upgrade nginx-1 nginx

(5)访问测试

10、回滚
(1)查看版本:helm history nginx-1

(2)回滚:helm rollback nginx-1 1

11、上传harbor仓库
(1)创建项目


(2)修改配置文件(部署chart的识别路径的方式)


(3)配置安装包
mkdir -p ~/.local/share/helm/plugins/helm-push
tar -xf helm-push_0.8.1_linux_amd64.tar.gz -C ~/.local/share/helm/plugins/helm-push

(4)登录仓库:docker login -u admin -p 123456 https://hub.test.com

(5)打包:helm package nginx

(6)上传仓库:
helm push nginx-0.2.0.tgz oci://hub.test.com/charts --insecure-skip-tls-verify


(7)拉取chart包:helm pull oci://hub.test.com/charts/nginx --version 0.2.0 --insecure-skip-tls-verify


(8)安装:helm install nginx-2 ./nginx-0.2.0.tgz

(9)删除仓库:helm repo remove aliyun

12、总结
(1)helm:一键部署微服务的工具,可以跳过繁琐的自定义yaml的过程,一键式的拉取和部署好所有自定义或者模版定义的服务
(2)helm的常用命令
|   添加仓库  |   helm repo add 仓库名 url地址  | 
|   更新所有仓库  |   helm repo update 不加仓库名  | 
|   查看仓库列表  |   helm repo list  | 
|   删除仓库  |   helm repo remove 仓库名  | 
|   查看指定仓库中chart信息  |   helm show chart stable/nginx  | 
|   查看指定仓库中chart的详细信息  |   helm show all stable/nginx  | 
|   安装chart(官网的默认版本)  |   helm install nginx stable/nginx -n lucky-cloud  | 
|   删除安装好的chart  |   helm uninstall nginx  | 
|   查看已安装的chart  |   helm list  | 
|   创建自定义的chart模版  |   helm create nginx  | 
|   安装自定义chart  |   helm install nginx ./nginx  | 
|   helm install nginx ./nginx-0.1.0.tgz  | |
|   打包创建好的chart  |   helm package nginx  | 
|   回滚  |   helm history nginx  | 
|   helm rollback nginx 1  | 

