今天我来讲讲如何备份 apisix 的数据,主要是路由、服务、上游等数据。本文中的 apisix 版本为 apisix 3.1.0版本。

接下来由我来介绍几种备份方法。

dashboard 导出备份

介绍的第一种方法是使用 apisix dashboard 进行数据导出,但这种方法有许多缺陷,只能导出 route 数据,其他服务、ssl数据都不能导出,而且新版本(3.0+)dashboard 导出的路由不包含上游服务的数据,不方便进行快速的路由迁移复制(我猜测可能是害怕上游服务信息不一致导致路由错误)。

接下来就来介绍如何进行导入导出。

1 我们打开 dashboard

img.png

2 选择要导出的路由,点击 export openapi

img_1.png

3 在新的 apisix dashboard 导入刚刚导出的 openapi 文件并填写相应的信息,导入成功后就可以看到导入的路由信息,相应路由的服务需要补充填写。

img_2.png

img_3.png

根据 admin api 编写相应的脚本

apisix 提供了各种route、service 的admin api 数据接口,我们可以根据官方提供的接口编写相应的脚本。

使用 etcd 备份方案

由于 apisix 默认采用 etcd 进行数据存储,我们可以备份 etcd 数据,到新的 apisix 集群导入备份的数据。

由于我对 etcd 的运维不太熟悉,想要了解 etcd 备份快照,可以查看这条链接

小结

本文我介绍了3种将 apisix 数据导入导出的方法,3种方法各有各的优缺点,我们需要根据我们具体的情况来使用不同的方法。

参考