{"id":8123,"date":"2020-01-31T00:54:44","date_gmt":"2020-01-31T08:54:44","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8123"},"modified":"2025-06-13T17:14:27","modified_gmt":"2025-06-14T00:14:27","slug":"backup-restore-of-couchbase-cluster-in-a-kubernetes-environment","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","title":{"rendered":"Copia de seguridad \/ restauraci\u00f3n de Couchbase en el entorno K8s"},"content":{"rendered":"<h2 class=\"wp-block-heading\">1. Introducci\u00f3n<\/h2>\r\n\r\n\r\n\r\n<p>La copia de seguridad peri\u00f3dica de los datos es una parte importante de cualquier despliegue de bases de datos de producci\u00f3n, que ayuda a garantizar la recuperaci\u00f3n de los datos en caso de desastre y tambi\u00e9n minimiza la inconsistencia de los datos cuando se requiere una restauraci\u00f3n.<\/p>\r\n\r\n\r\n\r\n<p>Couchbase proporciona <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr.html\">cbbackupmgr<\/a> que se ha mejorado a lo largo de los a\u00f1os hasta convertirse en una herramienta de copia de seguridad y restauraci\u00f3n de nivel empresarial para realizar copias de seguridad de grandes conjuntos de datos con un rendimiento mucho mayor, por lo que recomendamos utilizar esta herramienta en la producci\u00f3n. Cabe mencionar que en <a href=\"https:\/\/www.couchbase.com\/blog\/es\/enhanced-data-protection-with-couchbase-6-5\/\">Servidor Couchbase 6.5<\/a> hemos revisado por completo el motor de copia de seguridad y almacenamiento, y hemos introducido una mayor relaci\u00f3n de compresi\u00f3n, lo que ha mejorado mucho el rendimiento de la copia de seguridad y la restauraci\u00f3n y ha reducido los requisitos de almacenamiento de cada instant\u00e1nea de copia de seguridad, con el consiguiente ahorro de costes.<\/p>\r\n\r\n\r\n<hr class=\"wp-block-separator\" \/>\r\n\r\n\r\n<h2 class=\"wp-block-heading\">2. 2. Buenas pr\u00e1cticas<\/h2>\r\n\r\n\r\n\r\n<p>Aunque <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr.html\">cbbackupmgr<\/a> existe en Couchbase_HOME, es <strong>no<\/strong> Se recomienda ejecutar esta utilidad desde cualquiera de los nodos activos del cluster. Ya que estar\u00eda compitiendo por los recursos de las peticiones activas y podr\u00eda potencialmente obstaculizar el rendimiento de su sistema de base de datos.<\/p>\r\n\r\n\r\n\r\n<p>Es, por tanto, una buena pr\u00e1ctica proporcionar una instancia separada (para las necesidades de copia de seguridad y restauraci\u00f3n) con s\u00f3lo los binarios de Couchbase instalados pero sin los servicios de Couchbase ejecut\u00e1ndose, para que los recursos puedan ser mejor gestionados tanto para el cluster de base de datos como para el nodo de copia de seguridad.<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1512\" height=\"681\" class=\"wp-image-8124\" src=\"https:\/\/i0.wp.com\/blog.couchbase.com\/wp-content\/uploads\/2020\/01\/backup-setup.png?fit=900%2C405&amp;ssl=1\" alt=\"Backup Manager\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png 1512w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-300x135.png 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-1024x461.png 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-768x346.png 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-20x9.png 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup-1320x595.png 1320w\" sizes=\"auto, (max-width: 1512px) 100vw, 1512px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>Como se puede ver en la figura anterior, se aprovisiona un nodo de copia de seguridad\/restauraci\u00f3n separado adem\u00e1s de un cl\u00faster Couchbase de cinco nodos. Otra buena pr\u00e1ctica es asignar suficiente espacio de almacenamiento para almacenar al menos 5 veces el tama\u00f1o del conjunto de datos de Couchbase. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Recovery_point_objective\">Objetivo del Punto de Recuperaci\u00f3n<\/a> (OPR) de la empresa.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">3. Estrategia de copia de seguridad<\/h2>\r\n\r\n\r\n\r\n<p><a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr.html\">cbbackupmgr<\/a> ofrece un conjunto de comandos que permite a los administradores de bases de datos aplicar la estrategia de copia de seguridad que mejor se adapte a sus necesidades. Estos son algunos de los comandos:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li><strong>cbbackupmgr copia de seguridad<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-backup.html\">Copia de seguridad de los datos de un cl\u00faster Couchbase<\/a>.<\/li>\r\n<li><strong>cbbackupmgr compacto<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-compact.html\">Compacta una copia de seguridad<\/a><\/li>\r\n<li><strong>cbbackupmgr fusionar<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-merge.html\">Fusiona las copias de seguridad<\/a><\/li>\r\n<li><strong>cbbackupmgr config<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-config.html\">Crea un nuevo repositorio de copias de seguridad<\/a><\/li>\r\n<li><strong>cbbackupmgr list<\/strong> &#8211; <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-info.html\">Lista las copias de seguridad del archivo<\/a><\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Con estos comandos se puede aplicar cualquiera de las tres estrategias de copia de seguridad mencionadas en el <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-strategies.html\">documentaci\u00f3n<\/a>. En el siguiente ejemplo, describiremos <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-strategies.html#periodic-merge\">Fusi\u00f3n peri\u00f3dica<\/a> en el contexto de Couchbase Cluster ejecut\u00e1ndose en un entorno Kubernetes.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">4. Fusi\u00f3n peri\u00f3dica<\/h3>\r\n\r\n\r\n\r\n<p>Esta estrategia de copia de seguridad pretende tener la menor sobrecarga de la base de datos, ya que requiere la menor cantidad de tiempo para realizar la copia de seguridad de los cambios y pr\u00e1cticamente ning\u00fan consumo de recursos del cl\u00faster de la base de datos para consolidar los datos durante el proceso de compactaci\u00f3n y fusi\u00f3n (como ocurre en el nodo de copia de seguridad).<\/p>\r\n\r\n\r\n\r\n<p>A grandes rasgos, as\u00ed es como <em>Fusi\u00f3n peri\u00f3dica<\/em> estrategia funciona:<\/p>\r\n\r\n\r\n\r\n<ol class=\"wp-block-list\">\r\n<li>Configurar el repositorio de copias de seguridad mediante <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-config.html\">cbbackupmgr config<\/a><\/li>\r\n<li>Realice una copia de seguridad incremental de la base de datos (en el repositorio) utilizando <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-backup.html\">cbbackupmgr copia de seguridad<\/a><\/li>\r\n<li>Realizar la compactaci\u00f3n de la copia de seguridad utilizando <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-compact.html\">cbbackupmgr compacto<\/a> para que el espacio en disco pueda utilizarse de forma eficiente.<\/li>\r\n<li>Fusionar las copias de seguridad m\u00e1s antiguas con <a href=\"https:\/\/docs.couchbase.com\/server\/current\/backup-restore\/cbbackupmgr-merge.html\">cbbackupmgr fusionar<\/a> para que el n\u00famero de copias de seguridad en el repositorio no crezca infinitamente y las necesidades de espacio se mantengan bajo control.<\/li>\r\n<\/ol>\r\n\r\n\r\n\r\n<p>Nota: Los pasos anteriores se recogen en el <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/sh\/backup-with-periodic-merge.sh\">backup-with-periodic-merge.sh<\/a> que luego utilizaremos en nuestra configuraci\u00f3n de Kubernetes para realizar copias de seguridad peri\u00f3dicas.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">5. Copia de seguridad de los datos de Couchbase<\/h2>\r\n\r\n\r\n\r\n<p>En mi \u00faltimo blog sobre Couchbase Autonomous Operator, he descrito paso a paso en <a href=\"https:\/\/www.couchbase.com\/blog\/es\/deploy-self-healing-highly-available-couchbase-cluster-on-kubernetes-using-persistent-volumes\/\">c\u00f3mo desplegar un cl\u00faster Couchbase autorreparable y de alta disponibilidad mediante Persistent Volumes<\/a>. Suponiendo que haya seguido estos pasos y ya haya desplegado el cl\u00faster, los pasos siguientes describir\u00e1n c\u00f3mo puede configurar la capacidad de copia de seguridad autom\u00e1tica utilizando <code>cronjob<\/code>. Se considera una buena pr\u00e1ctica hacer copias de seguridad de los datos con regularidad, as\u00ed como probar la restauraci\u00f3n de las copias de seguridad para confirmar el proceso de restauraci\u00f3n antes de que sea realmente necesaria la recuperaci\u00f3n en caso de desastre.<\/p>\r\n\r\n\r\n\r\n<p>Esta funcionalidad no la proporciona el Operador y se deja en manos del administrador del cl\u00faster para que defina las pol\u00edticas de copia de seguridad y pruebe la restauraci\u00f3n de los datos. Esta secci\u00f3n describe algunos patrones comunes que pueden emplearse para realizar las funciones requeridas.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.1. Crear clase de almacenamiento<\/h3>\r\n\r\n\r\n\r\n<p>Las definiciones de recursos de Kubernetes que se muestran a continuaci\u00f3n ilustran una disposici\u00f3n t\u00edpica para la copia de seguridad que guarda el estado de todo el cl\u00faster. Primero tendr\u00edamos que definir el recurso <code>StorageClass<\/code> que formatearemos utilizando <code>xfs<\/code> para un rendimiento \u00f3ptimo.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># Crear clase de almacenamiento para operaciones de copia de seguridad\/restauraci\u00f3n\r\napiVersion: storage.k8s.io\/v1\r\ntipo: StorageClass\r\nmetadatos:\r\n  labels:\r\n    k8s-addon: storage-aws.addons.k8s.io\r\n  nombre: gp2-backup-storage\r\npar\u00e1metros:\r\n  tipo: gp2\r\n  fsTipo: xfs\r\nprovisioner: kubernetes.io\/aws-ebs\r\nreclaimPolicy: Retener\r\nvolumeBindingMode: WaitForFirstConsumer<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Utilizando la definici\u00f3n anterior en <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/backup-sc.yaml\">backup-sc.yaml<\/a> podemos crear una clase de almacenamiento como \u00e9sta:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl create -f backup-sc.yaml -n emart<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.2. Crear Volumen Persistente<\/h3>\r\n\r\n\r\n\r\n<p>Un volumen persistente se reclama para mantener los datos a salvo en caso de interrupci\u00f3n. Deber\u00e1 planificar el tama\u00f1o de la reclamaci\u00f3n en funci\u00f3n del tama\u00f1o previsto del conjunto de datos, el n\u00famero de d\u00edas de conservaci\u00f3n de los datos y si se utilizan copias de seguridad incrementales.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># Definir volumen de almacenamiento de copia de seguridad\r\ntipo: PersistentVolumeClaim\r\napiVersion: v1\r\nmetadatos:\r\n  name: backup-pvc\r\nspec:\r\n  storageClassName: gp2-backup-storage\r\n  recursos:\r\n    peticiones:\r\n      almacenamiento: 50Gi\r\n  modos de acceso:\r\n    - LecturaEscrituraUnaVez<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Guardar la definici\u00f3n anterior en <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/backup-pvc.yaml\">backup-pvc.yaml<\/a> y crear la reclamaci\u00f3n:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl create -f backup-pvc.yaml -n emart<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.3. Configurar el repositorio de copias de seguridad<\/h3>\r\n\r\n\r\n\r\n<p>Antes de que podamos empezar a tomar instant\u00e1neas de nuestros datos peri\u00f3dicamente, necesitamos configurar la ubicaci\u00f3n del archivo de copia de seguridad. Se crea un trabajo para montar el volumen persistente e inicializar un repositorio de copias de seguridad. El repositorio se llama <code>couchbase<\/code> que se asignar\u00e1 al nombre del cl\u00faster en especificaciones posteriores.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># Create a backup repository\r\nkind: Job\r\napiVersion: batch\/v1\r\nmetadata:\r\n  name: couchbase-cluster-backup-config\r\nspec:\r\n  template:\r\n    spec:\r\n      containers:\r\n        - name: backup-config\r\n          image: couchbase\/server:enterprise-6.5.0\r\n          command: [\"cbbackupmgr\", \"config\", \"--archive\", \"\/backups\", \"--repo\", \"couchbase\"]\r\n          volumeMounts:\r\n            - name: \"couchbase-cluster-backup-volume\"\r\n              mountPath: \"\/backups\"\r\n      volumes:\r\n        - name: couchbase-cluster-backup-volume\r\n          persistentVolumeClaim:\r\n            claimName: backup-pvc\r\n      restartPolicy: Never<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Guardar la definici\u00f3n anterior en <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/config.yaml\">config.yaml<\/a> y crear un repositorio de copias de seguridad:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl create -f config.yaml -n emart<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.3. Ejecutar copia de seguridad como CronJob<\/h3>\r\n\r\n\r\n\r\n<p>Cree un cronjob como se describe en la secci\u00f3n <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/periodic-backup.yaml\">periodic-backup.yaml<\/a> que realiza una copia de seguridad del cl\u00faster Couchbase a) descargando el script de copia de seguridad en el pod b) ejecutando el script y realizando una copia de seguridad de los datos del cl\u00faster utilizando el volumen de almacenamiento persistente.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>kind: CronJob\r\napiVersion: batch\/v1beta1\r\nmetadata:\r\n  name: couchbase-cluster-backup-create\r\nspec:\r\n  schedule: \"*\/5 * * * *\"\r\n  jobTemplate:\r\n    spec:\r\n      template:\r\n        spec:\r\n          containers:\r\n            #Delete backup-with-periodic-merge script so that new one can be pulled with each run\r\n            - name: delete-script\r\n              image: couchbase\/server:enterprise-6.5.0\r\n              command: [\"rm\", \"\/backups\/backup-with-periodic-merge.sh\"]\r\n              volumeMounts:\r\n                - name: \"couchbase-cluster-backup-volume\"\r\n                  mountPath: \"\/backups\"\r\n          initContainers:\r\n            #Download the backup script from the git repo\r\n            - name: wget-backup-script\r\n              image: couchbase\/server:enterprise-6.5.0\r\n              command: [\"wget\", \"https:\/\/raw.githubusercontent.com\/couchbaselabs\/cboperator-hol\/master\/eks\/cb-operator-guide\/files\/sh\/backup-with-periodic-merge.sh\", \"-P\", \"\/backups\/.\"]\r\n              volumeMounts:\r\n                - name: \"couchbase-cluster-backup-volume\"\r\n                  mountPath: \"\/backups\"\r\n            #Change the mod of the backup script to execution\r\n            - name: chmod-script\r\n              image: couchbase\/server:enterprise-6.5.0\r\n              command: [\"chmod\", \"700\", \"\/backups\/backup-with-periodic-merge.sh\"]\r\n              volumeMounts:\r\n                - name: \"couchbase-cluster-backup-volume\"\r\n                  mountPath: \"\/backups\"\r\n            #Run the script so it can do a) Backup b) Compaction c) Merge with each snapshot\r\n            - name: periodic-merge\r\n              image: couchbase\/server:enterprise-6.5.0\r\n              command: [\"sh\", \"-c\" ,\"\/backups\/backup-with-periodic-merge.sh --cluster cbdemo-srv.emart.svc\"]\r\n              volumeMounts:\r\n                - name: \"couchbase-cluster-backup-volume\"\r\n                  mountPath: \"\/backups\"\r\n          volumes:\r\n            - name: couchbase-cluster-backup-volume\r\n              persistentVolumeClaim:\r\n                claimName: backup-pvc\r\n          restartPolicy: Never<\/code><\/pre>\r\n\r\n\r\n\r\n<p>En el YAML anterior estamos ejecutando la copia de seguridad cada 5 minutos, pero puede cambiar la frecuencia para que pueda cumplir con su RPO de negocio. Como nuestro cluster Couchbase est\u00e1 desplegado dentro del espacio de nombres <code>emart<\/code> as\u00ed que desplegaremos el cronjob de copia de seguridad bajo el mismo espacio de nombres:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl apply -f periodic-backup.yaml -n emart\r\n\r\ncronjob.batch\/couchbase-cluster-backup-create creado<\/code><\/pre>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\">5.4 Validar trabajo de copia de seguridad peri\u00f3dica<\/h3>\r\n\r\n\r\n\r\n<p>En este punto, puedes empezar a ver como el cronjob se activa cada 5 minutos. Y una vez que se activa se ejecutar\u00e1 tres <code>initContainers<\/code> (wget-backup-script, chmod-script, periodic-merge) en orden secuencial seguidos de los comandos <code>cointainers<\/code> (borrar-gui\u00f3n):<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl get pods -n emart -w\r\n\r\nNAME READY STATUS RESTARTS AGE\r\nbackup-node 1\/1 En ejecuci\u00f3n 0 1d\r\ncbdemo-0000 1\/1 En ejecuci\u00f3n 0 5d\r\ncbdemo-0001 1\/1 En ejecuci\u00f3n 0 5d\r\ncbdemo-0002 1\/1 En ejecuci\u00f3n 0 5d\r\ncbdemo-0003 1\/1 En ejecuci\u00f3n 0 5d\r\ncbdemo-0004 1\/1 En ejecuci\u00f3n 0 5d\r\ncouchbase-operator-7654d844cb-gn4bw 1\/1 En ejecuci\u00f3n 0 5d\r\ncouchbase-operator-admission-7ff868f54c-5pklx 1\/1 En ejecuci\u00f3n 0 5d\r\n\r\ncouchbase-cluster-backup-create-1580357820-tz2hg 0\/1 Pendiente 0 2s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg 0\/1 Pendiente 0 2s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg 0\/1 Init:0\/3 0 2s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg 0\/1 Init:1\/3 0 3s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg 0\/1 Init:2\/3 0 4s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg 0\/1 Init:2\/3 0 6s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg 0\/1 PodInitializing 0 27s\r\ncouchbase-cluster-backup-create-1580357820-tz2hg 0\/1 Finalizado 0 30s<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Puede ver los registros de cada <code>initContainers<\/code> despu\u00e9s de que el pod muestre el estado <strong>Completado<\/strong>. En <code>initContainers<\/code> que nos interesa se llama <code>fusi\u00f3n peri\u00f3dica<\/code>:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl logs couchbase-cluster-backup-create-1580357820-tz2hg -n emart -c periodic-merge\r\n\r\n\r\n---------------------------------------------------------\r\nBEGIN STEP 1: BACKUP : Thu Jan 30 04:17:12 UTC 2020\r\nRunning backup...\r\n Command:  cbbackupmgr backup  --archive \/backups --repo couchbase --cluster couchbase:\/\/cbdemo-srv.emart.svc --username Administrator --password password --threads 2\r\nWarning: Progress bar disabled because terminal width is less than 80 characters\r\nBackup successfully completed\r\nBacked up bucket \"gamesim-sample\" succeeded\r\nMutations backedup; 586, Mutations failed to backup: 0\r\nDeletions backedup: 0, Deletions failed to backup: 0\r\nBacked up bucket \"travel-sample\" succeeded\r\nMutations backedup; 0, Mutations failed to backup: 0\r\nDeletions backedup: 0, Deletions failed to backup: 0\r\n---------------------------------------------------------\r\nBEGIN STEP 2: COMPACTION : Thu Jan 30 04:17:20 UTC 2020\r\nList of backup snapshots ...\r\n\r\n2020-01-28T23_01_37.592188562Z\r\n2020-01-28T23_03_34.160387835Z\r\n2020-01-28T23_05_08.103740281Z\r\n2020-01-30T04_17_12.702824188Z\r\nLast backup name is: 2020-01-30T04_17_12.702824188Z\r\nCompacting the backup...\r\n Command: cbbackupmgr compact --archive \/backups --repo couchbase --backup 2020-01-30T04_17_12.702824188Z\r\nCompaction succeeded, 0 bytes freed\r\n---------------------------------------------------------\r\nBEGIN STEP 3: Merging old backup : Thu Jan 30 04:17:24 UTC 2020\r\n\r\n Size      Items          Name\r\n 604.93MB  -              + couchbase\r\n 192.00MB  -                  + 2020-01-28T23_01_37.592188562Z\r\n 192.00MB  -                      + beer-sample\r\n 37B       0                          analytics.json\r\n 414B      0                          bucket-config.json\r\n 192.00MB  7303                       + data\r\n 192.00MB  7303                           1024 Shards\r\n 2B        0                          full-text.json\r\n 1.94KB    1                          gsi.json\r\n 784B      1                          views.json\r\n 192.02MB  -                  + 2020-01-28T23_03_34.160387835Z\r\n 192.02MB  -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 192.00MB  31591                      + data\r\n 192.00MB  31591                          1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\n 64.02MB   -                  + 2020-01-28T23_05_08.103740281Z\r\n 64.02MB   -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 64.00MB   0                          + data\r\n 64.00MB   0                              1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\n 156.89MB  -                  + 2020-01-30T04_17_12.702824188Z\r\n 92.88MB   -                      + gamesim-sample\r\n 0B        0                          analytics.json\r\n 417B      0                          bucket-config.json\r\n 92.88MB   586                        + data\r\n 92.88MB   586                            1024 Shards\r\n 2B        0                          full-text.json\r\n 1.95KB    1                          gsi.json\r\n 501B      1                          views.json\r\n 64.02MB   -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 64.00MB   0                          + data\r\n 64.00MB   0                              1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\nStart 2020-01-28T23_01_37.592188562Z, END 2020-01-28T23_03_34.160387835Z\r\nMerging old backups...\r\n Command: cbbackupmgr merge --archive \/backups --repo couchbase --start 2020-01-28T23_01_37.592188562Z --end 2020-01-28T23_03_34.160387835Z\r\n\r\nMerge completed successfully\r\n\r\nSize      Items          Name\r\n 412.92MB  -              + couchbase\r\n 192.02MB  -                  + 2020-01-28T23_03_34.160387835Z\r\n 192.02MB  -                      + travel-sample\r\n 37B       0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 192.00MB  31591                      + data\r\n 192.00MB  31591                          1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\n 64.02MB   -                  + 2020-01-28T23_05_08.103740281Z\r\n 64.02MB   -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 64.00MB   0                          + data\r\n 64.00MB   0                              1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json\r\n 156.89MB  -                  + 2020-01-30T04_17_12.702824188Z\r\n 92.88MB   -                      + gamesim-sample\r\n 0B        0                          analytics.json\r\n 417B      0                          bucket-config.json\r\n 92.88MB   586                        + data\r\n 92.88MB   586                            1024 Shards\r\n 2B        0                          full-text.json\r\n 1.95KB    1                          gsi.json\r\n 501B      1                          views.json\r\n 64.02MB   -                      + travel-sample\r\n 0B        0                          analytics.json\r\n 416B      0                          bucket-config.json\r\n 64.00MB   0                          + data\r\n 64.00MB   0                              1024 Shards\r\n 2B        0                          full-text.json\r\n 15.57KB   10                         gsi.json\r\n 2B        0                          views.json<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Nota: Como puede verse en los registros anteriores, antes del paso de fusi\u00f3n hab\u00eda cuatro copias de seguridad disponibles y despu\u00e9s de la fusi\u00f3n hay tres instant\u00e1neas de copia de seguridad que se denominan <code>RESTOREPOINTS<\/code> en <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/sh\/backup-with-periodic-merge.sh\">backup-with-periodic-merge.sh<\/a> gui\u00f3n.<\/p>\r\n\r\n\r\n\r\n<p>Con esto concluye la secci\u00f3n de copias de seguridad.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">6. Restauraci\u00f3n de<\/h2>\r\n\r\n\r\n\r\n<p>Al igual que una copia de seguridad, podemos restaurar los datos a un nuevo cl\u00faster Couchbase con un trabajo de Kubernetes.<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>kind: Job\r\napiVersion: batch\/v1\r\nmetadata:\r\n  name: couchbase-cluster-restore\r\nspec:\r\n  template:\r\n    spec:\r\n      containers:\r\n        - name: couchbase-cluster-restore\r\n          image: couchbase\/server:enterprise-6.0.2\r\n          command: [\"cbbackupmgr\", \"restore\", \"--archive\", \"\/backups\", \"--repo\", \"couchbase\", \"--cluster\", \"couchbase:\/\/cbdemo-srv.emart.svc\", \"--username\", \"Administrator\", \"--password\", \"password\"]\r\n          volumeMounts:\r\n            - name: \"couchbase-cluster-backup-volume\"\r\n              mountPath: \"\/backups\"\r\n      volumes:\r\n        - name: couchbase-cluster-backup-volume\r\n          persistentVolumeClaim:\r\n            claimName: backup-pvc\r\n      restartPolicy: Never<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Si prefiere crear un pod temporal de copia de seguridad-restauraci\u00f3n para ver qu\u00e9 copias de seguridad est\u00e1n disponibles o para solucionar un problema, puede montar el mismo <code>persistentVolumeClaim<\/code> a un nuevo pod. Esta es la definici\u00f3n del pod que se puede almacenar en <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/backup-pod.yaml\">backup-pod.yaml<\/a>:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>apiVersion: v1\r\nkind: Pod\r\nmetadata:\r\n  name: backup-node\r\nspec:  # specification of the pod's contents\r\n  containers:\r\n    - name: backup-pod\r\n      image: couchbase\/server:enterprise-6.5.0\r\n      # Just spin &amp; wait forever\r\n      command: [ \"\/bin\/bash\", \"-c\", \"--\" ]\r\n      args: [ \"while true; do sleep 30; done;\" ]\r\n      volumeMounts:\r\n        - name: \"couchbase-cluster-backup-volume\"\r\n          mountPath: \"\/backups\"\r\n  volumes:\r\n    - name: couchbase-cluster-backup-volume\r\n      persistentVolumeClaim:\r\n        claimName: backup-pvc\r\n  restartPolicy: Never<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Ejecute kubectl para abrir el pod temporalmente:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl apply -f br\/backup-pod.yaml -n emart\r\n$ kubectl get pods -n emart\r\n\r\nNAME READY STATUS RESTARTS AGE\r\nbackup-node 1\/1 En ejecuci\u00f3n 0 3d1h\r\ncbdemo-0000 1\/1 En ejecuci\u00f3n 0 7d1h\r\ncbdemo-0001 1\/1 En ejecuci\u00f3n 0 7d1h\r\ncbdemo-0002 1\/1 En ejecuci\u00f3n 0 7d1h\r\ncbdemo-0003 1\/1 En ejecuci\u00f3n 0 7d1h\r\ncbdemo-0004 1\/1 En ejecuci\u00f3n 0 7d1h\r\ncouchbase-operator-7654d844cb-gn4bw 1\/1 En ejecuci\u00f3n 0 7d2h\r\ncouchbase-operator-admission-7ff868f54c-5pklx 1\/1 En ejecuci\u00f3n 0 7d2h<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Una vez que el nodo de respaldo est\u00e1 en ejecuci\u00f3n, podemos iniciar sesi\u00f3n en ese pod:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl exec -it backup-node -n emart -- \/bin\/bash\r\n\r\nroot@nodo-de-respaldo:\/<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Y ejecutar <code>cbbackupmgr list<\/code> para ver las copias de seguridad existentes:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># cbbackupmgr list --repo couchbase --archive \/backups\r\n\r\nTama\u00f1o Elementos Nombre\r\n256.04MB - + couchbase\r\n0B - + 2020-01-30T04_17_12.702824188Z\r\n0B - + gamesim-sample\r\n0B 0 analytics.json\r\n0B 0 + datos\r\n0B 0 Error: no se han encontrado fragmentos de datos\r\n0B 0 full-text.json\r\n0B 0 gsi.json\r\n0B 0 views.json\r\n128.02MB - + 2020-01-30T04_18_13.021340423Z\r\n....<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Y tambi\u00e9n puede ejecutar <code>cbbackupmgr restaurar<\/code> manualmente:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code># cbbackupmgr restore --archive \/backups --repo couchbase --cluster couchbase:\/\/cbdemo-srv.emart.svc --username Administrator --password password<\/code><\/pre>\r\n\r\n\r\n\r\n<p>Una vez que haya terminado de restaurar s\u00f3lo tiene que eliminar el pod:<\/p>\r\n\r\n\r\n\r\n<pre class=\"wp-block-code\"><code>$ kubectl delete -f backup-pod.yaml -n emart<\/code><\/pre>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\">7. Conclusi\u00f3n<\/h2>\r\n\r\n\r\n\r\n<p>Examinamos paso a paso c\u00f3mo se puede configurar un cronjob de copia de seguridad, que automatiza el proceso de tomar la copia de seguridad peri\u00f3dica en un intervalo predefinido. Utilizamos un <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/sh\/backup-with-periodic-merge.sh\">backup-with-periodic-merge.sh<\/a> que ejecuta a) la copia de seguridad, b) la compactaci\u00f3n y c) la fusi\u00f3n en un \u00fanico script. Este script se utiliz\u00f3 en el <a href=\"https:\/\/github.com\/couchbaselabs\/cboperator-hol\/blob\/master\/eks\/cb-operator-guide\/files\/br\/periodic-backup.yaml\">periodic-backup.yaml<\/a> que automatiz\u00f3 el proceso de creaci\u00f3n de copias de seguridad en el entorno Kubernetes. Esperamos que utilice las mejores pr\u00e1cticas descritas en este blog y planifique la realizaci\u00f3n de copias de seguridad peri\u00f3dicas, as\u00ed como la validaci\u00f3n de dichas copias mediante el comando de restauraci\u00f3n con regularidad.<\/p>","protected":false},"excerpt":{"rendered":"<p>1. Introduction Periodic backup of data is an important part of any production database deployment, which helps ensure data recovery in the event of a disaster and it also minimizes data inconsistency when a restore is required. Couchbase provides cbbackupmgr [&hellip;]<\/p>","protected":false},"author":33279,"featured_media":8124,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[9416,1821,2225,1816,2322],"tags":[10124,1933,1245,2341,2339,2354,1545,2138],"ppma_author":[9090],"class_list":["post-8123","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-backup","category-couchbase-architecture","category-cloud","category-couchbase-server","category-kubernetes","tag-amazon-web-services-aws","tag-backup","tag-cloud","tag-cncf","tag-eks","tag-k8","tag-kubernetes","tag-kubernetes-operator"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.0 (Yoast SEO v26.0) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Couchbase Backup: Restore in K8s (Kubernetes) Environment<\/title>\n<meta name=\"description\" content=\"Couchbase\u2019s high-performance backup tool for large datasets will help you ensure data safety with improved compression for cost-effective storage.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Couchbase Backup \/ Restore in K8s Environment\" \/>\n<meta property=\"og:description\" content=\"Couchbase\u2019s high-performance backup tool for large datasets will help you ensure data safety with improved compression for cost-effective storage.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-31T08:54:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T00:14:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1512\" \/>\n\t<meta property=\"og:image:height\" content=\"681\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\"},\"author\":{\"name\":\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/21c735da109667147c580bb2cb351c1c\"},\"headline\":\"Couchbase Backup \/ Restore in K8s Environment\",\"datePublished\":\"2020-01-31T08:54:44+00:00\",\"dateModified\":\"2025-06-14T00:14:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\"},\"wordCount\":1185,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\",\"keywords\":[\"Amazon Web Services (AWS)\",\"backup\",\"cloud\",\"CNCF\",\"EKS\",\"K8\",\"kubernetes\",\"kubernetes operator\"],\"articleSection\":[\"Backup\",\"Couchbase Architecture\",\"Couchbase Capella\",\"Couchbase Server\",\"Kubernetes\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\",\"name\":\"Couchbase Backup: Restore in K8s (Kubernetes) Environment\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\",\"datePublished\":\"2020-01-31T08:54:44+00:00\",\"dateModified\":\"2025-06-14T00:14:27+00:00\",\"description\":\"Couchbase\u2019s high-performance backup tool for large datasets will help you ensure data safety with improved compression for cost-effective storage.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png\",\"width\":1512,\"height\":681},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Couchbase Backup \/ Restore in K8s Environment\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/21c735da109667147c580bb2cb351c1c\",\"name\":\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5e9708314822fac560c43a5fbdc9b74f\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g\",\"caption\":\"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase\"},\"description\":\"Anuj Sahni is a seasoned cloud and solutions architecture leader with over two decades of experience designing scalable, high-performance enterprise applications across AWS, Azure, and GCP. Currently part of the Capella team at Couchbase, he helps organizations modernize their applications and navigate cloud migration using cloud-native technologies. Prior to Couchbase, Anuj was Principal Product Manager at Oracle, where he led strategic initiatives for Oracle NoSQL Database and Oracle Service Cloud, focusing on distributed, always-available data platforms. He holds a Master\u2019s in Electrical and Computer Engineering from the University of Florida\u00a0and is an active thought leader in the data architecture space.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/anuj-sahni-6a80b617\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/anujsahni\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Couchbase Backup: Restore in K8s (Kubernetes) Environment","description":"La herramienta de copia de seguridad de alto rendimiento de Couchbase para grandes conjuntos de datos te ayudar\u00e1 a garantizar la seguridad de los datos con una compresi\u00f3n mejorada para un almacenamiento rentable.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","og_locale":"es_MX","og_type":"article","og_title":"Couchbase Backup \/ Restore in K8s Environment","og_description":"Couchbase\u2019s high-performance backup tool for large datasets will help you ensure data safety with improved compression for cost-effective storage.","og_url":"https:\/\/www.couchbase.com\/blog\/es\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-01-31T08:54:44+00:00","article_modified_time":"2025-06-14T00:14:27+00:00","og_image":[{"width":1512,"height":681,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","type":"image\/png"}],"author":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/"},"author":{"name":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/21c735da109667147c580bb2cb351c1c"},"headline":"Couchbase Backup \/ Restore in K8s Environment","datePublished":"2020-01-31T08:54:44+00:00","dateModified":"2025-06-14T00:14:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/"},"wordCount":1185,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","keywords":["Amazon Web Services (AWS)","backup","cloud","CNCF","EKS","K8","kubernetes","kubernetes operator"],"articleSection":["Backup","Couchbase Architecture","Couchbase Capella","Couchbase Server","Kubernetes"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","url":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/","name":"Couchbase Backup: Restore in K8s (Kubernetes) Environment","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","datePublished":"2020-01-31T08:54:44+00:00","dateModified":"2025-06-14T00:14:27+00:00","description":"La herramienta de copia de seguridad de alto rendimiento de Couchbase para grandes conjuntos de datos te ayudar\u00e1 a garantizar la seguridad de los datos con una compresi\u00f3n mejorada para un almacenamiento rentable.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2020\/01\/backup-setup.png","width":1512,"height":681},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/backup-restore-of-couchbase-cluster-in-a-kubernetes-environment\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Couchbase Backup \/ Restore in K8s Environment"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/21c735da109667147c580bb2cb351c1c","name":"Anuj Sahni, Jefe de Arquitectura de Soluciones y Nube, Couchbase","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/5e9708314822fac560c43a5fbdc9b74f","url":"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g","caption":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase"},"description":"Anuj Sahni is a seasoned cloud and solutions architecture leader with over two decades of experience designing scalable, high-performance enterprise applications across AWS, Azure, and GCP. Currently part of the Capella team at Couchbase, he helps organizations modernize their applications and navigate cloud migration using cloud-native technologies. Prior to Couchbase, Anuj was Principal Product Manager at Oracle, where he led strategic initiatives for Oracle NoSQL Database and Oracle Service Cloud, focusing on distributed, always-available data platforms. He holds a Master\u2019s in Electrical and Computer Engineering from the University of Florida\u00a0and is an active thought leader in the data architecture space.","sameAs":["https:\/\/www.linkedin.com\/in\/anuj-sahni-6a80b617"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/anujsahni\/"}]}},"authors":[{"term_id":9090,"user_id":33279,"is_guest":0,"slug":"anujsahni","display_name":"Anuj Sahni, Cloud and Solutions Architecture Leader, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/cb8391905c8ac6ff579c79c90aeaa4e9cf773b87a25e710ee107104c5659deb6?s=96&d=mm&r=g","author_category":"1","last_name":"Sahni, Cloud and Solutions Architecture Leader, Couchbase","first_name":"Anuj","job_title":"","user_url":"https:\/\/www.linkedin.com\/in\/anuj-sahni-6a80b617","description":"<p data-start=\"231\" data-end=\"963\"><strong>Anuj Sahni<\/strong> es un experimentado l\u00edder en arquitectura de soluciones y en la nube con m\u00e1s de dos d\u00e9cadas de experiencia en el dise\u00f1o de aplicaciones empresariales escalables y de alto rendimiento en AWS, Azure y GCP. Actualmente forma parte del <strong>Equipo Capella en Couchbase<\/strong>Ayuda a las organizaciones a modernizar sus aplicaciones y a migrar a la nube utilizando tecnolog\u00edas nativas de la nube.<\/p>\r\n<p data-start=\"231\" data-end=\"963\">Antes de Couchbase, Anuj fue <strong>Director de Producto en Oracle<\/strong>donde dirigi\u00f3 iniciativas estrat\u00e9gicas para Oracle NoSQL Database y Oracle Service Cloud, centr\u00e1ndose en plataformas de datos distribuidas y siempre disponibles. Posee un <strong>M\u00e1ster en Ingenier\u00eda El\u00e9ctrica e Inform\u00e1tica<\/strong> del <strong>Universidad de Florida<\/strong>\u00a0y es un activo l\u00edder de opini\u00f3n en el \u00e1mbito de la arquitectura de datos.<\/p>"}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8123","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/33279"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=8123"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/8123\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/8124"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=8123"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=8123"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=8123"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=8123"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}