Adicionar e proteger aplicativos Kubernetes
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 .
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 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.
-
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
-
-
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.
-
Opcionalmente, selecione Pesquisar para encontrar os recursos com base nos seus critérios de pesquisa.
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. -
O Console 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. 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