Helm应用以及服务升级与回滚

Helm应用以及服务升级与回滚

2023年7月6日发(作者:)

Helm应⽤以及服务升级与回滚Helm应⽤以及服务升级与回滚helm:包管理⼯具Charts:是⼀个Helm的程序包,它包含了运⾏⼀个kubernetes应⽤程序所需要的镜像、依赖关系和资源定义等Release:应⽤程序运⾏charts后,得到的⼀个实例部署⼀个实例:helm install + charts -n release名称根据以⼀个包运⾏⼀个实例[root@master ~]# helm install stable/redis -n redis --dry-run--dry-run:⽤来测试有没有问题,如果没有问题就可以运⾏[root@master ~]# helm install stable/redis -n redis#这⾥是运⾏不成功的,因为他需要镜像,PV等准备⼯作运⾏之后会有三部分描述1、关于这个Release的描述2、关于这个Release资源的描述3、怎么使⽤这个Release根据提⽰可以获得redis的密码,等等⼀些信息[root@master ~]# kubectl get secret --namespace default redis-redis -o jsonpath="{.-password}" | base64 --decoderTmeGF2rcY删除实例:[root@master ~]# helm delete redis --purge查询chart包[root@master ~]# helm search mysql运⾏⼀个实例:[root@master ~]# helm install stable/mysql -n mysql我们运⾏过的实例都会⽣成⼀个charts包存放在这个缓存⽬录下[root@master archive]# pwd/root/.helm/cache/archive[root@master archive]# rts包解压⽬录[root@master archive]# tar zxf [root@master archive]# tree -C mysqlmysql├── ├── ├── templates│ ├── │ ├── │ ├── _│ ├── │ ├── │ ├── │ └── └── :这个chart包的概要信息 name和version这两个是必填项,其他可选:是这个chart包的⼀个使⽤帮助⽂档templates:chart包内各种资源对象模板:是这个chart包的默认的值,可以被template内的yaml⽂件使⽤我们在部署之前还可以提前查看这个包会有什么东西[root@master ~]# helm inspect values stable/prometheus除了部署实例后会⽣成chart包,还可以下载chart包[root@master ~]# helm fetch stable/prometheusHelm部署安装⼀个Mysql服务部署NFS服务:[root@master ~]# mkdir /data[root@master ~]# vim /etc/exports/data *(rw,sync,no_root_squash)创建PV:[root@master ~]# vim Version: v1kind: PersistentVolumemetadata: name: mysqlpvspec: capacity: storage: 8Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Recycle nfs: path: /data/mysqlpv server: 192.168.1.70[root@master ~]# kubectl apply -f

persistentvolume/mysqlpv created[root@master ~]# kubectl get pvNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGEmysqlpv 8Gi RWO Recycle Available 16s[root@master ~]# mkdir /data/mysqlpv部署mysql实例(镜像提前准备好):[root@master ~]# helm install stable/mysql -n bdqn-mysql --set mysqlRootPassword= #创建实例,并设置密码[root@master ~]# kubectl get podNAME READY STATUS RESTARTS AGEbdqn-mysql-mysql-7b89c7b99-kg4wf 0/1 Init:0/1 0 17s #正在初始化[root@master ~]# kubectl get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGEbdqn-mysql-mysql Bound mysqlpv 8Gi RWO 48s#还需要⼀个⼩镜像docker pull busybox:1.25.0[root@master ~]# kubectl get podNAME READY STATUS RESTARTS AGEbdqn-mysql-mysql-7b89c7b99-kg4wf 1/1 Running 0 2m10s[root@master ~]# kubectl get READY UP-TO-DATE AVAILABLE AGEbdqn-mysql-mysql 1/1 1 1 2m13s查看密码是否设置成功:[root@master ~]# kubectl get secret --namespace default bdqn-mysql-mysql -o jsonpath="{.-root-password}" | base64 --decode; 验证数据有没有问题:[root@master ~]# kubectl exec -it bdqn-mysql-mysql-7b89c7b99-kg4wf -- mysql -u root -ql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys |+--------------------+4 rows in set (0.01 sec)在部署mysql的时候,如何开启storageclass,以及如何使⽤?⾸先需要部署storageclass(存储类),让他可以⾃动创建PV1、需要基于NFS环境2、RBAC权限3、nfs-deployment.4、storageclasshelm在创建实例的时候是基于templates模板⾥的内容创建的,⽽模板内需要的信息则是在⽂件⾥,我们则需要修改⽂件⾥的内容就⾏[root@master mysql]# vim

找到storageClass,去掉注释即可 storageClass: "test-nfs" #storageclass的名称 accessMode: ReadWriteOnce

size: 8Gi然后直接部署实例,在部署实例的时候 -f 指定这个这个⽂件即可,它会根据实例的PVC⾃动创建PV如果想将sservice资源对象的类型更改为NodePort,⼜应该怎么做同样只需要修改⽂件就⾏#将类型给位NodePort即可,还可以⾃⼰指定端⼝ type: NodePort port: 3306在创建实例的时候只需要指定以下这个⽂件就⾏[root@master mysql]# helm install stable/mysql -n bdqn-mysql --set mysqlRootPassword= -f [root@master mysql]# kubectl get svcNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEbdqn-mysql-mysql NodePort 10.104.45.139 3306:30165/TCP 13mkubernetes ClusterIP 10.96.0.1 443/TCP 60d服务的升级:[root@master mysql]# helm upgrade --set imageTag=5.7.15 bdqn-mysql stable/mysql -f [root@master mysql]# kubectl get deployments. -o wideNAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTORzhb-mysql 1/1 1 1 9m22s zhb-mysql mysql:5.7.15 app=zhb-mysql回滚#查看有哪些版本[root@master mysql]# helm history zhbREVISION UPDATED STATUS CHART DESCRIPTION

1 Mon Mar 2 16:33:26 2020 SUPERSEDED mysql-0.3.5 Install complete2 Mon Mar 2 16:37:04 2020 DEPLOYED mysql-0.3.5 Upgrade complete回滚到1版本[root@master mysql]# helm rollback zhb 1Rollback was a success.[root@master mysql]# kubectl get deployments. -o wideNAME READY UP-TO-DATE AVAILABLE AGE CONTAINERS IMAGES SELECTORzhb-mysql 1/1 1 1 13m zhb-mysql mysql:5.7.14 app=zhb-mysql

发布者:admin,转转请注明出处:http://www.yc00.com/web/1688594432a153211.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信