SlideShare a Scribd company logo
Kubernetes Backup and Migration
Strategies with Velero
AGENDA
Use Cases Velero
Velero Components
Backup/Restore Data
Generic Workflow
Demo
Disaster Recovery
Data Migration
Conclusions
DISASTER
RECOVERY
DATA
INTEGRITY
DATA
MIGRATION
USE CASES
K8S BACKUP & MIGRATION STRATEGIES WITH VELERO
VELERO CLI
KUBERNETES CLUSTER
RESTIC
DAEMONSET
VELERO SERVER
CONTROLLER
VELERO
COMPONENTS
DATA
Kubernetes API Discovery
Backups in cloud object storage
ETCD
Cloud Provider Snapshot APIs
Agnostic File System level
backups (Restic)
PERSISTENT VOLUMES
DATA
Schedule backups
Filtering by multiple fields
FLEXIBILITY
Plugins
Hooks
EXTENSIBILITY
Using the Velero CLI, the user creates a Backup
custom resource using the Kubernetes API. The
instruction accept filtering by namespace, resource or
labelling, for instance `velero backup create cluster
--include-namespace ghost --wait`.
01
The Velero Controller notice about the new Backup
resource and validated the command.
The Velero Controller starts the backup process. It
queries the Kubernetes API to backup the resources.
The Velero Controller push the backup file to a cloud
object storage. Besides, it creates snapshots using
the cloud Snapshot API of any existing PV. The
backup process finished after upload the file to the
cloud object storage.
Using the Velero CLI, the user creates a
Restore custom restore using the Kubernetes
API. The instruction accept filtering by
namespace, resource or labelling, for instance
to restore from the sample above `velero
restore create --from-backup cluster
--include-namespace ghost`.
The Velero Controller notices about the new
Restore resource, validates the command and
start pulling the data from the cloud object
storage.
02
03
04
05 06
The Velero Controller restores the resources
querying the Kubernetes API to restore the
resources. The restore process finished after
deploying the pull data to the Kubernetes API.
07
01
KUBERNETES CLUSTER
VELERO WORKFLOW
GENERIC DIAGRAM
CREATE BACKUP
RESOURCE LIST RESOURCES PUSH BACKUP DATA
BACKUP
PULL BACKUP DATA
04
05
RESTORE
02
CREATE RESTORE
RESOURCE RESTORE RESOURCES
KUBERNETES CLUSTER
api
07
api
VELERO SERVER
CONTROLLER
03
VELERO SERVER
CONTROLLER
06
DEMO
VELERO WORKFLOW
DISASTER RECOVERY
Using the Velero CLI, the user creates a Backup custom
resource on EKS Cluster 1 using the Kubernetes API. The
instruction accept filtering by namespace, resource or
labelling, for instance `velero backup create cluster1
--include-namespace ghost --wait`.
01
The Velero Controller notice about the new Backup
resource and validated the command.
The Velero Controller starts the backup process. It
queries the Kubernetes API to backup the resources.
The Velero Controller push the backup file to a cloud
object storage. Besides, it creates snapshots using
the cloud Snapshot API of any existing PV. The
backup process finished after upload the file to the
cloud object storage.
Using the Velero CLI, the user creates a
Restore custom restore on EKS Cluster 2 using
the Kubernetes API. The instruction accept
filtering by namespace, resource or labelling,
for instance to restore from the sample above
`velero restore create --from-backup cluster1
--include-namespace ghost`.
The Velero Controller notices about the new
Restore resource, validates the command and start
pulling the data from the cloud object storage.
02
03
04
05 06
The Velero Controller restores the resources
querying the Kubernetes API to restore the
resources. The restore process finished after
deploying the pull data to the Kubernetes API. Data
from cluster1 has been recovered on cluster2.
07
01
05
BACKUP
RESTORE
EKS KUBERNETES CLUSTER 1
CREATE BACKUP
RESOURCE LIST RESOURCES PUSH BACKUP DATA
PULL BACKUP DATA
04
02
CREATE RESTORE
RESOURCE RESTORE RESOURCES
EKS KUBERNETES CLUSTER 2
api
07
api
VELERO SERVER
CONTROLLER
03
VELERO SERVER
CONTROLLER
06
VELERO WORKFLOW
DATA MIGRATION
Using the Velero CLI, the user creates a Backup custom
resource on EKS Cluster2 using the Kubernetes API.
The instruction accept filtering by namespace, resource
or labelling, for instance `velero backup create cluster2
--include-namespace ghost --wait`.
01
The Velero Controller notice about the new Backup
resource and validated the command.
The Velero Controller starts the backup process. It
queries the Kubernetes API to backup the resources.
Velero ensures a restic repository exists for the pod's
namespace. Velero creates a PodVolumeBackup
custom resource per volume listed in the pod
annotation. The main Velero process waits for the
PodVolumeBackup resources to complete or fail.
The Velero Controller push the backup file to a cloud
object storage. This file would be used for restores.
Using the Velero CLI, the user creates a
Restore custom restore on GKE cluster3 using
the Kubernetes API. The instruction accept
filtering by namespace, resource or labelling,
for instance to restore from the sample above
`velero restore create --from-backup cluster2
--include-namespace ghost`.
The Velero Controller notices about the new Restore
resource, validates the command and start pulling the
data from the cloud object storage. Velero creates a
PodVolumeRestore custom resource for each volume
to be restored in the pod.
02
03 04
05
06
The Velero Controller waits for each PodVolumeRestore
resource to complete or fail. It restores the resources
querying the Kubernetes API to restore the resources.
The restore process finished after deploying the pull data
to the Kubernetes API.
07
01
05
BACKUP
RESTORE
EKS KUBERNETES CLUSTER 2
CREATE BACKUP
RESOURCE PUSH BACKUP DATA
PULL BACKUP DATA
04
02
CREATE RESTORE
RESOURCE RESTORE RESOURCES
GKE KUBERNETES CLUSTER 3
api
07
api
VELERO SERVER
CONTROLLER
03
RESTIC
DAEMONSET
VELERO SERVER
CONTROLLER
06
RESTIC
DAEMONSET
SHOWTIME
DISASTER
RECOVERY
DATA
INTEGRITY
DATA
MIGRATION
CONCLUSIONS
K8S BACKUP & MIGRATION STRATEGIES WITH VELERO
ramiroalvfer.dev
github.com/empathyco/platform-velero-showcases
Get more info in

More Related Content

Similar to Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Fernandez

Getting Started with Kubernetes on AWS
Getting Started with Kubernetes on AWSGetting Started with Kubernetes on AWS
Getting Started with Kubernetes on AWS
Amazon Web Services
 
Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2
Imesh Gunaratne
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
Ramit Surana
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
Paul Czarkowski
 
Setting up MySQL Replication Cluster in Kubernetes
Setting up MySQL Replication Cluster in KubernetesSetting up MySQL Replication Cluster in Kubernetes
Setting up MySQL Replication Cluster in Kubernetes
Elizabeth Yu, MBA
 
Open Stack compute-service-nova
Open Stack compute-service-novaOpen Stack compute-service-nova
Open Stack compute-service-nova
GHANSHYAM MANN
 
Kubernetes Immersion
Kubernetes ImmersionKubernetes Immersion
Kubernetes Immersion
Juan Larriba
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
Eueung Mulyana
 
Velero search & practice 20210609
Velero search & practice 20210609Velero search & practice 20210609
Velero search & practice 20210609
KAI CHU CHUNG
 
Kubernetes From Scratch .pdf
Kubernetes From Scratch .pdfKubernetes From Scratch .pdf
Kubernetes From Scratch .pdf
ssuser9b44c7
 
Kubernetes and Prometheus
Kubernetes and PrometheusKubernetes and Prometheus
Kubernetes and Prometheus
Weaveworks
 
aks_training_document_Azure_kuberne.pptx
aks_training_document_Azure_kuberne.pptxaks_training_document_Azure_kuberne.pptx
aks_training_document_Azure_kuberne.pptx
WaseemShare
 
kubernetesforbeginners.pptx
kubernetesforbeginners.pptxkubernetesforbeginners.pptx
kubernetesforbeginners.pptx
BaskarKannanK
 
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Ovadiah Myrgorod
 
Appsecco Kubernetes Hacking Masterclass Presentation Slides
Appsecco Kubernetes Hacking Masterclass Presentation SlidesAppsecco Kubernetes Hacking Masterclass Presentation Slides
Appsecco Kubernetes Hacking Masterclass Presentation Slides
Appsecco
 
Kubernetes - Using Persistent Disks with WordPress and MySQL
Kubernetes - Using Persistent Disks with WordPress and MySQLKubernetes - Using Persistent Disks with WordPress and MySQL
Kubernetes - Using Persistent Disks with WordPress and MySQL
pratik rathod
 
Veritas NetBackup 7.6 benchmark comparison: Data protection in a large-scale ...
Veritas NetBackup 7.6 benchmark comparison: Data protection in a large-scale ...Veritas NetBackup 7.6 benchmark comparison: Data protection in a large-scale ...
Veritas NetBackup 7.6 benchmark comparison: Data protection in a large-scale ...
Principled Technologies
 
ECS and ECR deep dive
ECS and ECR deep diveECS and ECR deep dive
ECS and ECR deep dive
Shiva Narayanaswamy
 
Fiware cloud capabilities_and_setting_up_your_environment
Fiware cloud capabilities_and_setting_up_your_environmentFiware cloud capabilities_and_setting_up_your_environment
Fiware cloud capabilities_and_setting_up_your_environment
Miguel García González
 
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Codemotion
 

Similar to Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Fernandez (20)

Getting Started with Kubernetes on AWS
Getting Started with Kubernetes on AWSGetting Started with Kubernetes on AWS
Getting Started with Kubernetes on AWS
 
Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2
 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Setting up MySQL Replication Cluster in Kubernetes
Setting up MySQL Replication Cluster in KubernetesSetting up MySQL Replication Cluster in Kubernetes
Setting up MySQL Replication Cluster in Kubernetes
 
Open Stack compute-service-nova
Open Stack compute-service-novaOpen Stack compute-service-nova
Open Stack compute-service-nova
 
Kubernetes Immersion
Kubernetes ImmersionKubernetes Immersion
Kubernetes Immersion
 
Kubernetes Basics
Kubernetes BasicsKubernetes Basics
Kubernetes Basics
 
Velero search & practice 20210609
Velero search & practice 20210609Velero search & practice 20210609
Velero search & practice 20210609
 
Kubernetes From Scratch .pdf
Kubernetes From Scratch .pdfKubernetes From Scratch .pdf
Kubernetes From Scratch .pdf
 
Kubernetes and Prometheus
Kubernetes and PrometheusKubernetes and Prometheus
Kubernetes and Prometheus
 
aks_training_document_Azure_kuberne.pptx
aks_training_document_Azure_kuberne.pptxaks_training_document_Azure_kuberne.pptx
aks_training_document_Azure_kuberne.pptx
 
kubernetesforbeginners.pptx
kubernetesforbeginners.pptxkubernetesforbeginners.pptx
kubernetesforbeginners.pptx
 
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
Create a Varnish cluster in Kubernetes for Drupal caching - DrupalCon North A...
 
Appsecco Kubernetes Hacking Masterclass Presentation Slides
Appsecco Kubernetes Hacking Masterclass Presentation SlidesAppsecco Kubernetes Hacking Masterclass Presentation Slides
Appsecco Kubernetes Hacking Masterclass Presentation Slides
 
Kubernetes - Using Persistent Disks with WordPress and MySQL
Kubernetes - Using Persistent Disks with WordPress and MySQLKubernetes - Using Persistent Disks with WordPress and MySQL
Kubernetes - Using Persistent Disks with WordPress and MySQL
 
Veritas NetBackup 7.6 benchmark comparison: Data protection in a large-scale ...
Veritas NetBackup 7.6 benchmark comparison: Data protection in a large-scale ...Veritas NetBackup 7.6 benchmark comparison: Data protection in a large-scale ...
Veritas NetBackup 7.6 benchmark comparison: Data protection in a large-scale ...
 
ECS and ECR deep dive
ECS and ECR deep diveECS and ECR deep dive
ECS and ECR deep dive
 
Fiware cloud capabilities_and_setting_up_your_environment
Fiware cloud capabilities_and_setting_up_your_environmentFiware cloud capabilities_and_setting_up_your_environment
Fiware cloud capabilities_and_setting_up_your_environment
 
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
Gianluca Arbezzano Wordpress: gestione delle installazioni e scalabilità con ...
 

More from KCDItaly

OMG Namespaces! | Raffaele Di Fazio
OMG Namespaces! | Raffaele Di FazioOMG Namespaces! | Raffaele Di Fazio
OMG Namespaces! | Raffaele Di Fazio
KCDItaly
 
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò RaspaTu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
KCDItaly
 
Kubernetes Policy As Code usando WebAssembly | Flavio Castelli
Kubernetes Policy As Code usando WebAssembly | Flavio CastelliKubernetes Policy As Code usando WebAssembly | Flavio Castelli
Kubernetes Policy As Code usando WebAssembly | Flavio Castelli
KCDItaly
 
kube-green | Davide Bianchi
kube-green | Davide Bianchikube-green | Davide Bianchi
kube-green | Davide Bianchi
KCDItaly
 
Cloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
Cloud Native resiliency patterns from the ground up | Ana-Maria MihalceanuCloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
Cloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
KCDItaly
 
Knative goes
 beyond serverless | Alexandre Roman
Knative goes
 beyond serverless | Alexandre RomanKnative goes
 beyond serverless | Alexandre Roman
Knative goes
 beyond serverless | Alexandre Roman
KCDItaly
 
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
KCDItaly
 

More from KCDItaly (7)

OMG Namespaces! | Raffaele Di Fazio
OMG Namespaces! | Raffaele Di FazioOMG Namespaces! | Raffaele Di Fazio
OMG Namespaces! | Raffaele Di Fazio
 
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò RaspaTu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
Tu non puoi passare! Policy compliance con OPA Gatekeeper | Niccolò Raspa
 
Kubernetes Policy As Code usando WebAssembly | Flavio Castelli
Kubernetes Policy As Code usando WebAssembly | Flavio CastelliKubernetes Policy As Code usando WebAssembly | Flavio Castelli
Kubernetes Policy As Code usando WebAssembly | Flavio Castelli
 
kube-green | Davide Bianchi
kube-green | Davide Bianchikube-green | Davide Bianchi
kube-green | Davide Bianchi
 
Cloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
Cloud Native resiliency patterns from the ground up | Ana-Maria MihalceanuCloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
Cloud Native resiliency patterns from the ground up | Ana-Maria Mihalceanu
 
Knative goes
 beyond serverless | Alexandre Roman
Knative goes
 beyond serverless | Alexandre RomanKnative goes
 beyond serverless | Alexandre Roman
Knative goes
 beyond serverless | Alexandre Roman
 
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
Multi-Clusters Made Easy with Liqo:
Getting Rid of Your Clusters Keeping Them...
 

Recently uploaded

Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
Zilliz
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
SitimaJohn
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
Pravash Chandra Das
 

Recently uploaded (20)

Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Building Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and MilvusBuilding Production Ready Search Pipelines with Spark and Milvus
Building Production Ready Search Pipelines with Spark and Milvus
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptxOcean lotus Threat actors project by John Sitima 2024 (1).pptx
Ocean lotus Threat actors project by John Sitima 2024 (1).pptx
 
Operating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptxOperating System Used by Users in day-to-day life.pptx
Operating System Used by Users in day-to-day life.pptx
 

Kubernetes Backup and Migration Strategies with Velero | Ramiro Alvarez Fernandez

  • 1. Kubernetes Backup and Migration Strategies with Velero
  • 2. AGENDA Use Cases Velero Velero Components Backup/Restore Data Generic Workflow Demo Disaster Recovery Data Migration Conclusions
  • 4. VELERO CLI KUBERNETES CLUSTER RESTIC DAEMONSET VELERO SERVER CONTROLLER VELERO COMPONENTS
  • 5. DATA Kubernetes API Discovery Backups in cloud object storage ETCD Cloud Provider Snapshot APIs Agnostic File System level backups (Restic) PERSISTENT VOLUMES
  • 6. DATA Schedule backups Filtering by multiple fields FLEXIBILITY Plugins Hooks EXTENSIBILITY
  • 7. Using the Velero CLI, the user creates a Backup custom resource using the Kubernetes API. The instruction accept filtering by namespace, resource or labelling, for instance `velero backup create cluster --include-namespace ghost --wait`. 01 The Velero Controller notice about the new Backup resource and validated the command. The Velero Controller starts the backup process. It queries the Kubernetes API to backup the resources. The Velero Controller push the backup file to a cloud object storage. Besides, it creates snapshots using the cloud Snapshot API of any existing PV. The backup process finished after upload the file to the cloud object storage. Using the Velero CLI, the user creates a Restore custom restore using the Kubernetes API. The instruction accept filtering by namespace, resource or labelling, for instance to restore from the sample above `velero restore create --from-backup cluster --include-namespace ghost`. The Velero Controller notices about the new Restore resource, validates the command and start pulling the data from the cloud object storage. 02 03 04 05 06 The Velero Controller restores the resources querying the Kubernetes API to restore the resources. The restore process finished after deploying the pull data to the Kubernetes API. 07 01 KUBERNETES CLUSTER VELERO WORKFLOW GENERIC DIAGRAM CREATE BACKUP RESOURCE LIST RESOURCES PUSH BACKUP DATA BACKUP PULL BACKUP DATA 04 05 RESTORE 02 CREATE RESTORE RESOURCE RESTORE RESOURCES KUBERNETES CLUSTER api 07 api VELERO SERVER CONTROLLER 03 VELERO SERVER CONTROLLER 06
  • 9. VELERO WORKFLOW DISASTER RECOVERY Using the Velero CLI, the user creates a Backup custom resource on EKS Cluster 1 using the Kubernetes API. The instruction accept filtering by namespace, resource or labelling, for instance `velero backup create cluster1 --include-namespace ghost --wait`. 01 The Velero Controller notice about the new Backup resource and validated the command. The Velero Controller starts the backup process. It queries the Kubernetes API to backup the resources. The Velero Controller push the backup file to a cloud object storage. Besides, it creates snapshots using the cloud Snapshot API of any existing PV. The backup process finished after upload the file to the cloud object storage. Using the Velero CLI, the user creates a Restore custom restore on EKS Cluster 2 using the Kubernetes API. The instruction accept filtering by namespace, resource or labelling, for instance to restore from the sample above `velero restore create --from-backup cluster1 --include-namespace ghost`. The Velero Controller notices about the new Restore resource, validates the command and start pulling the data from the cloud object storage. 02 03 04 05 06 The Velero Controller restores the resources querying the Kubernetes API to restore the resources. The restore process finished after deploying the pull data to the Kubernetes API. Data from cluster1 has been recovered on cluster2. 07 01 05 BACKUP RESTORE EKS KUBERNETES CLUSTER 1 CREATE BACKUP RESOURCE LIST RESOURCES PUSH BACKUP DATA PULL BACKUP DATA 04 02 CREATE RESTORE RESOURCE RESTORE RESOURCES EKS KUBERNETES CLUSTER 2 api 07 api VELERO SERVER CONTROLLER 03 VELERO SERVER CONTROLLER 06
  • 10. VELERO WORKFLOW DATA MIGRATION Using the Velero CLI, the user creates a Backup custom resource on EKS Cluster2 using the Kubernetes API. The instruction accept filtering by namespace, resource or labelling, for instance `velero backup create cluster2 --include-namespace ghost --wait`. 01 The Velero Controller notice about the new Backup resource and validated the command. The Velero Controller starts the backup process. It queries the Kubernetes API to backup the resources. Velero ensures a restic repository exists for the pod's namespace. Velero creates a PodVolumeBackup custom resource per volume listed in the pod annotation. The main Velero process waits for the PodVolumeBackup resources to complete or fail. The Velero Controller push the backup file to a cloud object storage. This file would be used for restores. Using the Velero CLI, the user creates a Restore custom restore on GKE cluster3 using the Kubernetes API. The instruction accept filtering by namespace, resource or labelling, for instance to restore from the sample above `velero restore create --from-backup cluster2 --include-namespace ghost`. The Velero Controller notices about the new Restore resource, validates the command and start pulling the data from the cloud object storage. Velero creates a PodVolumeRestore custom resource for each volume to be restored in the pod. 02 03 04 05 06 The Velero Controller waits for each PodVolumeRestore resource to complete or fail. It restores the resources querying the Kubernetes API to restore the resources. The restore process finished after deploying the pull data to the Kubernetes API. 07 01 05 BACKUP RESTORE EKS KUBERNETES CLUSTER 2 CREATE BACKUP RESOURCE PUSH BACKUP DATA PULL BACKUP DATA 04 02 CREATE RESTORE RESOURCE RESTORE RESOURCES GKE KUBERNETES CLUSTER 3 api 07 api VELERO SERVER CONTROLLER 03 RESTIC DAEMONSET VELERO SERVER CONTROLLER 06 RESTIC DAEMONSET