Skip to main content
NetApp Backup and Recovery
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.

Adicionar e proteger aplicativos Kubernetes

Colaboradores netapp-mwallis

O NetApp Backup and Recovery permite que você descubra facilmente seus clusters Kubernetes, sem gerar e carregar arquivos kubeconfig. Você pode conectar clusters do Kubernetes e instalar o software necessário usando comandos simples copiados da interface do usuário do NetApp Console .

Função necessária do NetApp Console

Administrador da organização ou administrador do SnapCenter . "Saiba mais sobre as funções de acesso do NetApp Backup and Recovery" . "Saiba mais sobre as funções de acesso do NetApp Console para todos os serviços" .

Adicionar e proteger um novo aplicativo Kubernetes

O primeiro passo para proteger aplicativos Kubernetes é criar um aplicativo no NetApp Backup and Recovery. Ao criar um aplicativo, você torna o Console ciente do aplicativo em execução no cluster do Kubernetes.

Antes de começar

Antes de poder adicionar e proteger um aplicativo Kubernetes, você precisa"descubra as cargas de trabalho do Kubernetes" .

Adicione um aplicativo usando a interface web
Passos
  1. No NetApp Backup and Recovery, selecione Inventário.

  2. Escolha uma instância do Kubernetes e selecione Exibir para visualizar os recursos associados a essa instância.

  3. Selecione a aba Aplicativos.

  4. Selecione Criar aplicativo.

  5. Digite um nome para o aplicativo.

  6. Opcionalmente, escolha qualquer um dos seguintes campos para pesquisar os recursos que você deseja proteger:

    • Cluster associado

    • Espaços de nomes associados

    • Tipos de recursos

    • Seletores de rótulos

  7. Opcionalmente, selecione Recursos com Escopo de Cluster para escolher quaisquer recursos com escopo no nível do cluster. Se você incluí-los, eles serão adicionados ao aplicativo quando você o criar.

  8. Opcionalmente, selecione Pesquisar para encontrar os recursos com base nos seus critérios de pesquisa.

    Observação O Console não armazena os parâmetros ou resultados da pesquisa; os parâmetros são usados para pesquisar no cluster Kubernetes selecionado recursos que podem ser incluídos no aplicativo.
  9. O Console exibe uma lista de recursos que correspondem aos seus critérios de pesquisa.

  10. Se a lista contiver os recursos que você deseja proteger, selecione Avançar.

  11. Opcionalmente, na área Política, escolha uma política de proteção existente para proteger o aplicativo ou crie uma nova. Se você não selecionar uma política, o aplicativo será criado sem uma política de proteção. Você pode"adicionar uma política de proteção" mais tarde.

  12. Na área Prescrições e postscripts, habilite e configure quaisquer ganchos de execução de prescrições ou postscripts que você deseja executar antes ou depois das operações de backup. Para habilitar prescrições ou pós-escritos, você deve ter criado pelo menos um"modelo de gancho de execução" .

  13. Selecione Criar.

Resultado

O aplicativo é criado e aparece na lista de aplicativos na guia Aplicativos do inventário do Kubernetes. O NetApp Console permite a proteção do aplicativo com base em suas configurações, e você pode monitorar o progresso na área Monitoramento de backup e recuperação.

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, my-app-name.yaml).

    2. Configurar 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 fazem 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 do aplicativo deve fazer parte desta lista. O seletor de rótulo é 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 de API, a versão e o tipo do recurso com escopo de cluster.

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

    3. Configurar as seguintes anotações, se necessário:

      • 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 KubeVirt ambientes, onde o congelamento do sistema de arquivos ocorre antes dos snapshots. Especifique se esta aplicação pode gravar no sistema de arquivos durante um snapshot. Se definida como true, a aplicação ignora a configuração global e pode gravar no sistema de arquivos durante um snapshot. Se definida como false, a aplicação ignora a configuração global e o sistema de arquivos é congelado durante um snapshot. Se especificada, mas a aplicação não tiver máquinas virtuais na definição da aplicação, a anotação será ignorada. Se não especificada, a aplicação segue a "configuração global de congelamento do sistema de arquivos".

      • protect.trident.netapp.io/protection-command: (opcional) Use esta anotação para instruir o NetApp Backup and Recovery a proteger ou parar de proteger o aplicativo. Os valores possíveis são protect ou unprotect.

      • protect.trident.netapp.io/protection-policy-name: (opcional) Use esta anotação para especificar o nome da política de proteção do NetApp Backup and Recovery que você deseja usar para proteger este aplicativo. Esta política de proteção já deve existir no NetApp Backup and Recovery.

Se você precisar aplicar essa anotação depois que um aplicativo já tiver sido criado, 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"
    protect.trident.netapp.io/protection-command: "protect"
    protect.trident.netapp.io/protection-policy-name: "policy-name"
  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: (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: Uma matriz de objetos resourceMatcher. Se você definir vários elementos nesta matriz, eles correspondem como uma operação OR, e os campos dentro de cada elemento (group, kind, version) correspondem 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 Kubernetes do recurso a ser filtrado.

        • resourceMatchers[].labelSelectors: (Opcional) String seletora de rótulo no campo metadata.name do Kubernetes 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 é executado primeiro e, em seguida, 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 CR do aplicativo para corresponder ao seu ambiente, aplique a CR. Por exemplo:

    kubectl apply -f my-app-name.yaml