Copia de seguridad para GKE


Copia de seguridad para GKE es un servicio que se usa a fin de crear una copia de seguridad y restablecer las cargas de trabajo en clústeres de GKE. Tiene dos componentes:

  • Una API de Google Cloud que funciona como el plano de control del servicio.
  • Un complemento de GKE (el agente de Copia de seguridad para GKE) que debe estar habilitado en cada clúster en el que desees realizar operaciones de copia de seguridad y restablecimiento.

Las copias de seguridad de las cargas de trabajo pueden ser útiles para la recuperación ante desastres, las canalizaciones de CI/CD, las clonaciones de las cargas de trabajo o situaciones de actualización. Proteger las cargas de trabajo puede ayudarte a lograr los objetivos de punto de recuperación fundamentales para la empresa.

Introducción

Una vez habilitado, el servicio de copias de seguridad de GKE se integra en la IU de GKE, Google Cloud CLI y las API de REST, lo que proporciona flujos de trabajo coherentes para el desarrollo y las operaciones. Se capturan dos formas de datos en una copia de seguridad:

  • Copia de seguridad de configuración: Un conjunto de manifiestos de recursos de Kubernetes extraídos del servidor de la API del clúster que se somete a una copia de seguridad y que captura el estado del clúster.
  • Copias de seguridad de volúmenes: Un conjunto de copias de seguridad de volúmenes que corresponden a los recursos PersistentVolumeClaim que se encuentran en la copia de seguridad de la configuración.

Puedes elegir las cargas de trabajo de las que quieres crear una copia de seguridad o restablecer, o bien puedes realizar estas acciones en todas las cargas de trabajo. Puedes crear una copia de seguridad de las cargas de trabajo de un clúster y restablecerlas en otro. Puedes programar las copias de seguridad para que se ejecuten de forma automática, de modo que puedas responder con rapidez a fin de recuperar las cargas de trabajo en caso de que ocurra un incidente.

Para restablecer una carga de trabajo, se deben volver a crear los recursos de Kubernetes en el clúster de destino. Después de que se crean los recursos, el restablecimiento de la funcionalidad de la carga de trabajo está sujeto al proceso de conciliación del clúster (por ejemplo, los Pods se programan en nodos y, luego, los Pods se inician en esos nodos). Durante el restablecimiento, puedes aplicar reglas de sustitución, que se usan para hacer coincidir un conjunto de recursos y sustituir el valor actual de un atributo en esos recursos por un valor nuevo.

La combinación de la copia de seguridad y el restablecimiento selectivos con las sustituciones está diseñada para habilitar y admitir muchas situaciones de copia de seguridad y restablecimiento diferentes, por ejemplo:

  • Crear una copia de seguridad de todas las cargas de trabajo en un clúster y restablecerlas en un clúster separado para la recuperación ante desastres
  • Crear una copia de seguridad de todas las cargas de trabajo, pero revertir una sola carga de trabajo de forma selectiva en el clúster de origen
  • Crear una copia de seguridad de los recursos en un espacio de nombres y clonarlos en otro espacio de nombres
  • Migrar o clonar una carga de trabajo de un clúster a otro
  • Cambiar los parámetros de almacenamiento de una carga de trabajo (por ejemplo, transferir la carga de trabajo de un disco persistente zonal a un disco persistente regional)

Debes crear un clúster de destino con el servicio de copia de seguridad para GKE habilitado antes de poder crear una copia de seguridad de las cargas de trabajo o restablecerlas.

Arquitectura

La copia de seguridad para GKE consta de dos componentes principales:

  • Un servicio que se ejecuta en Google Cloud y admite una API de REST basada en recursos. Este servicio actúa como plano de control para la copia de seguridad de GKE. El servicio incluye elementos de la IU de la consola de Google Cloud que interactúan con esta API.
  • Un agente que se ejecuta en cada clúster en el que se realizan copias de seguridad o restablecimientos. El agente interactúa con la API de Backup for GKE para ejecutar operaciones de copia de seguridad y restablecimiento en estos clústeres.

En el siguiente diagrama, se muestra la relación entre los diferentes componentes de copia de seguridad para GKE:

Arquitectura de la copia de seguridad para GKE

Descripción general del servicio

El servicio de copia de seguridad para GKE proporciona un extremo de API con el que los clientes pueden interactuar. La API de Backup for GKE, como la mayoría de las API de Google Cloud, opera en recursos de nube específicos de la aplicación en una jerarquía de recursos. . La copia de seguridad para GKE administra una base de datos de estos recursos específicos de la aplicación y los métodos de la API del servicio corresponden, en su mayoría, a las operaciones de creación, lectura, actualización o eliminación de estos recursos.

Hay dos tipos de recursos activos principales en el modelo de recursos de la nube:

  • Backup: Representa la copia de seguridad de una parte específica de un clúster de GKE en un momento específico. La creación de un recurso Backup inicia el proceso de copia de seguridad (con el fin de almacenar copias de los recursos de Kubernetes de destino y crear instantáneas de los volúmenes de discos persistentes de destino). Si se borra un Backup, se borran estos artefactos almacenados.
  • Restore: Representa el restablecimiento de una parte seleccionada de un Backup específico en un clúster de GKE. Crear un recurso Restore inicia el proceso de restablecimiento. Borrar un Restore no tiene efectos secundarios y solo quita el registro del restablecimiento de la base de datos.

La copia de seguridad para GKE también incluye dos tipos de recursos de control y configuración:

  • BackupPlan: Un recurso superior de los recursos Backup que representan una cadena de copias de seguridad. Este recurso contiene una configuración de copia de seguridad que incluye el clúster de origen, la selección de las cargas de trabajo de las que se creará una copia de seguridad y la región en la que se almacenan los artefactos Backup producidos en este plan.
  • RestorePlan: Proporciona una plantilla de restablecimiento reutilizable. Este recurso contiene una configuración de restablecimiento que incluye el clúster de destino en el que deseas restablecer la copia de seguridad, el plan de copia de seguridad de origen, el alcance del restablecimiento, el control de conflictos y las reglas de sustitución.

Descripción general del agente

El agente de copia de seguridad para GKE se implementa y se ejecuta en cada clúster de GKE que configuras para que el servicio de copia de seguridad de GKE cree una copia de seguridad de ellos. El agente es responsable de ejecutar las actividades de copia de seguridad y restablecimiento, por ejemplo:

  • Copia de seguridad:

    • Organizar el proceso de copia de seguridad
    • Recuperar recursos del servidor de la API de Kubernetes, serializarlos en un archivo y almacenarlos en él
    • Crear copias de seguridad de volúmenes subyacentes asociados con PersistentVolumeClaims
  • Restablecimiento:

    • Organizar el proceso de restablecimiento
    • Recuperar el archivo de recursos de Kubernetes desde el almacenamiento, extraer los recursos seleccionados, aplicar las modificaciones adecuadas a estos recursos y crearlos en el clúster de destino
    • Crear volúmenes y conectarlos a la configuración de Kubernetes del clúster de destino

Los administradores no interactúan con el agente, ya que el agente es controlado por recursos personalizados de Kubernetes (BackupJob y RestoreJob) que crea de forma automática en el clúster el servicio de copia de seguridad para GKE en respuesta a la creación de copias de seguridad y el restablecimiento de recursos en la nube. Sin embargo, los administradores pueden influir en la organización de las copias de seguridad mediante la creación de recursos ProtectedApplication de Kubernetes opcionales en el clúster. Estos recursos ProtectedApplication son exclusivos de la copia de seguridad de GKE y proporcionan opciones más detalladas para definir el alcance de la copia de seguridad y el restablecimiento.

Consulta Baja de la vista previa del agente para obtener información sobre las diferencias entre las versiones preliminares y de disponibilidad general del agente.

Contenido del que no se crea una copia de seguridad

Solo puedes crear una copia de seguridad de los recursos de Kubernetes y los volúmenes persistentes subyacentes con la copia de seguridad para GKE. La copia de seguridad para GKE no realiza una copia de seguridad del siguiente contenido:

  • Información de configuración del clúster de GKE, como la configuración de los nodos, los grupos de nodos, el tamaño inicial del clúster o las funciones habilitadas
  • Imágenes de contenedor a las que hace referencia una copia de seguridad. Solo se crea una copia de seguridad de los recursos de Kubernetes que describen la carga de trabajo y hacen referencia a las imágenes de contenedor. Si se quita de su repositorio de imágenes una imagen a la que se hace referencia en un manifiesto de carga de trabajo, un restablecimiento posterior de esa configuración no restablecerá correctamente la carga de trabajo.
  • Información de configuración o estado de los servicios fuera del clúster, como Cloud SQL o balanceadores de cargas externos

¿Qué sigue?