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 um aplicativo para gerenciamento com o Trident Protect.

Colaboradores 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.

Criar 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.

Adicionar um aplicativo usando um CR
Passos
  1. Crie o arquivo CR do aplicativo de destino:

    1. Crie o arquivo de recurso personalizado (CR) e dê um nome a ele (por exemplo, maria-app.yaml ).

    2. Configure os seguintes atributos:

      • metadata.name: (Obrigatório) O nome do recurso personalizado do aplicativo. Anote o nome escolhido, pois outros arquivos CR necessários para operações de proteção farão referência a esse valor.

      • spec.includedNamespaces: (Obrigatório) Use o seletor de namespace e rótulo para especificar os namespaces e recursos que o aplicativo utiliza. O namespace da aplicação deve fazer parte desta lista. O seletor de rótulos é opcional e pode ser usado para filtrar recursos dentro de cada namespace especificado.

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

        • groupVersionKind: (Obrigatório) Especifica o grupo, a versão e o tipo da API do recurso com escopo de cluster.

        • labelSelector: (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 global de proteção contra congelamento Trident" .

Caso precise aplicar essa anotação após a criação de um aplicativo, 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 de 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 filtros que incluam ou excluam recursos marcados com rótulos específicos:

    • resourceFilter.resourceSelectionCriteria: (Obrigatório para filtragem) Use Include ou Exclude Para incluir ou excluir um recurso definido em resourceMatchers. Adicione os seguintes parâmetros resourceMatchers para definir os recursos a serem incluídos ou excluídos:

      • resourceFilter.resourceMatchers: Um array de objetos resourceMatcher. Se você definir vários elementos nessa matriz, eles corresponderão como uma operação OR, e os campos dentro de cada elemento (grupo, tipo, versão) corresponderão como uma operação AND.

        • resourceMatchers[].group: (Opcional) Grupo do recurso a ser filtrado.

        • resourceMatchers[].kind: (Opcional) Tipo do recurso a ser filtrado.

        • resourceMatchers[].version: (Opcional) Versão do recurso a ser filtrado.

        • resourceMatchers[].names: (Opcional) Nomes no campo metadata.name do Kubernetes do recurso a ser filtrado.

        • resourceMatchers[].namespaces: (Opcional) Namespaces no campo metadata.name do recurso do Kubernetes a ser filtrado.

        • resourceMatchers[].labelSelectors: (Opcional) String do seletor de rótulo no campo metadata.name do recurso do Kubernetes, conforme definido em "Documentação do Kubernetes" . Por exemplo: "trident.netapp.io/os=linux" .

          Observação Quando ambos resourceFilter e labelSelector são usados, resourceFilter primeiro corre 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. Após criar a solicitação de configuração (CR) do aplicativo que corresponda ao seu ambiente, aplique a 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 os valores entre colchetes pelas informações do seu 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 global de proteção contra congelamento Trident" .

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

    • Crie o aplicativo e utilize 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 as definições locais do aplicativo 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 tais 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"]}]'