ONES 升级前检查
1 磁盘空间检查
检查服务器磁盘空间是否足够,如果系统盘/数据盘磁盘空间超过80%,请延期升级,先清理临时文件、再请客户扩容,低于80%后再继续升级。
2 磁盘I/O检查
考虑到磁盘性能损耗等情况,请执行如下命令分别检查正式环境的系统盘/数据盘/索引盘的磁盘I/O是否满足读60MB/s、写20MB/s的性能要求,如果不满足,请延期升级,请客户提供满足要求的新服务器、或者提供单独的索引盘/备份机等。
fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=random_read_write.fio --bs=4k --iodepth=64 --size=8GB --readwrite=randrw --rwmixread=75
3 CPU/内存检查
根据ONES 私有部署环境要求中的服务器准备情况 ,核对授权人数与CPU/内存是否匹配,如果低于标准,请延期升级,先请客户扩容。
4 数据盘/备份盘检查
(1)如果生产环境的备份盘和数据盘没有分开,请延期升级、先告知客户存在的性能冲突和稳定性隐患,再请客户提供新的备份机或者外置存储专用于数据备份,避免备份带来的磁盘IO消耗影响业务正常运行、减少单点隐患。
(2)如果K3S集群环境没有采用标准的本地存储+NAS或者本地存储+NAS+OSS的应用+存储分离方案,请暂缓升级,待客户提供满足要求的外置存储再来操作。
5 数据备份检查
参考备份数据,检查MySQL数据备份/mc附件备份是否正常。如果是外置数据库,请务必提醒客户在升级前做数据库备份、打快照等。
6 K3S版本及证书检查
执行如下3项检查,满足其一需在版本升级前执行Linux单机单独重装k3s。
# 1.检查K3s版本是否为v1.25
kubectl get node
# 2.检查K3s内置证书是否为1年有效期
find /var/lib/rancher/k3s/server/tls/ -maxdepth 1 -name "*.crt" -exec openssl x509 -enddate -noout -in {} \;
# 3. 检查K3s支持的Pod个数是否为110
kubectl describe node | grep pods
7 配置文件重复项检测
如果配置文件有重复的配置项,执行升级命令可能报错,可通过如下命令提前排查、再来手工清理重复项。
ones-ai-k8s.sh
grep -o '^[^:]\+' config/private.yaml | sort | uniq -d
8 清理影子表
为减少数据库的磁盘消耗、减少备份时间,可清理升级产生的影子表。