温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

K8s之helm工具使用举例

发布时间:2020-07-12 23:15:25 来源:网络 阅读:537 作者:warrent 栏目:云计算

关于安装helm工具,可以参考博文:k8s之安装配置Helm工具

这篇博文仅仅是做一个简单的笔记。整理的不怎么到位,还请见谅。

一、helm支持的四种安装方法

  • 安装仓库中的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 。

二、自定义Chart包举例

[root@master ~]# helm create testchart #创建testchar包 #如果没有“tree”命令,可以使用“yum -y install tree”进行安装 [root@master ~]# tree -C testchart/ #可以看到生成的目录下各种模板都有了,根据业务需求进行更改即可 testchart/ ├── charts ├── Chart.yaml ├── templates │   ├── deployment.yaml │   ├── _helpers.tpl │   ├── ingress.yaml │   ├── NOTES.txt │   ├── service.yaml │   └── tests │   └── test-connection.yaml └── values.yaml [root@master ~]# helm install testchart/ --dry-run --debug #“--dry-run”:模拟安装;“--debug” :检测输出 #执行上述命令后,即可输出该目录模板的yaml文件内容 [root@master ~]# helm lint testchart/ #对该目录的内容进行语法检测,testchart是目录名 ==> Linting testchart/ [INFO] Chart.yaml: icon is recommended 1 chart(s) linted, no failures

附加:https://hub.helm.sh/ ,这是一个helm模板仓库的网站,上面有大量的helm模板,可以自行查看。

三、运行一个MySQL服务进行示例

1、部署NFS服务

[root@master ~]# yum -y install nfs-utils [root@master ~]# vim /etc/exports /nfsdata *(rw,sync,no_root_squash) [root@master ~]# systemctl start rpcbind [root@master ~]# systemctl start nfs-server [root@master ~]# showmount -e Export list for master: /nfsdata *

2、创建一个PV

[root@master ~]# vim mysql-pv.yaml #编写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.20.6 [root@master ~]# mkdir -p /nfsdata/mysql-pv #创建nfs的本地目录 [root@master ~]# kubectl apply -f mysql-pv.yaml #执行yaml文件 [root@master ~]# kubectl get pv #确定pv状态正常 NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE mysql-pv 8Gi RWO Retain Available 73s #状态为“Available”表示pv正常

3、helm部署MySQL

[root@master ~]# helm install stable/mysql --set mysqlRootPassword=123.com -n test-mysql #在线安装MySQL,并设置mysql的root密码为123.com,“-n”表示指定其名称 #查看其pod [root@master ~]# helm list #使用helm查看 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@master ~]# 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@master ~]# kubectl exec -it test-mysql-mysql-dfb9b6944-4kmgv -- mysql -uroot -p123.com 

当install安装后,会输出一些提示信息,其中就包括了查看MySQL数据库密码的命令,如果没有使用“--set”命令设置数据库的root密码,那么可以通过此命令查看出默认的数据库root与用户密码,提示命令如下:

K8s之helm工具使用举例
也可以通过以下命令查看到关于test-mysql实例的详细状态信息

[root@master ~]# helm status test-mysql #查看test-mysql的实例信息

在线升级MySQL镜像操作

[root@master ~]# helm upgrade --set imageTag=5.7.16 test-mysql stable/mysql #其中test-mysql是实例名称; # 还是需要指定初次运行时指定的stable/mysql文件,如果初次运行时指定的是目录,那么这里就换成目录 #验证镜像是否更新成功 [root@master ~]# kubectl describe pod test-mysql-mysql-68484cd8db-59wm5 

上述命令执行后,输出的结果如下(可以看到镜像的版本已经更新):
K8s之helm工具使用举例

[root@master ~]# 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@master ~]# 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实例的版本回滚

[root@master ~]# helm rollback test-mysql 1 #回滚到版本1 Rollback was a success. [root@master ~]# 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@master ~]# kubectl describe pod test-mysql-mysql-dfb9b6944-8hfj4 

返回的信息如下,可以看到镜像的版本已经回滚到初次创建的版本了,如下:

K8s之helm工具使用举例

———————— 本文至此结束,感谢阅读 ————————

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI