Adicionar e proteger aplicativos Kubernetes
NetApp Backup and Recovery permite que você adicione aplicações Kubernetes através da interface web ou aplicando arquivos de recursos personalizados. As aplicações podem ser baseadas em namespaces, compostas por recursos padrão do Kubernetes, ou baseadas em máquinas virtuais, compostas por uma ou mais máquinas virtuais.
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 aplicações Kubernetes é criar uma aplicação no NetApp Backup and Recovery. Ao criar uma aplicação, você informa ao Backup and Recovery que ela está em execução no cluster Kubernetes.
Antes de poder adicionar e proteger um aplicativo Kubernetes, você precisa"descubra as cargas de trabalho do Kubernetes" .
-
No NetApp Backup and Recovery, selecione Inventário.
-
Escolha uma instância do Kubernetes e selecione Exibir para visualizar os recursos associados a essa instância.
-
Selecione a aba Aplicativos.
-
Selecione Criar aplicativo.
-
Digite um nome para o aplicativo.
-
Na lista Cluster, selecione o cluster que hospeda o aplicativo.
-
Em Filtros, escolha Namespace para filtrar aplicativos por namespace.
-
Opcionalmente, escolha qualquer um dos seguintes campos para pesquisar os recursos que você deseja proteger:
-
Espaços de nomes associados
-
Tipos de recursos
-
Seletores de rótulos
-
Selecione Adicionar recursos com escopo de cluster para adicionar recursos que têm escopo no nível do cluster. Se você os incluir, eles serão adicionados ao aplicativo quando você o criar.
-
Opcionalmente, selecione Pesquisar para encontrar os recursos com base nos seus critérios de pesquisa.
O Backup and Recovery 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.
-
-
-
Backup and Recovery exibe uma lista de recursos que correspondem aos seus critérios de pesquisa.
-
Se a lista contiver os recursos que você deseja proteger, selecione Avançar.
-
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.
-
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" .
-
Selecione Criar.
O aplicativo é criado e aparece na lista de aplicativos na guia Aplicativos do inventário do Kubernetes. Backup and Recovery permite a proteção do aplicativo com base nas suas configurações, e você pode monitorar o progresso na área Monitoramento.
-
No NetApp Backup and Recovery, selecione Inventário.
-
Escolha uma instância do Kubernetes e selecione Exibir para visualizar os recursos associados a essa instância.
-
Selecione a aba Aplicativos.
-
Selecione Criar aplicativo.
-
Digite um nome para o aplicativo.
-
Na lista Cluster, selecione o cluster que hospeda o aplicativo.
-
Em Filtros, escolha Máquinas virtuais para criar um aplicativo baseado em máquina virtual.
-
Encontre máquinas virtuais para adicionar ao aplicativo, escolhendo um namespace e, opcionalmente, incluindo seletores de rótulo.
Se você selecionar VMs da lista, a definição do aplicativo será estática — novas VMs não serão adicionadas ao aplicativo posteriormente (você precisa editar o aplicativo para adicioná-las e protegê-las). Se você usar seletores de rótulo, não poderá escolher VMs individualmente nem editar a lista gerada, mas qualquer VM que corresponda ao seletor posteriormente será incluída automaticamente e protegida. As máquinas virtuais selecionadas aparecem na lista à direita.
-
Se a lista contiver as VMs que você deseja proteger, selecione Next.
-
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.
-
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" .
-
Selecione Criar.
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.
-
Crie o arquivo CR do aplicativo de destino:
-
Crie o arquivo de recurso personalizado (CR) e dê um nome a ele (por exemplo,
my-app-name.yaml). -
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.
-
-
-
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
protectouunprotect. -
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
-
(Opcional) Adicione filtragem que inclua ou exclua recursos marcados com rótulos específicos:
-
resourceFilter.resourceSelectionCriteria: (obrigatório para filtragem) Use
IncludeouExcludepara 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".Quando ambos resourceFilterelabelSelectorsã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"] -
-
Após criar a CR do aplicativo para corresponder ao seu ambiente, aplique a CR. Por exemplo:
kubectl apply -f my-app-name.yaml