Skip to main content
NetApp Backup and Recovery
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Agregar y proteger aplicaciones de Kubernetes

Colaboradores netapp-mwallis

NetApp Backup and Recovery le permite descubrir fácilmente sus clústeres de Kubernetes, sin generar ni cargar archivos kubeconfig. Puede conectar clústeres de Kubernetes e instalar el software necesario mediante comandos simples copiados de la interfaz de usuario de la NetApp Console .

Agregar y proteger una nueva aplicación de Kubernetes

El primer paso para proteger las aplicaciones de Kubernetes es crear una aplicación dentro de NetApp Backup and Recovery. Cuando creas una aplicación, haces que la consola sepa que la aplicación se está ejecutando en el clúster de Kubernetes.

Antes de empezar

Antes de poder agregar y proteger una aplicación de Kubernetes, debe"Descubra las cargas de trabajo de Kubernetes" .

Añade una aplicación usando la interfaz web
Pasos
  1. En NetApp Backup and Recovery, seleccione Inventario.

  2. Elija una instancia de Kubernetes y seleccione Ver para ver los recursos asociados con esa instancia.

  3. Seleccione la pestaña Aplicaciones.

  4. Seleccione Crear aplicación.

  5. Introduzca un nombre para la aplicación.

  6. Opcionalmente, elija cualquiera de los siguientes campos para buscar los recursos que desea proteger:

    • Clúster asociado

    • Espacios de nombres asociados

    • Tipos de recursos

    • Selectores de etiquetas

  7. Opcionalmente, seleccione Recursos con alcance de clúster para elegir cualquier recurso con alcance a nivel de clúster. Si los incluye, se añadirán a la aplicación al crearla.

  8. Opcionalmente, seleccione Buscar para encontrar los recursos según sus criterios de búsqueda.

    Nota La consola no almacena los parámetros ni los resultados de la búsqueda; los parámetros se utilizan para buscar en el clúster de Kubernetes seleccionado recursos que se puedan incluir en la aplicación.
  9. La consola muestra una lista de recursos que coinciden con sus criterios de búsqueda.

  10. Si la lista contiene los recursos que desea proteger, seleccione Siguiente.

  11. Opcionalmente, en el área Política, elija una política de protección existente para proteger la aplicación o cree una nueva. Si no selecciona ninguna, la aplicación se creará sin política de protección. Puede"añadir una política de protección" más tarde.

  12. En el área Prescripts y postscripts, habilite y configure cualquier gancho de ejecución de prescript o postscript que desee ejecutar antes o después de las operaciones de respaldo. Para habilitar prescriptos o posscriptos, debe haber creado previamente al menos uno"plantilla de gancho de ejecución" .

  13. Seleccione Crear.

Resultado

La aplicación se crea y aparece en la lista de aplicaciones en la pestaña Aplicaciones del inventario de Kubernetes. La NetApp Console permite proteger la aplicación según su configuración, y usted puede supervisar el progreso en el área Supervisión de respaldo y recuperación.

Agrega una aplicación usando un CR
Pasos
  1. Crea el archivo CR de la aplicación de destino:

    1. Crea el archivo de recurso personalizado (CR) y ponle un nombre (por ejemplo, my-app-name.yaml).

    2. Configura los siguientes atributos:

      • metadata.name: (Obligatorio) El nombre del recurso personalizado de la aplicación. Ten en cuenta el nombre que elijas porque otros archivos CR necesarios para las operaciones de protección hacen referencia a este valor.

      • spec.includedNamespaces: (Requerido) Usa el selector de espacio de nombres y de etiqueta para especificar los espacios de nombres y recursos que utiliza la aplicación. El espacio de nombres de la aplicación debe formar parte de esta lista. El selector de etiqueta es opcional y puedes usarlo para filtrar recursos dentro de cada espacio de nombres especificado.

      • spec.includedClusterScopedResources: (Opcional) Usa este atributo para especificar los recursos de ámbito clúster que se incluirán en la definición de la aplicación. Este atributo te permite seleccionar estos recursos según su grupo, versión, tipo y etiquetas.

        • groupVersionKind: (Obligatorio) especifica el grupo de API, la versión y el tipo del recurso con alcance de clúster.

        • labelSelector: (Opcional) Filtra los recursos con ámbito de clúster según sus etiquetas.

    3. Configura las siguientes anotaciones, si es necesario:

      • metadata.annotations.protect.trident.netapp.io/skip-vm-freeze: (Opcional) Esta anotación solo es aplicable a aplicaciones definidas a partir de máquinas virtuales, como en entornos KubeVirt, donde se producen congelaciones del sistema de archivos antes de las instantáneas. Especifica si esta aplicación puede escribir en el sistema de archivos durante una instantánea. Si se establece en true, la aplicación ignora la configuración global y puede escribir en el sistema de archivos durante una instantánea. Si se establece en false, la aplicación ignora la configuración global y el sistema de archivos se congela durante una instantánea. Si se especifica pero la aplicación no tiene máquinas virtuales en la definición de la aplicación, se ignora la anotación. Si no se especifica, la aplicación sigue la "configuración global de congelación del sistema de archivos".

      • protect.trident.netapp.io/protection-command: (Opcional) Usa esta anotación para indicar a Backup and Recovery que proteja o deje de proteger la aplicación. Los valores posibles son protect o unprotect.

      • protect.trident.netapp.io/protection-policy-name: (Opcional) Usa esta anotación para especificar el nombre de la política de protección de NetApp Backup and Recovery que quieres usar para proteger esta aplicación. Esta política de protección ya debe existir en NetApp Backup and Recovery.

Si necesitas aplicar esta anotación después de que ya se haya creado una aplicación, puedes usar el siguiente comando:

kubectl annotate application -n <application CR namespace> <application CR name> protect.trident.netapp.io/skip-vm-freeze="true"

+
Ejemplo de 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) agrega filtrado que incluya o excluya recursos marcados con etiquetas específicas:

    • resourceFilter.resourceSelectionCriteria: (Obligatorio para el filtrado) Usa Include o Exclude para incluir o excluir un recurso definido en resourceMatchers. Agrega los siguientes parámetros resourceMatchers para definir los recursos que se van a incluir o excluir:

      • resourceFilter.resourceMatchers: una matriz de objetos resourceMatcher. Si defines múltiples elementos en esta matriz, coinciden como una operación OR y los campos dentro de cada elemento (group, kind, version) coinciden como una operación AND.

        • resourceMatchers[].group: (Opcional) Grupo del recurso a filtrar.

        • resourceMatchers[].kind: (Opcional) Tipo del recurso a filtrar.

        • resourceMatchers[].version: (Opcional) Versión del recurso a filtrar.

        • resourceMatchers[].names: (Opcional) Nombres en el campo metadata.name de Kubernetes del recurso que se va a filtrar.

        • resourceMatchers[].namespaces: (Opcional) Espacios de nombres en el campo metadata.name de Kubernetes del recurso que se va a filtrar.

        • resourceMatchers[].labelSelectors: (opcional) Cadena de selector de etiqueta en el campo metadata.name de Kubernetes del recurso, como se define en "Documentación de Kubernetes". Por ejemplo: "trident.netapp.io/os=linux".

          Nota Cuando se utilizan tanto resourceFilter como labelSelector, resourceFilter se ejecuta primero y luego labelSelector se aplica a los recursos resultantes.

      Por ejemplo:

    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. Después de crear la CR de la aplicación para que coincida con tu entorno, aplica la CR. Por ejemplo:

    kubectl apply -f my-app-name.yaml