入门Helm(2)

实验:Helm部署MySQL服务

//在部署MySQL实例前,可以先查看对应Chart包的信息,需要提前做依赖的环境,当然也可以直接部署,然后一步一步推理、拍错。

//这里我们直接部署安装一次MySQL,安装之前,先将之前的实例删除,使用uninstall命令。

[root@master mysql]# helm uninstall test-mysql

//直接部署安装MySQL实例(通过名为stable的微软源)。

[root@master mysql]# helm install new-mysql stable/mysql

//可以查看安装部署的详细信息。

[root@master mysql]# helm list
[root@master mysql]# helm status new-mysql


//首先,确认,都生产了什么资源对象。

[root@master mysql]# ls templates/
configmap.yaml   _helpers.tpl  pvc.yaml      svc.yaml
deployment.yaml  NOTES.txt     secrets.yaml


//通过查看Pod的详细信息,我们判断,由于PVC没有PV支持,所以PVC现在一直处于Pending的状态,导致Pod绑定这个PVC之后,也会出现问题,所以,解决思路是给这PVC创建一个PV。

//这里做基于NFS服务的PV服务,先开启NFS服务。

[root@master ~]# yum install nfs-utils -y
[root@master ~]# mkdir /nfsdata
[root@master ~]# cat /etc/exports
/nfsdata    *(rw,sync,no_root_squash)
[root@master ~]# systemctl start rpcbind
[root@master ~]# systemctl enable rpcbind
[root@master ~]# systemctl start nfs-server.service 
[root@master ~]# systemctl enable nfs-server.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
[root@master ~]# showmount -e
Export list for master:
/nfsdata *


//为PVC创建一个PV.
[root@master templates]# mkdir /nfsdata/new-pv

[root@master ~]# vim new-pv.yaml

```yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: new-pv
spec:
  capacity:
    storage: 8Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /nfsdata/new-pv
    server: 192.168.8.10


kubectl apply -f new-pv.yaml 


//查看对应的PV,PVC状态,已经成功绑定。

[root@master ~]# kubectl get pv,pvc
NAME                      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                     STORAGECLASS   REASON   AGE
persistentvolume/new-pv   8Gi        RWO            Retain           Bound    default/new-mysql-mysql                           25s

NAME                                    STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
persistentvolumeclaim/new-mysql-mysql   Bound    new-pv   8Gi        RWO                           24m


//此时,查看Pod,已经正常运行了。

[root@master mysql]# kubectl get pod -o wide
NAME                               READY   STATUS    RESTARTS   AGE   IP            NODE     NOMINATED NODE   READINESS GATES
new-mysql-mysql-6cf95546fb-x7v9h   1/1     Running   0          27m   10.244.1.31   node01   <none>           <none>

---------------------------------------------

Releases的升级与回滚

//目前releases的镜像版本为:5.7.30版本,假设将此镜像版本升级为5.7.40

[root@master mysql]# helm upgrade --set imageTag=5.7.40 new-mysql stable/mysql
[root@master ~]# kubectl get deployments. -o wide
NAME              READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS        IMAGES         SELECTOR
new-mysql-mysql   1/1     1            1           57m   new-mysql-mysql   mysql:5.7.40   app=new-mysql-mysql


//helm也有查看历史版本的命令。

[root@master ~]# helm  history new-mysql 
REVISION    UPDATED                     STATUS        CHART          APP VERSION    DESCRIPTION     
1           Fri Sep 23 10:50:53 2022    superseded    mysql-1.6.9    5.7.30         Install complete
2           Fri Sep 23 11:06:57 2022    deployed      mysql-1.6.9    5.7.40         Upgrade complete


//helm回滚(helm可以回滚到指定版本)

[root@master ~]# helm rollback new-mysql 1
Rollback was a success! Happy Helming!
[root@master ~]# kubectl get deployments. -o wide
NAME              READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS        IMAGES         SELECTOR
new-mysql-mysql   1/1     1            1           62m   new-mysql-mysql   mysql:5.7.30   app=new-mysql-mysql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值