Helm 应用升级与回滚

在本教程中,我们首先会使用helm部署一个mysql实例,然后尝试升级mysql到更高版本,并魔力升级出错后回滚该次升级。

部署mysql实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

[root@master ~]# helm install stable/mysql -n bdqn-mysql --set mysqlRootPassword=123.com #创建实例,并设置密码
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
bdqn-mysql-mysql-7b89c7b99-kg4wf 0/1 Init:0/1 0 17s #正在初始化
[root@master ~]# kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
bdqn-mysql-mysql Bound mysqlpv 8Gi RWO 48s
#还需要一个小镜像
docker pull busybox:1.25.0
[root@master ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
bdqn-mysql-mysql-7b89c7b99-kg4wf 1/1 Running 0 2m10s
[root@master ~]# kubectl get deployments.
NAME READY UP-TO-DATE AVAILABLE AGE
bdqn-mysql-mysql 1/1 1 1 2m13s


查看密码是否设置成功:

1
2
kubectl get secret --namespace default bdqn-mysql-mysql -o jsonpath="{.data.mysql-root-password}" | base64 --decode; echo
123.com

验证数据有没有问题

[root@master ~]# kubectl exec -it bdqn-mysql-mysql-7b89c7b99-kg4wf – mysql -u root -p123.com
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| sys |
+——————–+
4 rows in set (0.01 sec)

在部署mysql的时候,如何开启storageclass,以及如何使用?

首先需要部署storageclass(存储类),让他可以自动创建PV

1、 需要基于NFS环境

2、RBAC权限

3、nfs-deployment.

4、storageclass

1
2
3
4
5
6

vim values.yaml
找到storageClass,去掉注释即可
storageClass: "test-nfs" #storageclass的名称
accessMode: ReadWriteOnce
size: 8Gi
1
2
3
4
5
6
[root@master mysql]# helm  install  stable/mysql  -n  bdqn-mysql  --set  mysqlRootPassword=123.com  -f  values.yaml
[root@master mysql]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
bdqn-mysql-mysql NodePort 10.104.45.139 <none> 3306:30165/TCP 13m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 60d

升级mysql

1
2
3
4
5
6
7

[root@master mysql]# helm upgrade --set imageTag=5.7.15 bdqn-mysql stable/mysql -f values.yaml
[root@master mysql]# kubectl get deployments. -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
zhb-mysql 1/1 1 1 9m22s zhb-mysql mysql:5.7.15 app=zhb-mysql


回滚

1
2
3
4
5
6
7
8
9
10
11
12
13

#查看有哪些版本
[root@master mysql]# helm history zhb
REVISION UPDATED STATUS CHART DESCRIPTION
1 Mon Mar 2 16:33:26 2020 SUPERSEDED mysql-0.3.5 Install complete
2 Mon Mar 2 16:37:04 2020 DEPLOYED mysql-0.3.5 Upgrade complete
回滚到1版本
[root@master mysql]# helm rollback zhb 1
Rollback was a success.
[root@master mysql]# kubectl get deployments. -o wide
NAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTOR
zhb-mysql 1/1 1 1 13m zhb-mysql mysql:5.7.14 app=zhb-mysql

作者

鹏叔

发布于

2024-09-03

更新于

2024-09-03

许可协议

评论