管理适用于 Kubernetes 工作负载的NetApp Backup and Recovery执行挂钩模板
执行钩子是一种自定义操作,它与托管 Kubernetes 应用程序中的数据保护操作一起运行。例如,通过使用执行挂钩在快照之前暂停数据库事务并在之后恢复它们来创建应用程序一致的快照。创建执行钩子模板时,指定钩子类型、要运行的脚本以及目标容器的过滤器。使用模板将执行挂钩链接到您的应用程序。
|
|
NetApp Backup and Recovery在数据保护期间冻结和解冻 KubeVirt 等应用程序的文件系统。您可以使用Trident保护文档全局或针对特定应用程序禁用此行为:
|
组织管理员或SnapCenter管理员。"了解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)的真实执行挂钩。您还可以查看示例并获得构建您自己的自定义执行挂钩的想法。
创建执行钩子模板
您可以创建自定义执行挂钩模板,用于在应用程序上执行数据保护操作之前或之后执行操作。
-
在控制台中,转到*保护*>*备份和恢复*。
-
选择“设置”选项卡。
-
展开*执行钩子模板*部分。
-
选择*创建执行钩子模板*。
-
输入执行挂钩的名称。
-
(可选)选择一种钩子类型。例如,还原后钩子会在还原操作完成后运行。
-
在 Script 文本框中,输入要作为执行挂钩模板的一部分运行的可执行 shell 脚本。或者,您可以选择*上传脚本*来上传脚本文件。
-
选择“创建”。
创建模板后,它将出现在*执行挂钩模板*部分的模板列表中。