- 安装仓库中的chart包,命令举例:helm install stable/xxx;
- 经过tar包安装,命令举例:helm install xxx-1.tgz(不推荐使用);
- 经过chart本地目录安装,命令举例:helm install xxx/xxx(通常是使用helm fetch stable/xxxxx 下载相应的模板,而后使用tar zxf 解压,修改解压后的目录中的valumes.yaml文件中的值,就是自定义服务了,这种方式比较经常使用);
- 经过URL安装,不太经常使用,命令举例:helm install https://xxxx/charts/xxx-1.gz 。
//建立testchart包 [root@docker-k8s01 ~]# helm create testchart //能够看到生成的目录下各类模板都有了,根据业务需求进行更改便可 [root@docker-k8s01 ~]# tree testchart/ testchart/ ├── charts ├── Chart.yaml ├── templates │ ├── deployment.yaml │ ├── _helpers.tpl │ ├── ingress.yaml │ ├── NOTES.txt │ ├── service.yaml │ └── tests │ └── test-connection.yaml └── values.yaml [root@docker-k8s01 ~]# helm install testchart/ --dry-run --debug //“--dry-run”:模拟安装;“--debug” :检测输出 //执行上述命令后,便可输出该目录模板的yaml文件内容 //对该目录的内容进行语法检测 [root@docker-k8s01 ~]# helm lint testchart/ ==> Linting testchart/ [INFO] Chart.yaml: icon is recommended 1 chart(s) linted, no failures
https://hub.helm.sh/ ,这是一个helm模板仓库的网站,上面有大量的helm模板,能够自行查看。node
[root@docker-k8s01 ~]# yum -y install nfs-utils [root@docker-k8s01 ~]# cat /etc/exports /nfsdata *(rw,sync,no_root_squash) [root@docker-k8s01 ~]# systemctl restart rpcbind [root@docker-k8s01 ~]# systemctl restart nfs-server [root@docker-k8s01 ~]# showmount -e Export list for docker-k8s01: /nfsdata *
[root@docker-k8s01 ~]# cat mysql-pv.yaml apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv spec: accessModes: - ReadWriteOnce capacity: storage: 8Gi persistentVolumeReclaimPolicy: Retain nfs: path: /nfsdata/mysql-pv //指定本地的挂载目录 server: 192.168.171.151 [root@docker-k8s01 ~]# mkdir -p /nfsdata/mysql-pv [root@docker-k8s01 ~]# kubectl apply -f mysql-pv.yaml //肯定pv运行状态 [root@docker-k8s01 ~]# kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mysql-pv 8Gi RWO Retain Available 3s
//在线安装MySQL,并设置mysql的root密码为123.com,“-n”表示指定其名称 [root@docker-k8s01 ~]# helm install stable/mysql --set mysqlRootPassword=123.com -n test-mysql //使用helm查看 [root@docker-k8s01 ~]# helm list NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE test-mysql 1 Sun Dec 1 21:22:56 2019 DEPLOYED mysql-0.3.5 default [root@docker-k8s01 ~]# kubectl get pod -o wide #查看mysql所对应的pod NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES test-mysql-mysql-dfb9b6944-4kmgv 1/1 Running 0 9m16s 10.244.2.2 node02 <none> <none> //能够登陆数据库进行测试 [root@dokcer-k8s01 ~]# kubectl exec -it test-mysql-mysql-dfb9b6944-4kmgv -- mysql -uroot -p123.com
当install安装后,会输出一些提示信息,其中就包括了查看MySQL数据库密码的命令,若是没有使用“--set”命令设置数据库的root密码,那么能够经过此命令查看出默认的数据库root与用户密码,提示命令以下:mysql
也能够经过如下命令查看到关于test-mysql实例的详细状态信息sql
//查看test-mysql的实例信息 [root@docker-k8s01 ~]# helm status test-mysql
//在线升级MySQL镜像操做docker
[root@docker-k8s01 ~]# helm upgrade --set imageTag=5.7.16 test-mysql stable/mysql #其中test-mysql是实例名称; #仍是须要指定初次运行时指定的stable/mysql文件,若是初次运行时指定的是目录,那么这里就换成目录 #验证镜像是否更新成功 [root@docker-k8s01 ~]# kubectl describe pod test-mysql-mysql-68484cd8db-59wm5
上述命令执行后,输出的结果以下(能够看到镜像的版本已经更新):数据库
[root@docker-k8s01 ~]# helm list #再次查看实例,能够发现“REVISION”字段为2,而初次建立实例时,该列为1, #每更新一次,该数值就会+1. NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE test-mysql 2 Sun Dec 1 21:53:00 2019 DEPLOYED mysql-0.3.5 default [root@docker-k8s01 ~]# helm history test-mysql #查看该实例的历史版本 REVISION UPDATED STATUS CHART DESCRIPTION 1 Sun Dec 1 21:22:56 2019 SUPERSEDED mysql-0.3.5 Install complete 2 Sun Dec 1 21:53:00 2019 DEPLOYED mysql-0.3.5 Upgrade complete
//进行test-mysql实例的版本回滚api
[root@docker-k8s01 ~]# helm rollback test-mysql 1 #回滚到版本1 Rollback was a success. [root@docker-k8s01 ~]# helm list #再次查看,能够看到“REVISION”的值变成了3 NAME REVISION UPDATED STATUS CHART APP VERSION NAMESPACE test-mysql 3 Sun Dec 1 22:12:25 2019 DEPLOYED mysql-0.3.5 default #查看MySQL对应的容器详细信息 [root@docker-k8s01 ~]# kubectl describe pod test-mysql-mysql-dfb9b6944-8hfj4
返回的信息以下,能够看到镜像的版本已经回滚到初次建立的版本了,以下:app