k8s迁移至k3s
k8s迁移至k3s适用于以下用户
- 需要升级 Kubernetes 版本
- 需要更换底层操作系统
- 需要使用新功能
迁移原理
迁移主要是保留现有数据库数据,卸载原有 k8s 组件,并在现有数据库基础上使用 k3s 重新部署环境, 迁移不影响已有虚拟机网络及存储。
迁移说明
- 若在原有操作系统上迁移至 k3s,需要先卸载原有 k8s,再安装 k3s。
- 若需要更换操作系统,可先安装数据库,再将备份恢复到新数据库,最后使用新数据库安装 k3s 版本。
迁移步骤
以下为更换底层操作系统示例:当前环境 IP 为 192.168.123.69,操作系统为 Ubuntu 22.04,Cloudpods 版本为 v3.11.13;迁移目标 IP 为 192.168.123.68,操作系统为 Ubuntu 24.04,且升级版本至 v4.0.2。
备份数据库
# 查看mysql数据库密码
$ kubectl get oc -n onecloud -o yaml | grep mysql -A 4
mysql:
host: 192.168.123.69
password: dPwBCk67YSJ9
port: 3306
username: root
$ export MYSQL_USER=root
$ export MYSQL_PASS=dPwBCk67YSJ9
$ export BACKUP_DIR="/data/backup"
$ mkdir -p $BACKUP_DIR
$ DATABASES=$(mysql -u$MYSQL_USER -p$MYSQL_PASS -NBe "SELECT SCHEMA_NAME FROM information_schema.SCHEMATA WHERE SCHEMA_NAME NOT IN('sys','mysql','performance_schema','information_schema')")
$ for db in $DATABASES
do
echo "备份数据库:$db"
mysqldump -u$MYSQL_USER -p$MYSQL_PASS --databases $db | gzip > $BACKUP_DIR/${db}_$(date +%Y%m%d).sql.gz
done
# 查看clickhouse数据库账号密码(仅企业版需要)
$ kubectl get oc -n onecloud -o yaml | grep clickhouse -A 4
clickhouse:
host: "192.168.123.69"
password: "BVA38JAtO"
port: 9000
username: default
$ clickhouse-client -h 192.168.123.69 --password 'BVA38JAtO' -q "select * from yunionmeter.payment_bills_tbl FORMAT CSV" | gzip > $BACKUP_DIR/payment_bill_$(date +%Y%m%d).csv.gz
$ clickhouse-client -h 192.168.123.69 --password 'BVA38JAtO' -q "select * from yunionmeter.tags_tbl FORMAT CSV" | gzip > $BACKUP_DIR/tags_$(date +%Y%m%d).csv.gz