作者:程潤科、錢芬
視頻:錢芬
上一篇文章我們演示了如何快速實作 MySQL 高可用集群部署,以及部署集群的校驗和卸載方式,本文將演示如何對集群進行備份和恢復,
部署版本為 RadonDB MySQL Kubernetes 2.1.3,
環境準備
首先準備一套 Kubernetes 集群,程序略,然后創建一套 RadonDB MySQL 集群,
步驟 1:下載原始碼
$ git clone https://github.com/radondb/radondb-mysql-kubernetes.git
步驟 2:安裝 Operator
以下指定 release 名為 test , 創建一個名為 test-mysql-operator 的 Deployment,,
$ helm install test charts/mysql-operator
步驟 3:配置備份資訊
Kubernetes Secret 資源資訊需提前準備,文章及操作視頻中的資源環境為青云云平臺的 qingstor 物件存盤,其他平臺的密鑰及 S3 存盤服務創建程序類似,請另行參考,
創建 API 密鑰
登錄青云云平臺官網,點擊 產品與服務 -> API 密鑰;進入入 API 密鑰頁面,點擊 創建 API 密鑰,輸入名稱后下載 s3-access-key 、 s3-secret-key 明文資訊,
創建 s3-bucket
點擊 產品與服務 -> 物件存盤;進入物件存盤頁面,點擊 創建 Bucket,輸入 bucket 名稱后即可獲得 bucket 明文資訊:
- s3-endpoint: http://s3.sh1a.qingstor.com
- s3-access-key:VNXYHYHQUXZKUVZFGFRY
- s3-secret-key:0zw7JKkbAAdlQKHPjTHWtoFGGQRvnQ5SJRc5P69r
- s3-bucket: radondb-mysql-bucket s3-xxxx 的值是使用 base64 演算法加密的,你可以這樣獲得,(此處對s3-xxx資訊進行脫敏處理),
$ echo -n "http://s3.sh1a.qingstor.com"|base64
創建 Kubernetes Secret 資源
創建backup_secret.yaml檔案用來存放 S3 物件存盤相關資訊,(此處對s3-xxx資訊進行脫敏處理),
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:創建及啟動集群
請在mysql_v1a1pha1_mysqlcluster.yaml 檔案中添加 backupSecretName 屬性,
spec:
replicas: 3
mysqlVersion: "5.7"
backupSecretName: sample-backup-secret
...
執行以下指令,即創建 RadonDB MySQL 集群,
$ kubectl apply -f config/samples/mysql_v1alpha1_mysqlcluster.yaml
備份恢復
將集群資料備份到 S3 存盤
創建備份檔案 mysql_v1a1pha1_backup.yaml 內容如下,
apiVersion: mysql.radondb.com/v1alpha1
kind: Backup
metadata:
name: backup-sample1
spec:
# Add fields here
hostname: sample-mysql-0
clustname: sample
| name | function |
|---|---|
| hostname | pod name in cluser |
| clustname | cluster name |
待集群運行成功后,執行以下指令開始備份,
$ kubectl apply -f config/samples/mysql_v1alpha1_backup.yaml
備份完成后可在 S3 查看對應的備份檔案,
從 S3 備份中恢復集群
檢測你的 S3 bucket,獲取你備份的目錄,比如:backup_2021720827,并且將設定為 yaml 檔案的 restoreFrom 屬性中,
...
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 備份中恢復一個集群,
卸載
卸載程序詳見《部署檔案》 的卸載部分,
推薦閱讀
- RadonDB MySQL on Kubernetes 2.1.3 發布!
- 容器化 | K8s 部署 RadonDB MySQL Operator 和集群
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/464096.html
標籤:MySQL
上一篇:大資料完全分布式配置(一)——基礎環境配置、java、zookeeper、hadoop、jobHisoryServer
下一篇:MySQL通配符與正則運算式
