Aggiungi e proteggi le applicazioni Kubernetes
NetApp Backup and Recovery ti consente di individuare facilmente i tuoi cluster Kubernetes, senza dover generare e caricare file kubeconfig. È possibile connettere i cluster Kubernetes e installare il software necessario utilizzando semplici comandi copiati dall'interfaccia utente NetApp Console .
Amministratore dell'organizzazione o amministratore SnapCenter . "Scopri di più sui ruoli di accesso a NetApp Backup and Recovery" . "Scopri di più sui ruoli di accesso NetApp Console per tutti i servizi" .
Aggiungi e proteggi una nuova applicazione Kubernetes
Il primo passo per proteggere le applicazioni Kubernetes è creare un'applicazione all'interno NetApp Backup and Recovery. Quando si crea un'applicazione, si fa in modo che la Console sia a conoscenza dell'applicazione in esecuzione sul cluster Kubernetes.
Prima di poter aggiungere e proteggere un'applicazione Kubernetes, è necessario"scopri i carichi di lavoro di Kubernetes" .
-
In NetApp Backup and Recovery, seleziona Inventario.
-
Scegli un'istanza di Kubernetes e seleziona Visualizza per visualizzare le risorse associate a tale istanza.
-
Selezionare la scheda Applicazioni.
-
Seleziona Crea applicazione.
-
Inserisci un nome per l'applicazione.
-
Facoltativamente, seleziona uno dei seguenti campi per cercare le risorse che desideri proteggere:
-
Cluster associato
-
Spazi dei nomi associati
-
Tipi di risorse
-
Selettori di etichette
-
-
Facoltativamente, seleziona Risorse con ambito cluster per scegliere tutte le risorse con ambito a livello di cluster. Se le includi, verranno aggiunte all'applicazione al momento della creazione.
-
Facoltativamente, seleziona Cerca per trovare le risorse in base ai tuoi criteri di ricerca.
La console non memorizza i parametri o i risultati della ricerca; i parametri vengono utilizzati per cercare nel cluster Kubernetes selezionato le risorse che possono essere incluse nell'applicazione. -
La Console visualizza un elenco di risorse che corrispondono ai criteri di ricerca.
-
Se l'elenco contiene le risorse che si desidera proteggere, selezionare Avanti.
-
Facoltativamente, nell'area Criterio, seleziona un criterio di protezione esistente per proteggere l'applicazione o creane uno nuovo. Se non selezioni un criterio, l'applicazione verrà creata senza criterio di protezione. Puoi"aggiungere una politica di protezione" Dopo.
-
Nell'area Prescript e postscript, abilitare e configurare tutti gli hook di esecuzione prescript o postscript che si desidera eseguire prima o dopo le operazioni di backup. Per abilitare prescript o postscript, devi averne già creato almeno uno"modello di gancio di esecuzione" .
-
Seleziona Crea.
L'applicazione viene creata e appare nell'elenco delle applicazioni nella scheda Applicazioni dell'inventario Kubernetes. La NetApp Console consente la protezione dell'applicazione in base alle impostazioni e puoi monitorare l'avanzamento nell'area Monitoraggio del backup e del ripristino.
-
Crea il file CR dell'applicazione di destinazione:
-
Creare il file custom resource (CR) e assegnargli un nome (ad esempio
my-app-name.yaml). -
Configura i seguenti attributi:
-
metadata.name: (Obbligatorio) Il nome della risorsa personalizzata dell'applicazione. Nota il nome che scegli perché altri file CR necessari per le operazioni di protezione fanno riferimento a questo valore.
-
spec.includedNamespaces: (Obbligatorio) Utilizzare il selettore di namespace e di etichetta per specificare i namespace e le risorse che l'applicazione utilizza. Il namespace dell'applicazione deve essere parte di questo elenco. Il selettore di etichetta è facoltativo e può essere utilizzato per filtrare le risorse all'interno di ciascun namespace specificato.
-
spec.includedClusterScopedResources: (Facoltativo) Utilizzare questo attributo per specificare le risorse con ambito cluster da includere nella definizione dell'applicazione. Questo attributo consente di selezionare queste risorse in base al gruppo, alla versione, al tipo e alle etichette.
-
groupVersionKind: (Obbligatorio) Specifica il gruppo API, la versione e il tipo di risorsa con ambito cluster.
-
labelSelector: (Facoltativo) Filtra le risorse con ambito cluster in base alle loro etichette.
-
-
-
Configurare le seguenti annotazioni, se necessario:
-
metadata.annotations.protect.trident.netapp.io/skip-vm-freeze: (Facoltativo) Questa annotazione è applicabile solo alle applicazioni definite da macchine virtuali, ad esempio in ambienti KubeVirt, in cui si verificano blocchi del file system prima degli snapshot. Specificare se l'applicazione può scrivere sul file system durante uno snapshot. Se impostato su true, l'applicazione ignora l'impostazione globale e può scrivere sul file system durante uno snapshot. Se impostato su false, l'applicazione ignora l'impostazione globale e il file system viene bloccato durante uno snapshot. Se specificato ma l'applicazione non ha macchine virtuali nella definizione dell'applicazione, l'annotazione viene ignorata. Se non specificato, l'applicazione segue "impostazione di congelamento del filesystem globale".
-
protect.trident.netapp.io/protection-command: (Facoltativo) Utilizzare questa annotazione per indicare a NetApp Backup and Recovery di proteggere o interrompere la protezione dell'applicazione. I valori possibili sono
protectounprotect. -
protect.trident.netapp.io/protection-policy-name: (Facoltativo) Utilizzare questa annotazione per specificare il nome della policy di protezione di NetApp Backup and Recovery che si desidera utilizzare per proteggere questa applicazione. Questa policy di protezione deve essere già presente in NetApp Backup and Recovery.
-
-
Se è necessario applicare questa annotazione dopo che un'applicazione è già stata creata, è possibile utilizzare il seguente comando:
kubectl annotate application -n <application CR namespace> <application CR name> protect.trident.netapp.io/skip-vm-freeze="true"
+
Esempio 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
-
(Facoltativo) Aggiungi il filtraggio che include o esclude le risorse contrassegnate con etichette particolari:
-
resourceFilter.resourceSelectionCriteria: (Obbligatorio per il filtraggio) Utilizzare
IncludeoExcludeper includere o escludere una risorsa definita in resourceMatchers. Aggiungere i seguenti parametri resourceMatchers per definire le risorse da includere o escludere:-
resourceFilter.resourceMatchers: Un array di resourceMatcher oggetti. Se si definiscono più elementi in questo array, la corrispondenza avviene tramite un'operazione OR, e i campi all'interno di ciascun elemento (group, kind, version) corrispondono tramite un'operazione AND.
-
resourceMatchers[].group: (Facoltativo) Gruppo della risorsa da filtrare.
-
resourceMatchers[].kind: (Facoltativo) Tipo di risorsa da filtrare.
-
resourceMatchers[].version: (Facoltativo) Versione della risorsa da filtrare.
-
resourceMatchers[].names: (Facoltativo) Nomi nel campo metadata.name di Kubernetes della risorsa da filtrare.
-
resourceMatchers[].namespaces: (Facoltativo) Namespace nel campo metadata.name di Kubernetes della risorsa da filtrare.
-
resourceMatchers[].labelSelectors: (Facoltativo) Stringa del selettore di etichetta nel campo metadata.name dei metadati Kubernetes della risorsa come definito in "Documentazione Kubernetes". Ad esempio:
"trident.netapp.io/os=linux".Quando sia resourceFilterchelabelSelectorvengono utilizzati,resourceFilterviene eseguito per primo e poilabelSelectorviene applicato alle risorse risultanti.
-
Ad esempio:
-
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"] -
-
Dopo aver creato la CR dell'applicazione adatta al tuo ambiente, applica la CR. Ad esempio:
kubectl apply -f my-app-name.yaml