【问题标题】:Creating pv backups on AKS managed disks (dynamic) using velero使用 velero 在 AKS 托管磁盘(动态)上创建 pv 备份
【发布时间】:2020-02-17 05:40:48
【问题描述】:

我目前正在试用 Azure AKS,在安装过程中我显然也想进行备份。为此,最佳实践似乎是 velero。根据 velero 的文档来包含 pv 快照,您将注释 pod/deployment。示例:

backup.velero.io/backup-volumes: wp-pv

请注意,以上是使用静态托管磁盘时的情况。我可以看到快照已创建。但是,当我进行恢复时,会创建一个新的 pv,而不是使用恢复中的 pv。这是预期的行为吗?

理想情况下,我想改用动态 pv,但这会使它变得更加简单,因为我不知道 pv 将具有什么名称,因此无法事先添加适当的注释。

我怎样才能以干净的方式解决这个问题?我的理想情况是使用 velero 进行计划备份,并且在恢复的情况下自动让它使用快照作为 pv 的基础,而不是创建一个不包含我的数据的新快照。现在,这似乎是一个手动程序?我错过了什么吗?

【问题讨论】:

    标签: azure kubernetes azure-aks velero


    【解决方案1】:

    这是设计使然。

    根据定义,PersistantVolume 只能属于一个 PVC 声明者。即使设置为动态。

    我认为您想要的是将回收政策设置为保留。见这里:

    https://kubernetes.io/docs/concepts/storage/persistent-volumes/#retain

    “保留”状态应该意味着 PV 数据持续存在,它只需要被新的 PV/PVC 回收。 AKS 应该对此有所了解......但我只用 AWS/Baremetal 做过这个

    在这种情况下,Velero 必须同时重新创建 PVC 和 PV,才能释放卷并将其重新分配给新的声明者。

    【讨论】:

    • 嗨,Dandy,我更改了回收策略以保留持久卷,但在我的恢复方案中,我删除了包含我的资源和关联的 pv 的命名空间。删除后我创建了一个恢复,我可以看到创建了一个新的 PV 来设置环境。
    • 应该没问题,Velero 将简单地恢复它在 etcd 备份文件中找到的所有丢失的资源。恢复的 PV/PVC 将“不同”,但仍应引用 Azure AKS 数据。我假设 Azure AKS 不需要特殊的东西来确保保留数据,您是说 PV 错误,还是在删除命名空间时存储提供程序中的数据丢失?
    • 好吧,如果我在删除命名空间后不删除 PV。数据在恢复时保留,但我也希望看到 velero 的恢复工作,即使我删除 PV 在我的情况下,快照磁盘现在命名为 myAKSDisk-03b7d48a-17fa-44c5-9011-18951943f9ef 并且部署现在正在使用“myAKSDisk”是一个新的 PV。
    • 哦,是的,我没有考虑过。我什至不确定 Velero 将如何处理这种情况,因为它必须有效地删除保留的 PV。我会看看我是否可以尝试类似的场景,但我会看看其他人是否对此有任何好的答案。可能值得在 Slack 上询问 Velero 开发人员。
    猜你喜欢
    • 2020-09-06
    • 1970-01-01
    • 2021-09-22
    • 2017-12-31
    • 1970-01-01
    • 2019-11-08
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多