Skip to main content
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Defina uma aplicação para gestão com o Trident Protect.

Colaboradores netapp-mwallis netapp-shwetav Copilot netapp-aruldeepa

Você pode definir um aplicativo que deseja gerenciar com o Trident Protect criando um CR (Create Request) de aplicativo e um CR do AppVault associado.

Crie um AppVault CR

Você precisa criar um AppVault CR que será usado ao executar operações de proteção de dados no aplicativo, e o AppVault CR precisa residir no cluster onde o Trident Protect está instalado. O pedido de configuração (CR) do AppVault é específico para o seu ambiente; para exemplos de pedidos de configuração do AppVault, consulte [link para a documentação]."Recursos personalizados do AppVault."

Definir uma aplicação

Você precisa definir cada aplicativo que deseja gerenciar com o Trident Protect. Você pode definir um aplicativo para gerenciamento criando manualmente uma solicitação de configuração (CR) do aplicativo ou usando a CLI do Trident Protect.

Adicione uma aplicação utilizando um CR
Passos
  1. Criar o ficheiro CR da aplicação de destino:

    1. Crie o arquivo de recurso personalizado (CR) e nomeie-o (por exemplo, maria-app.yaml ).

    2. Configure os seguintes atributos:

      • metadata.name: (required) o nome do recurso personalizado do aplicativo. Observe o nome escolhido porque outros arquivos CR necessários para operações de proteção referem-se a esse valor.

      • spec.includedNamespaces: (required) Use o seletor de namespace e rótulo para especificar os namespaces e recursos que o aplicativo usa. O namespace do aplicativo deve fazer parte dessa lista. O seletor de etiquetas é opcional e pode ser usado para filtrar recursos dentro de cada namespace especificado.

      • spec.includedClusterScopedResources: (Optional) Use este atributo para especificar recursos com escopo de cluster a serem incluídos na definição do aplicativo. Esse atributo permite que você selecione esses recursos com base em seu grupo, versão, tipo e rótulos.

        • GroupVersionKind: (required) especifica o grupo API, a versão e o tipo do recurso com escopo de cluster.

        • LabelSeletor: (Opcional) filtra os recursos com escopo de cluster com base em seus rótulos.

      • metadata.annotations.protect.trident.netapp.io/skip-vm-freeze: (Opcional) Esta anotação só se aplica a aplicações definidas a partir de máquinas virtuais, como em ambientes KubeVirt, onde o congelamento do sistema de arquivos ocorre antes dos snapshots. Especifique se este aplicativo pode gravar no sistema de arquivos durante um snapshot. Se definido como verdadeiro, o aplicativo ignora a configuração global e pode gravar no sistema de arquivos durante um snapshot. Se definido como falso, o aplicativo ignora a configuração global e o sistema de arquivos é congelado durante a captura de um instantâneo. Se especificada, mas a aplicação não tiver máquinas virtuais na definição da aplicação, a anotação será ignorada. Caso não seja especificado, o aplicativo segue o"configuração de congelamento global do Trident Protect" .

Se você precisar aplicar essa anotação depois que um aplicativo já tiver sido criado, você pode usar o seguinte comando:

kubectl annotate application -n <application CR namespace> <application CR name> protect.trident.netapp.io/skip-vm-freeze="true"

+
Exemplo 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
  1. (Opcional) Adicione filtragem que inclua ou exclua recursos marcados com rótulos específicos:

    • ResourceFilter.resourceSelectionCriteria: (Necessário para filtragem) Use Include ou Exclude inclua ou exclua um recurso definido em resourceMatchers. Adicione os seguintes parâmetros resourceMatchers para definir os recursos a serem incluídos ou excluídos:

      • ResourceFilter.resourceMatchers: Uma matriz de resourceMatcher objetos. Se você definir vários elementos nesse array, eles corresponderão como uma OPERAÇÃO OU, e os campos dentro de cada elemento (grupo, tipo, versão) corresponderão como uma OPERAÇÃO E.

        • ResourceMatchers[].group: (Optional) Grupo do recurso a ser filtrado.

        • ResourceMatchers[].kind: (Opcional) tipo do recurso a ser filtrado.

        • ResourceMatchers[].version: (Optional) versão do recurso a ser filtrado.

        • ResourceMatchers[].names: (Optional) nomes no campo Kubernetes metadata.name do recurso a ser filtrado.

        • ResourceMatchers[].namespaces: (Optional) namespaces no campo Kubernetes metadata.name do recurso a ser filtrado.

        • ResourceMatchers[].labelSelectors: (Optional) string de seleção de etiquetas no campo Kubernetes metadata.name do recurso, conforme definido no "Documentação do Kubernetes". Por exemplo "trident.netapp.io/os=linux": .

          Observação Quando ambos resourceFilter e labelSelector são usados, resourceFilter corre primeiro e depois labelSelector é aplicado aos recursos resultantes.

      Por exemplo:

    spec:
      resourceFilter:
        resourceSelectionCriteria: "Include"
        resourceMatchers:
          - group: my-resource-group-1
            kind: my-resource-kind-1
            version: my-resource-version-1
            names: ["my-resource-names"]
            namespaces: ["my-resource-namespaces"]
            labelSelectors: ["trident.netapp.io/os=linux"]
          - group: my-resource-group-2
            kind: my-resource-kind-2
            version: my-resource-version-2
            names: ["my-resource-names"]
            namespaces: ["my-resource-namespaces"]
            labelSelectors: ["trident.netapp.io/os=linux"]
  2. Depois de criar a aplicação CR para corresponder ao seu ambiente, aplique o CR. Por exemplo:

    kubectl apply -f maria-app.yaml
Passos
  1. Crie e aplique a definição do aplicativo usando um dos exemplos a seguir, substituindo valores entre parênteses por informações do ambiente. Você pode incluir namespaces e recursos na definição do aplicativo usando listas separadas por vírgulas com os argumentos mostrados nos exemplos.

    Você pode, opcionalmente, usar uma anotação ao criar um aplicativo para especificar se o aplicativo pode gravar no sistema de arquivos durante um snapshot. Isso só se aplica a aplicativos definidos a partir de máquinas virtuais, como em ambientes KubeVirt, onde o congelamento do sistema de arquivos ocorre antes dos snapshots. Se você definir a anotação para true , o aplicativo ignora a configuração global e pode gravar no sistema de arquivos durante um snapshot. Se você definir para false , o aplicativo ignora a configuração global e o sistema de arquivos fica congelado durante a captura de um snapshot. Se você usar a anotação, mas o aplicativo não tiver máquinas virtuais na definição do aplicativo, a anotação será ignorada. Se você não usar a anotação, o aplicativo seguirá o padrão."configuração de congelamento global do Trident Protect" .

    Para especificar a anotação quando você usa a CLI para criar um aplicativo, você pode usar o --annotation sinalizador.

    • Crie o aplicativo e use a configuração global para o comportamento de congelamento do sistema de arquivos:

      tridentctl-protect create application <my_new_app_cr_name> --namespaces <namespaces_to_include> --csr <cluster_scoped_resources_to_include> --namespace <my-app-namespace>
    • Crie o aplicativo e configure a configuração do aplicativo local para o comportamento de congelamento do sistema de arquivos:

      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">

      Você pode usar --resource-filter-include e --resource-filter-exclude sinalizadores para incluir ou excluir recursos com base em resourceSelectionCriteria como grupo, tipo, versão, rótulos, nomes e namespaces, conforme mostrado no exemplo a seguir:

    tridentctl-protect create application <my_new_app_cr_name> --namespaces <namespaces_to_include> --csr <cluster_scoped_resources_to_include> --namespace <my-app-namespace> --resource-filter-include '[{"Group":"apps","Kind":"Deployment","Version":"v1","Names":["my-deployment"],"Namespaces":["my-namespace"],"LabelSelectors":["app=my-app"]}]'