在 NetApp Backup and Recovery 中管理 Kubernetes 执行挂钩模板
创建执行挂钩模板,以在托管 Kubernetes 应用程序的保护操作之前或之后运行自定义脚本。
|
|
NetApp Backup and Recovery 会在数据保护期间冻结和解冻应用程序的文件系统,例如 KubeVirt。您可以全局禁用此行为,也可以使用 Trident Protect 文档对特定应用程序禁用此行为:
|
所需 NetApp Console 角色
Backup and Recovery super admin、Backup and Recovery backup admin 或 Backup and Recovery restore admin。"了解NetApp Backup and Recovery访问角色". "了解所有服务的NetApp Console访问角色".
执行钩子的类型
NetApp Backup and Recovery 支持以下类型的执行挂钩,具体取决于其运行时间:
-
预快照
-
快照后
-
预备份
-
备份后
-
恢复后
执行顺序
当数据保护操作运行时,执行挂钩事件按以下顺序发生:
-
任何适用的自定义预操作执行挂钩都在适当的容器上运行。您可以创建多个自定义预操作挂钩,但它们的执行顺序无法保证或配置。
-
如果适用,则会发生文件系统冻结。
-
执行数据保护操作。
-
如果适用,冻结的文件系统将被解冻。
-
NetApp Backup and Recovery 在适当的容器上运行任何适用的自定义操作后执行挂钩。您可以创建多个自定义操作后挂钩,但不能保证或配置其执行顺序。
如果您创建相同类型的多个挂钩,则无法保证其执行顺序。不同类型的挂钩始终按指定顺序运行。例如,当配置包括所有支持的挂钩类型时,挂钩按此顺序运行:
-
快照前挂钩运行
-
快照后挂钩运行
-
备份前挂钩运行
-
备份后挂钩运行
|
|
在生产中启用执行挂钩脚本之前对其进行测试。使用“kubectl exec”测试脚本,然后通过将应用程序克隆到临时命名空间并恢复来验证快照和备份。 |
|
|
如果快照前执行钩子添加、更改或删除 Kubernetes 资源,则这些更改将包含在快照或备份以及任何后续恢复操作中。 |
关于自定义执行钩子的重要说明
规划应用程序的执行挂钩时,请考虑以下内容。
-
执行钩子必须使用脚本来执行操作。许多执行钩子可以引用同一个脚本。
-
执行挂钩必须是可执行的 shell 脚本。
-
脚本大小限制为 96KB。
-
执行挂钩设置和任何匹配标准用于确定哪些挂钩适用于快照、备份或恢复操作。
|
|
执行挂钩可以减少或禁用应用程序功能。让您的定制挂钩尽可能快地运行。如果取消具有关联执行挂钩的备份或快照操作,则如果操作已开始,这些挂钩仍将运行。备份后执行挂钩的逻辑不能假定备份已完成。 |
执行钩子过滤器
在为应用程序添加或编辑执行挂钩时,可以向执行挂钩添加筛选器,以控制挂钩匹配的容器。筛选器对于在所有容器上使用相同容器映像的应用程序非常有用,但可能会将每个映像用于不同的目的(例如 Elasticsearch)。筛选器允许您创建执行挂钩在某些但不一定所有相同的容器上运行的场景。如果为单个执行挂钩创建多个筛选器,它们将与逻辑 AND 运算符组合。每个执行挂钩最多可以有 10 个活动筛选器。
添加到执行挂钩的每个筛选器都使用正则表达式来匹配集群中的容器。当挂钩与容器匹配时,挂钩在该容器上运行其关联的脚本。筛选器的正则表达式使用正则表达式 2 (RE2) 语法,该语法不支持创建从匹配列表中排除容器的筛选器。有关 NetApp Backup and Recovery 对执行挂钩筛选器中的正则表达式所支持的语法的信息,请参阅 "正则表达式 2 (RE2) 语法支持"。
|
|
如果将命名空间过滤器添加到在恢复或克隆操作后运行的执行挂钩,并且恢复或克隆源和目标位于不同的命名空间中,则命名空间过滤器仅适用于目标命名空间。 |
执行钩子示例
访问 "NetApp Verda GitHub 项目"下载流行应用程序(如 Apache Cassandra 和 Elasticsearch)的真实执行挂钩。您还可以查看示例并获得构建您自己的自定义执行挂钩的想法。
|
|
Verda GitHub 存储库中的脚本按原样提供,不受 NetApp 的官方支持。只有 Trident Protect 和 Backup and Recovery 中的执行挂钩框架才受 NetApp 的官方支持。 |
创建执行钩子模板
您可以创建自定义执行挂钩模板,用于在应用程序上执行数据保护操作之前或之后执行操作。
|
|
此处创建的模板仅在保护 Kubernetes 工作负载时可用。 |
-
在控制台中,转到*保护*>*备份和恢复*。
-
选择“设置”选项卡。
-
展开*执行钩子模板*部分。
-
选择*创建执行钩子模板*。
-
输入执行挂钩的名称。
-
(可选)选择一种钩子类型。例如,还原后钩子会在还原操作完成后运行。
-
在 Script 文本框中,输入要作为执行挂钩模板的一部分运行的可执行 shell 脚本。或者,您可以选择*上传脚本*来上传脚本文件。
-
选择“创建”。
创建模板后,它将出现在*执行挂钩模板*部分的模板列表中。