Velero v1.6 有哪些新功能
Velero v1.6在今年4月份发布,从新功能角度来说应该不算是一个特别大的版本,亮点是多备份目的地认证凭据的支持以及恢复时在目标集群上API版本的自适应选择。在新功能之外,开发团队在软件工程上花费了更多的精力来提升开发效率和加强软件质量,包括开发流程和测试流程的改善,这些对于Velero这样一个处理容灾和业务迁移的关键应用而言是非常重要的。
下面我们对v1.6的新功能进行一个简单的介绍。
1. 多个备份目的地认证凭据的支持
在v1.6之前,Velero虽然支持多个备份目的地(BackupStorageLocation
,简称BSL),但是所有BSL必须共享同一个认证凭据(credential
)。当用户组织内需要对不同的应用备份数据实施隔离时,这会是一个很大的安全限制。
从v1.6.0开始,用户可以为每一个BSL指定一个不同的认证凭据。首先,用户需要在Velero命名空间中创建认证凭据的Secret,然后在配置新的或者现有BSL的时候指定相应的Secret。Velero会使用Secret里面的认证凭据来与相应的存储进行认证。这个功能将为用户的数据安全策略提供很大的灵活性。
目前,由Velero团队负责维护的v1.2.0版本发布的所有存储插件都已支持这个功能。如果用户使用了社区提供的存储插件,则需要去确认一下该插件是否支持这个功能。
示例,创建一个带有Secret的BSL:
velero backup-location create <bsl-name> \
--provider <provider> \
--bucket <bucket> \
--config region=<region> \
--credential=<secret-name>=<key-within-secret>
2. 数据恢复进度报告
对于一些需要运行时间比较长的作业而言,用户非常想清楚地知道现在进展到哪一步了(确认不是hang住或者出错)。
Velero从v1.4.0开始支持查询备份作业的进度,从v1.6.0开始,用户也可以查询恢复作业的进度了。查询恢复作业进度的指令为:
velero describe restore
3. 恢复时资源API版本的自适应选择
在跨集群迁移或者K8s升级的场景里,用户经常会遇到在新集群中或者集群升级后资源的API版本不一致的情况。如果有些资源备份时的API版本在目标集群上已经被弃用,那么恢复时这些资源就无法被正确恢复回来。
Velero从v1.4.0开始其实已经备份了每个资源的所有可用版本。从v1.6.0开始,在恢复过程中,Velero可以为每个资源自动选择在目标集群上最合适的API版本。有了这个功能之后,跨集群迁移或者K8s升级场景中的应用恢复就更加顺畅了。
这里简单描述一下Velero的API版本选择策略,详细的文档参见这里:
- 如果目标集群上的 preferred version
在备份文件中存在,则优先使用之;
- 如果不满足上述条件,且目标集群上也支持源备份集群的 preferred version
,那么使用源备份集群的 preferred version
;
- 如果不满足上述条件,那么优先选择在源备份集群和目标集群中都支持的版本;如果有多个符合这个条件的版本,则按照K8s的版本优先级规则处理。
使用API版本自适应恢复功能,用户需要打开Velero实例的EnableAPIGroupVersions
开关。
4. Restic升级到新版本
在Velero v1.6.0版本中,提供文件复制能力的Restic也升级到v0.12.0。Restic的新版本除了包含不少问题修复外,在性能上也有所提高。
5. 稳定性提升
Velero v1.6.0的开发过程中使用了一套全新的端到端测试框架,在原来的功能测试覆盖基础上,更多会从用户的角度来模拟在不同场景中使用Velero的过程,更好的提升Velero的稳定性。
6. 小结
对于Velero这种处理容灾和业务迁移的关键应用而言,软件质量和稳定性是第一位的优先级,因为用户在这样的场景中必须对软件非常信赖。所以Velero v1.6.0上开发团队花了大量的精力在提升质量和稳定性上,这样的做法对于Velero的长远发展还是非常重要的。当然,多备份目的地认证凭据的支持以及恢复时在目标集群上API版本的自适应选择也是非常实用的功能。
参考资料
https://velero.io/blog/velero-1.6-bring-all-your-credentials/
https://velero.io/docs/v1.6/enable-api-group-versions-feature/
https://velero.io/docs/v1.6/locations/#create-a-storage-location-that-uses-unique-credentials