登录
首页 >  数据库 >  MySQL

容器化|在 S3 备份恢复 RadonDB MySQL 集群数据

来源:SegmentFault

时间:2023-01-27 21:48:39 494浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《容器化|在 S3 备份恢复 RadonDB MySQL 集群数据》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

视频:钱芬

上一篇文章我们演示了如何快速实现 MySQL 高可用集群部署,以及部署集群的校验和卸载方式。本文将演示如何对集群进行备份和恢复。

部署版本为 RadonDB MySQL Kubernetes 2.1.3。

环境准备

首先准备一套 Kubernetes 集群,过程略。然后创建一套 RadonDB MySQL 集群。

步骤 1:下载源码

$ git clone https://github.com/radondb/radondb-mysql-kubernetes.git

步骤 2:安装 Operator

以下指定 release 名为

$ helm install test charts/mysql-operator

步骤 3:配置备份信息

Kubernetes Secret 资源信息需提前准备。文章及操作视频中的资源环境为青云云平台的 qingstor 对象存储。其他平台的密钥及 S3 存储服务创建过程类似,请另行参考。

创建 API 密钥

登录青云云平台官网,点击 产品与服务 -> API 密钥;进入入 API 密钥页面,点击 创建 API 密钥,输入名称后下载

$ echo -n "http://s3.sh1a.qingstor.com"|base64

创建 Kubernetes Secret 资源

创建

kind: Secret
apiVersion: v1
metadata:
name: sample-backup-secret
namespace: default
data:
s3-endpoint: aHR0cDovL3MzLnNoMWEucWluZ3N0b3IuY29t
s3-access-key: Vk5YWUhZSFFVWFpLVVZaRkdGUlk=
s3-secret-key: MHp3N0pLa2JBQWRsUUtIUGpUSFd0b0ZHR1FSdm5RNVNKUmM1UDY5cg==
s3-bucket: cmFkb25kYi1teXNxbC1idWNrZXQ=
type: Opaque

然后在 kubernetes 中执行创建加密配置。

$ kubectl create -f config/samples/backup_secret.yaml

步骤 4:创建及启动集群

请在

spec:
replicas: 3
mysqlVersion: "5.7"
backupSecretName: sample-backup-secret
...

执行以下指令,即创建 RadonDB MySQL 集群。

$ kubectl apply -f config/samples/mysql_v1alpha1_mysqlcluster.yaml     

备份恢复

将集群数据备份到 S3 存储

创建备份文件

apiVersion: mysql.radondb.com/v1alpha1
kind: Backup
metadata:
name: backup-sample1
spec:
# Add fields here
hostname: sample-mysql-0
clustname: sample
namefunction
hostnamepod name in cluser
clustnamecluster name

待集群运行成功后,执行以下指令开始备份。

$ kubectl apply -f config/samples/mysql_v1alpha1_backup.yaml

备份完成后可在 S3 查看对应的备份文件。

从 S3 备份中恢复集群

检测你的 S3 bucket,获取你备份的目录,比如:

...
spec:
replicas: 3
mysqlVersion: "5.7"
backupSecretName: sample-backup-secret
restoreFrom: "backup_2021720827"
...

此时执行以下指令:

$ kubectl apply -f config/samples/mysql_v1alpha1_mysqlcluster.yaml     

恢复完成,已经从名为

backup_2021720827
的 S3 备份中恢复一个集群。

卸载

卸载过程详见《部署文档》 的卸载部分。

推荐阅读

理论要掌握,实操不能落!以上关于《容器化|在 S3 备份恢复 RadonDB MySQL 集群数据》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表