使用Trident Protect定义要管理的应用程序
您可以通过创建应用程序CR和关联的Trident Vault CR来定义要使用AppProtect管理的应用程序。
创建AppVault CR
您需要创建一个AppVault CR、以便在对应用程序执行数据保护操作时使用、并且AppVault CR需要驻留在安装了Trident Protect的集群上。AppVault CR特定于您的环境;有关AppVault CRS的示例、请参见"AppVault自定义资源。"
定义应用程序
您需要定义要使用Trident Protect管理的每个应用程序。您可以通过手动创建应用程序CR或使用Trident Protect命令行界面来定义要管理的应用程序。
-
创建目标应用程序CR文件:
-
创建自定义资源(CR)文件并将其命名(例如
maria-app.yaml
)。 -
配置以下属性:
-
metadata.name:(required_)应用程序自定义资源的名称。请注意您选择的名称、因为保护操作所需的其他CR文件会引用此值。
-
。spec.includedNamespaces:(required_)使用命名空间和标签选择器指定应用程序使用的命名空间和资源。应用程序命名空间必须属于此列表。标签选择器是可选的、可用于筛选每个指定命名空间中的资源。
-
。spec.includedClusterScopedResources:(可 选)使用此属性指定要包含在应用程序定义中的集群范围资源。此属性允许您根据资源的组、版本、种类和标签来选择这些资源。
-
groupVersionKind:(required)指定集群范围资源的API组、版本和类型。
-
labelSelecter:(可 选)根据集群范围的资源的标签对其进行筛选。
-
-
。metadata.annotations.protect.trident.netapp.io/skip-vm-freeze:(可 选)此标注仅适用于从虚拟机定义的应用程序、例如在KubeVirt环境中、文件系统在快照之前冻结。指定此应用程序是否可以在快照期间写入文件系统。如果设置为true、则应用程序将忽略全局设置、并可在快照期间写入文件系统。如果设置为false、则应用程序将忽略全局设置、并且文件系统会在快照期间冻结。如果指定了此参数、但应用程序定义中没有虚拟机、则会忽略此标注。如果未指定,则应用程序将遵循"全局Trident保护冻结设置"。
-
-
如果您需要在创建应用程序后应用此标注、可以使用以下命令:
kubectl annotate application -n <application CR namespace> <application CR name> protect.trident.netapp.io/skip-vm-freeze="true"
+
YAML示例:
+
apiVersion: protect.trident.netapp.io/v1
kind: Application
metadata:
annotations:
protect.trident.netapp.io/skip-vm-freeze: "false"
name: my-app-name
namespace: my-app-namespace
spec:
includedNamespaces:
- namespace: namespace-1
labelSelector:
matchLabels:
app: example-app
- namespace: namespace-2
labelSelector:
matchLabels:
app: another-example-app
includedClusterScopedResources:
- groupVersionKind:
group: rbac.authorization.k8s.io
kind: ClusterRole
version: v1
labelSelector:
matchLabels:
mylabel: test
-
创建应用程序CR以匹配您的环境后、请应用CR。例如:
kubectl apply -f maria-app.yaml
-
使用以下示例之一创建并应用应用程序定义、将括号中的值替换为您环境中的信息。您可以使用逗号分隔列表和示例中显示的参数在应用程序定义中包括名称和资源。
您可以选择在创建应用程序时使用标注来指定应用程序是否可以在快照期间写入文件系统。这仅适用于从虚拟机定义的应用程序、例如在KubeVirt环境中、文件系统在快照之前冻结。如果将标注设置为
true
,则应用程序将忽略全局设置,并可在快照期间写入文件系统。如果将其设置为false
,则应用程序将忽略全局设置,并且文件系统会在快照期间冻结。如果使用标注、但应用程序定义中没有虚拟机、则会忽略标注。如果不使用标注,则应用程序将遵循"全局Trident保护冻结设置"。要在使用命令行界面创建应用程序时指定标注、可以使用标志。
--annotation
-
创建应用程序并使用文件系统冻结行为的全局设置:
tridentctl-protect create application <my_new_app_cr_name> --namespaces <namespaces_to_include> --csr <cluster_scoped_resources_to_include> --namespace <my-app-namespace>
-
创建应用程序并为文件系统冻结行为配置本地应用程序设置:
tridentctl-protect create application <my_new_app_cr_name> --namespaces <namespaces_to_include> --csr <cluster_scoped_resources_to_include> --namespace <my-app-namespace> --annotation protect.trident.netapp.io/skip-vm-freeze=<"true"|"false">
-