Skip to main content

Veeam Kasten K10 DR备份恢复指南-update


Richard Wu
Forum|alt.badge.img

本文详述了Veeam Kasten K10 DR备份恢复详细步骤,当Veeam Kasten K10由于各种原因发生故障,如何快速进行DR恢复, 即快速恢复Veeam Kasten K10平台、备份策略及备份存储库等配置。

本文使用的测试环境是Centos8.3,kubernetes版本是1.21.3, Veeam Kasten K10版本是4.5.12.

 

1. Veeam Kasten K10 DR 备份

在第一次Enable K10 DR时,需要手工设置用于加密的Passphrase(密码),这个一定要记住,以后做K10 DR restore时,需要用到。

v2-a7b512b316d8bfd071bf8439306d2d78_720w.jpg?source=d1c2d5a6

编辑切换为居中

当前,本测试环境Veeam Kasten k10使用的Location profile名称为minio,记录下该profile的相关属性,Veeam Kasten K10 DR恢复时需要重建属性相同的Location profile。

v2-1fc1030610b8a14f76c7737d9ccff58c_720w.jpg?source=d1c2d5a6

编辑切换为居中

 

v2-d58a008cde96de4c7333d7a53c7efdd0_720w.jpg?source=d1c2d5a6

编辑

本测试环境Passphrase(密码)是:ibm1!IBM

 

v2-6655175f008d9362dba5d02393b79f85_720w.jpg?source=d1c2d5a6

编辑切换为居中

Cluster ID:

b7da31a6-9fb0-4dd7-b2a5-03dc31e12b1a

v2-46b465025ca3c31a78d72c48fc20edd3_720w.jpg?source=d1c2d5a6

编辑切换为居中

v2-2206aadbdb0b927b75c2d93960f7807b_720w.jpg?source=d1c2d5a6

编辑切换为居中

以上结果显示,Veeam Kasten K10 DR备份成功。

 

2.  Veeam Kasten K10 DR恢复

本测试环境是在原kubernetes cluster上进行Veeam Kasten K10 DR恢复, 所以需要先卸载k10, 删除Veeam kasten k10的 namespace kasten-io。

卸载kasten k10:

[root@k8s-131 ~]# helm uninstall k10 -n kasten-io

release "k10" uninstalled

删除kasten-io的namespace:

[root@k8s-131 ~]# kubectl delete ns kasten-io

namespace "kasten-io" deleted

创建kasten-io的namespace

[root@k8s-131 ~]# kubectl create namespace kasten-io

namespace/kasten-io created

创建k10-dr-secret,使用第一次enable K10 DR时,手工设置用于加密的passphrase(密码)

[root@k8s-131 ~]# kubectl create secret generic k10-dr-secret --namespace kasten-io --from-literal=key='ibm1!IBM'

secret/k10-dr-secret created

v2-7a67f19e28e272f60294aec325e77a3a_720w.jpg?source=d1c2d5a6

编辑切换为居中

重新安装Kasten K10

[root@k8s-131 ~]# helm install k10 k10-4.5.12.tgz --namespace kasten-io --set global.airgapped.repository=ccr.ccs.tencentyun.com/kasten --set injectKanisterSidecar.enabled=true --set metering.mode=airgap --set secrets.dockerConfig=$(base64 -w 0 </root/config.json) --set prometheus.imagePullSecrets[0].name="k10-ecr" --set prometheus.server.persistentVolume.enabled=false

v2-ce6fb046213cfe595a187d11052440b3_720w.jpg?source=d1c2d5a6

编辑切换为居中

手工启动minio

[root@k8s-131 ~]# ./minio server /data

v2-b1583d2e29a69ee83d77ee21fb07b04b_720w.jpg?source=d1c2d5a6

编辑切换为居中

使用NodePort方式暴露kasten K10的web管理页面,可以在其它的能访问该node IP的浏览器访问Kasten k10 Dashboard:

[root@k8s-131 ~]# kubectl expose -n kasten-io deployment gateway --type=NodePort --name=gateway-nodeport-svc --port=8000

service/gateway-nodeport-svc exposed

通过以下命令查看通过NodePort方式访问时的Port, 记下8000: 后面跟的端口号:

[root@k8s-131 ~]# kubectl get svc -n kasten-io gateway-nodeport-svc

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE

gateway-nodeport-svc NodePort 10.10.131.34 <none> 8000:30368/TCP 15s

暴露kasten k10 Dashboard

[root@k8s-131 ~]# kubectl --namespace kasten-io port-forward service/gateway 8080:8000

浏览器访问Kasten k10 Dashboard

http://192.168.17.131:30368/k10/#/dashboard

v2-97da232f91670641f46d20256a7be836_720w.jpg?source=d1c2d5a6

编辑切换为居中

创建和DR之前完全一样的location profile

 

v2-4b59cf0cf8ebdc557f9d20b502cbde38_720w.jpg?source=d1c2d5a6

编辑切换为居中

 

v2-a38fba5d8848db9cc58e5842513e70d0_720w.jpg?source=d1c2d5a6

编辑

 

v2-edf815fed00ad29e5d44f1e82b1b000f_720w.jpg?source=d1c2d5a6

编辑切换为居中

查看DR恢复之前的pod状态

[root@k8s-131 ~]# kubectl get pod -n kasten-io

v2-8b0fa7bf75c2f1d83827b423f726d7e9_720w.jpg?source=d1c2d5a6

编辑切换为居中

如果是第一次运行DR restore, 请跳过以下2条删除命令;如果之前DR restore失败,则需要手工删除以下clusterrole和clusterrolebinding,

[root@k8s-131 ~]# kubectl delete clusterrole k10-restore-cluster-role

[root@k8s-131 ~]# kubectl delete clusterrolebinding kasten-io-k10-restore-k10restore-cluster-role-binding

v2-e0d5b1a6384747e8cd5f69b8adb3f409_720w.jpg?source=d1c2d5a6

编辑切换为居中

执行K10 DR restore

以下命令中:

--set sourceClusterID=b7da31a6-9fb0-4dd7-b2a5-03dc31e12b1a  表示使用DR之前的Cluster ID.

--set profile.name=minio  表示使用DR之前的Veeam Kasten K10的Location profile

--set airgapped.repository=ccr.ccs.tencentyun.com/kasten  表示使用的air-gapped镜像库是 ccr.ccs.tencentyun.com/kasten

[root@k8s-131 ~]# helm install k10-restore kasten/k10restore --namespace=kasten-io --set sourceClusterID=b7da31a6-9fb0-4dd7-b2a5-03dc31e12b1a --set profile.name=minio --set airgapped.repository=ccr.ccs.tencentyun.com/kasten

v2-d01943d44b0e685aeb34e9077b7a8cb6_720w.jpg?source=d1c2d5a6

编辑切换为居中

[root@k8s-131 ~]# kubectl get pod -n kasten-io

v2-2d9beccfc90717b0286df1e2cbec5521_720w.jpg?source=d1c2d5a6

编辑切换为居中

以上结果显示,k10-restore-k10restore-xxxxx 的pod最终处于 Completed状态。

回到浏览器Kasten k10 Dashboard页面

v2-4365b69572d6b6d879edd36447727485_720w.jpg?source=d1c2d5a6

编辑切换为居中

发现Dashboard页面已经显示Veeam Kasten K10 DR恢复成功。

针对kasten-io重新应用blueprint

本测试环境mysql-blueprintV2.yaml已经保存在本地路径。

[root@k8s-131 ~]# kubectl --namespace kasten-io apply -f mysql-blueprintV2.yaml

blueprint.cr.kanister.io/mysql-blueprint created

回到Dashboard页面,发现application、policy及Usage&Reports里都恢复到DR之前的设置

v2-754d25336967a86e175dbe72e1369ad4_720w.jpg?source=d1c2d5a6

编辑切换为居中

v2-c7e8d6ec4f7ce43d23777793cc9c3713_720w.jpg?source=d1c2d5a6

编辑切换为居中

针对DR之前创建的policy执行备份

v2-ef000d9d38c535a6c0d9e7e29e17d8ed_720w.jpg?source=d1c2d5a6

编辑切换为居中

 

v2-552dcf5b0923699b1003bfc6f548cdbd_720w.jpg?source=d1c2d5a6

编辑切换为居中

以上结果显示针对应用的备份成功。

针对DR之前创建的policy备份进行恢复验证

v2-47ee43085b3af53be251d723351d8c30_720w.jpg?source=d1c2d5a6

编辑切换为居中

v2-b3ec3f6e82c534c5314fc16f4d779436_720w.jpg?source=d1c2d5a6

编辑切换为居中

v2-b68a2ccd28dade7d01928cc3a5fe04ca_720w.jpg?source=d1c2d5a6

编辑切换为居中

v2-6a1a91a6e7185c0893a9f0978e409ed7_720w.jpg?source=d1c2d5a6

编辑切换为居中

v2-fbeb6b8f67d3beceef1bd043500fe880_720w.jpg?source=d1c2d5a6

编辑切换为居中

以上结果显示恢复验证成功。

到此为止,Veeam Kasten K10 DR恢复已经成功完成。

 

3. 找回第一次Enable DR时设定的passphrase

参考链接:https://kubernetes.io/zh/docs/reference/kubectl/jsonpath/

[root@k8s-131 ~]# kubectl get secret k10-dr-secret -n kasten-io -o jsonpath='{.data}{"\n"}'

显示结果:

{"key":"aWJtMSFJQk0="}

v2-92eb50ff849d0d603f2eafd9a9bccff4_720w.jpg?source=d1c2d5a6

编辑切换为居中

以上密码是经过加密的,解密该密码,运行下列命令

[root@k8s-131 ~]# echo 'aWJtMSFJQk0=' |base64 --decode

显示结果:

ibm1!IBM

v2-2d92e83be4a4a68f1d9cbbe80df99f82_720w.jpg?source=d1c2d5a6

编辑切换为居中

 

0 comments

Be the first to comment!

Comment