目录
一、背景
二、创建PVC
三、同步nfs数据到OBS
四、变更无状态负载数据储存为OBS
五、卸载弹性文件服务SFS(nfs)
一、背景
生产环境CEE集群,每个K8s节点挂载同一个华为云弹性文件服务SFS(可以简单的理解为nfs)。无状态应用通过hostPath方式持久化。该CCE集群运行的业务应用都是无状态负载(deployments),不但应用的日志都会收集到ELK日志服务器持久化和展示,还在华为云AOM保留了30天的日志;很多无状态负载的应用不需要保留太久的历史数据,OBS的性能也完全满足文件服务应用的数据持久话存储。
购买的华为云弹性文件服务SFS容量为5T,每年的费用约1.5万元,然而实际上我们数据量还不是很大,使用率约10%(500G左右),非常值得的优化资源,降低不必要的成本支出。尽管nfs比OBS性能好很多效率高,但是存储历史日志和历史文件,使用OBS存储完全无压力,况且OBS每年1T的费用大概1000多元。OBS不但经济实用,还完全满足实用需求。
挂载nfs不便于k8s集群节点弹性扩容,从管理和运维角度看也不是那么的友好,反而是变得有点复杂。
综合来看,不管从哪角度出发,都非常有必要将nfs替换成OBS。况且CCE集群支持OBS存储卷。
二、创建PVC
由于我的环境暂时需要将3个无状态负载的持久化变更为对象存储卷;分别创建用于mservice、ms-qing和fileserver无状态负载的对象存储卷:
cce-obs-mservicelogs、cce-obs-ms-qing-storage和cce-obs-fileserver
创建对象存储卷,会自动生成看似不规则的对象存储桶名称并关联绑定,实际上概统名称是pv名字,即pvc和pv关联绑定。后续将nfs数据同步到OBS存储需要用到桶名称(pv名称)
三、同步nfs数据到OBS
在挂载nfs的节点服务器上安装OBS工具,将无状态负载mservice、ms-qing和fileserver应用存储在nfs共享存储的数据分别同步到OBS
1、下载OBS工具:
# 下载 OBS 同步工具
wget https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz && tar -xzvf obsutil_linux_amd64.tar.gz
2、同步节点上nfs共享数据到OBS
四、变更无状态负载数据储存为OBS
待nfs共享存储的数据完全同步到OBS后,就可以安排时间将无状态负载数据存储切换为OBS存储。
注意:在切换应用的数据存储为OBS前要一直保持OBS同步工具一直运行,一直实时增量同步nfs数据到OBS。待完成无状态负载数据存储切换为OBS完成后,才能停止OBS同步脚本。
分别切换mservice、ms-qing和fileserver应用数据存储为OBS
五、卸载弹性文件服务SFS(nfs)
根据自己的实际情况决定是否要卸载nfs,并且保证没有其他应用在使用nfs共享存储。
切换OBS,系统稳定运行了1个月,我才将nfs卸载,并且退了nfs文件服务产品。