K8s之helm工具使用举例
admin
2023-03-28 08:41:20
0

关于安装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              
 #可以登录数据库进行测试
[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工具使用举例

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

相关内容

热门资讯

特朗普下令不打了,美国的“余粮... 可以说戛然而止,快得让很多人都无法适应。前两周,每一天美国都要打击伊朗一通。就在7月24日白宫会议前...
穆杰塔巴最新表态:支持黎真主党 △伊朗最高领袖穆杰塔巴·哈梅内伊(资料图)当地时间7月26日晚,伊朗最高领袖穆杰塔巴·哈梅内伊对黎巴...
美军瘫痪一艘驶向伊朗的油轮,特... 美国总统特朗普虽下令暂停打击伊朗,但美军仍在执行对霍尔木兹海峡的封锁任务。针对美军瘫痪一艘驶向伊朗油...
“小牌大耍”的底气到底是哪里来... 澎湃首席评论员 李平这两天,“艺人李权哲乘高铁占座事件”在网上引发热议,该艺人参加的活动主办方曾发布...
越南籍船舶南海遇险沉没,中方已... 据凤凰卫视报道,一艘越南船舶7月24日夜间在越南庆和以东220海里附近遇险沉没,船上共62名越南籍人...
李权哲占座、蒙面、装死:娱乐圈... 你买了一张高铁一等座的票,找到自己的位置,18A。有人坐着。你拿出手机看了眼购票记录——没错,18A...
杭州景区咖啡店闯入1条幼蛇,仅... 夏天气温高、湿度大,蛇类活动进入高峰期,千万别被“小蛇无害”的刻板印象骗了!有些幼蛇看着迷你可爱,实...
AI开源公开信签署企业增至50... IT之家 7 月 26 日消息,英伟达、微软、IBM、Meta 等 25 家美国科技企业本周(7 月...
南阳快手短视频代运营企业的服务... 在短视频平台快速发展的背景下,企业通过快手等渠道进行内容运营已成为常见的市场动作。对于希望借助短视频...
普通人该如何跟上科技发展的步伐 这个被称作科技的词汇, 听起来既有宏大之感, 又颇为遥远, 好似仅仅归属于在实验室里专心致志钻研的科...