Kubernetes+Minio+Velero:终极备份解决方案

转载:Kubernetes+Minio+Velero:终极备份解决方案 

 

1.Velero介绍

1.1 为何需要Velero

对于 Kubernetes 集群的备份,其实定期备份etcd数据库就可以了,但etcd的备份通常是针对整个集群进行备份与恢复,如果只是想恢复某个特定名称空间中的资源时,etcd的备份与恢复就难以实现,因此就有了velero。 Velero 可以对 Kubernetes 集群整体进行备份,还能对集群内不同的Namespace资源进行分别备份和恢复。

1.2 什么是velero

Velero 是一个开源的Kubernetes集群备份与恢复工具,由 Go 语言编写,这个项目目前已经被 VMware 收购,但仍然保持开源。

Velero 的工作方式是将我们的 Kubernetes 集群的数据备份到对象存储中,当我们需要恢复数据时,Velero 会从这个对象存储服务中拉取数据,然后在集群中恢复它。

当然Velero除了备份和恢复之外,还可以帮助我们进行应用的迁移。比如,如果我们有一个应用正在运行在集群 A,我们想把它迁移到集群 B,借助 Velero 备份与恢复模式,可以让这个过程变得非常简单。

1.3 Velero应用场景

  • 1、灾备场景:提供备份恢复Kubernetes集群的能力

  • 2、迁移场景:提供复制集群资源到其他集群的能力

1.4 Velero工作流程

Velero备份工作逻辑:

  • 1、velero客户端执行备份的创建命令后,Velero服务端会将该命令转换成一个APIServer的请求,而后通过kubeconfig连接对应的APIServer发送请求。

  • 2、APIServer收到这个请求后,会创建一个Backup资源(该资源包含了备份的资源相关信息),而后将其存储在etcd数据库中。

  • 3、Velero Server 运行了一个BackupController控制器,主要用于监视新创建的Backup资源,一旦监控到新的 Backup 对象时,它会开始执行备份过程。

  • 4、BackupController 在执行备份时,会先通过APIServer获取要备份资源,而这些备份资源 API Server 会从 etcd 中获取这些信息。

  • 5、BackupController 会将从 API Server 获取的数据写入到对象存储中。(如 S3 兼容的minIO存储服务)

Velero恢复工作逻辑:

  • 1、velero客户端执行恢复命令后,velero服务端会将该命令转换成一个APIServer的请求,而后通过kubeconfig连接对应的APIServer发送请求。

  • 2、APIServer收到这个请求后,会创建一个Restore资源,而后将其存储在etcd数据库中。

  • 3、Velero Server 运行了的RestoreController控制器,主要用于监视新创建的Restore资源,当监控到Restore对象时候则会执行恢复逻辑。

  • 4、当RestoreController控制器在恢复数据时,首先从对象存储获取此前备份数据,然后通过APIServer完成etcd的更新,进而完成集群的恢复。

1.5 Velero支持的后端存储

  • 1、AWS S3 以及兼容 S3 的存储,比如:MinIO、腾讯的COS

  • 2、Aliyun OSS 存储(插件很久没更新了)

  • 2、Azure BloB 存储

  • 3、Google Cloud 存储

2.Velero结合MinIO备份与恢复实践

实现思路:

  • 1、部署 MinIO 服务,可以通过Docker部署,也可以通过Kubernetes进行部署。

  • 2、创建一个 Mi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值