腾讯云:在TKE中使用Velero迁移复制集群资源

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:李全江网络

小提示:您能找到这篇{腾讯云:在TKE中使用Velero迁移复制集群资源}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的腾讯云:在TKE中使用Velero迁移复制集群资源内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">概述

< ">Velero(以前称为Heptio Ark)是一个开源工具,可以安全地备份和还原,执行灾难恢复以及迁移Kubernetes集群资源和持久卷,可以在TKE集群或自建Kubernetes集群中部署Velero用于:

< ">备份集群并在丢失的情况下进行还原。

< ">将集群资源迁移到其他集群。

< ">将生产集群复制到开发和测试集群。

< ">本文将介绍使用Velero实现TKE集群间的无缝迁移复制集群资源的操作步骤。

< ">迁移原理

< ">在需要被迁移的集群和目标集群上都安装Velero实例,并且两个集群的Velero实例指向相同的腾讯云COS对象存储位置,使用Velero在需要被迁移的集群执行备份操作生成备份数据存储到腾讯云COS,然后在目标集群上使用Velero执行数据的还原操作实现迁移,迁移原理如下:

< ">前提条件

< ">已注册腾讯云账户[2]。

< ">已开通腾讯云COS服务。

< ">已有需要被迁移的TKE集群(以下称作集群A),已创建迁移目标的TKE集群(以下称作集群B),创建TKE集群请参阅创建集群[3]。

< ">集群A和集群B都需要安装Velero实例(1.5版本以上),并且共用同一个腾讯云COS存储桶作为Velero后端存储,安装步骤请参阅配置存储和安装Velero[4]。

< ">注意事项

< ">1.从1.5版本开始,Velero可以使用Restic备份所有pod卷,而不必单独注释每个pod。默认情况下,此功能允许用户使用restic备份所有pod卷,但以下卷情况除外:

< ">挂载默认Service Account Secret的卷

< ">挂载的hostPath类型卷

< ">挂载Kubernetes secrets和configmaps的卷

< ">本示例需要Velero 1.5以上版本且启用restic[5]来备份持久卷数据,请确保在安装Velero阶段开启--use-restic和--default-volumes-to-restic参数,安装步骤请参阅配置存储和安装Velero[6]。

< ">2.在执行迁移过程中,请不要对两边集群资源做任何CRUD操作,以免在迁移过程中造成数据差异,最终导致迁移后的数据不一致。

< ">3.尽量保证集群B和集群A工作节点的CPU、内存等规格配置相同或不要相差太大,以免出现迁移后的Pods因资源原因无法调度导致Pending的情况。

< ">操作步骤

< ">在集群A创建备份

< ">可以手动执行备份操作,也可以给velero设置定期自动备份,设置方法可以使用velero schedule-h查看。本示例将以default、default2命名空间的资源情况作比较验证,下图可以看到集群A中两个命名空间下的Pods和PVC资源情况:

< ">提示:可以指定在备份期间执行一些自定义Hook操作。比如,需要在备份之前将运行应用程序的内存中的数据持久化到磁盘。有关备份Hook的更多信息请参阅备份Hook[7]。

< ">其中,集群中的minio对象存储服务使用了持久卷,并且已经上传了一些图片数据,如下图所示:



< ">执行下面命令来备份集群中不包含velero命名空间(velero安装的默认命名空间)资源的其他所有资源,如果想自定义需要备份的集群资源范围,可使用velero create backup-h查看支持的资源筛选参数。

velero backup create<BACKUP-NAME>--exclude-namespaces<NA名企业 危机公关MESPACE>

< ">本示例我们创建一个“default-all”的集群备份,备份过程如下图所示:

< ">备份任务状态显示是“Completed”时,说明备份任务完成,可以通过velero backup logs|grep error命令检查是否有备份操作发生错误,没有输出则说明备份过程无错误发生,如下图所示:

< ">注意:请确保备份过程未发生任何错误,假如velero在执行备份过程中发生错误,请排查解决后重新执行备份。

< ">备份完成后,临时将备份存储位置更新为只读模式(非必须,这可以防止在还原过程中Velero在备份存储位置中创建或删除备份对象):

kubectl patch backupstoragelocation default --namespace velero

    --type merge

    --patch '{"spec":{"accessMode":"ReadOnly"}}'



< ">在集群B执行还原

< ">在执行还原操作前集群B中default、default2命名空间下没有任何工作负载资源,查看结果如下图:

< ">临时将集群B中Velero备份存储位置也更新为只读模式(非必须,这可以防止在还原过程中Velero在备份存储位置中创建或删除备份对象):

kubectl patch backupstoragelocation default --namespace velero

    --type merge

    --patch '{"spec":{"accessMode":"ReadOnly"}}'

< ">提示:可以选择指定在还原期间或还原资源后执行自定义Hook操作。例如,可能需要在数据库应用程序容器启动之前执行自定义数据库还原操作。有关还原Hook的更多信息请参阅还原Hook[8]。

< ">在还原操作之前,需确保集群B中的Velero资源与云存储中的备份文件同步。默认同步间隔是1分钟,可以使用--backup-sync-period来配置同步间隔。可以使用下面命令查看集群A的备份是否已同步:

velero backup get <BACKUP-NAME>

< ">获取备份成功检查无误后,执行下面命令还原所有内容到集群B中:

velero restore create --from-backup <BACKUP-NAME>

< ">本示例执行还原过程如下图:

< ">等待还原任务完成后查看还原日志,可以使用下面命令查看还原是否有报错和跳过信息和平精英

# 查看迁移时是否有错误的还原信息

velero restore logs <BACKUP-NAME> | grep error 

# 查看迁移时跳过的还原操作

velero restore logs <BACKUP-NAME> | grep skip

< ">从下图可以看出没有发生错误的还原步骤,但是有很多“skipped”步骤,是因为我们在备份集群资源时备份了不包含velero命名空间的所有集群资源,有一些同类型同名的集群资源已经存在了,如kube-system下的集群资源,当还原过程中有资源冲突时,velero会跳过还原的操作步骤。所以实际上还原过程是正常的,可以忽略这些“skipped”日志,假如有特殊情况可以分析下日志看看。

< ">迁移结果核验

< ">查看校验集群B执行迁移操作后的集群资源,可以看到default、default2命名空间下的pods和PVC资源已按预期迁移成功:

< ">再通过Web管理页面登录集群B中的monio服务,可以看到minio服务中的图片数据没有丢失,说明持久卷数据也已按预期迁移成功。

< ">至此,我们完成了TKE集群间资源的迁移,迁移操作完成后,请不要忘记把备份存储位置恢复为读写模式(集群A和集群B),以便下次备份任务可以成功使用:

kubectl patch backupstoragelocation default --namespace velero

   --type merge

   --patch '{"spec":{"accessMode":"ReadWrite"}}'

< ">总结

< ">本文主要介绍了在TKE集群间使用Velero迁移集群资源的原理、注意事项和操作方法,成功的将示例集群A中的集群资源无缝迁移到集群B中,整个迁移过程非常简单方便,是一种非常友好的集群资源迁移方案。

参考资料

[1]Velero:https://velero.io/

[2]注册腾讯云账户:https://cloud.tencent.com/register

[3]创建集群:https://cloud.tencent.com/document/product/457/32189

[4]配置存储和安装Velero:https://cloud.tencent.com/document/product/457/50122

[5]restic:https://velero.io/docs/v1.5/restic/

[6]配置存储和安装Velero:https://cloud.tencent.com/document/product/457/50122

[7]备份Hook:https://velero.io/docs/v1.5/backup-hooks/

[8]还原Hook:https://velero.io/docs/v1.5/restore-hooks/

腾讯云:在TKE中使用Velero迁移复制集群资源

上一篇:Tapjoy:滚动留存与留存
下一篇:Appstore开发者如何更改开启Apple ID双重认证的手机


版权声明:以上主题为“腾讯云:在TKE中使用Velero迁移复制集群资源"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    腾讯云:在TKE中使用Velero迁移复制集群资源
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“腾讯云:在TKE中使用Velero迁移复制集群资源”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通腾讯云:在TKE中使用Velero迁移复制集群资源的相关事宜。

关键词:腾讯云:在TKE中使用Vele

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号