velero Documentation

Backup and migrate Kubernetes applications and their persistent volumes

10,184 stars Go Go 1 file ยท ~3,248 tokens #backup#disaster-recovery#hacktoberfest#kubernetes#velero
RAW Doc

Docker & Self-Hosted Deployment Verified OCI

Deploy velero on any server, homelab, or cloud container platform.

1-Click Terminal Command
bash (docker run)
docker run -d --name velero --restart always velero-io/velero:latest

File: README.md

100




Overview

Velero (formerly Heptio Ark) gives you tools to back up and restore your Kubernetes cluster resources and persistent volumes. You can run Velero with a public cloud platform or on-premises.

Velero lets you:

  • Take backups of your cluster and restore in case of loss.
  • Migrate cluster resources to other clusters.
  • Replicate your production cluster to development and testing clusters.

Velero consists of:

  • A server that runs on your cluster
  • A command-line client that runs locally

Documentation

The documentation provides a getting started guide and information about building from source, architecture, extending Velero and more.

Please use the version selector at the top of the site to ensure you are using the appropriate documentation for your version of Velero.

Troubleshooting

If you encounter issues, review the troubleshooting docs, file an issue, or talk to us on the #velero channel on the Kubernetes Slack server.

Contributing

If you are ready to jump in and test, add code, or help with documentation, follow the instructions on our Start contributing documentation for guidance on how to setup Velero for development.

Changelog

See the list of releases to find out about feature changes.

Velero compatibility matrix

The following is a list of the supported Kubernetes versions for each Velero version.

Velero version Expected Kubernetes version compatibility Tested on Kubernetes version
1.18 1.18-latest 1.33.7, 1.34.1, and 1.35.0
1.17 1.18-latest 1.31.7, 1.32.3, 1.33.1, and 1.34.0
1.16 1.18-latest 1.31.4, 1.32.3, and 1.33.0
1.15 1.18-latest 1.28.8, 1.29.8, 1.30.4 and 1.31.1
1.14 1.18-latest 1.27.9, 1.28.9, and 1.29.4

Velero supports IPv4, IPv6, and dual stack environments. Support for this was tested against Velero v1.8.

The Velero maintainers are continuously working to expand testing coverage, but are not able to test every combination of Velero and supported Kubernetes versions for each Velero release. The table above is meant to track the current testing coverage and the expected supported Kubernetes versions for each Velero version.

If you are interested in using a different version of Kubernetes with a given Velero version, we'd recommend that you perform testing before installing or upgrading your environment. For full information around capabilities within a release, also see the Velero release notes or Kubernetes release notes. See the Velero support page for information about supported versions of Velero.

For each release, Velero maintainers run the test to ensure the upgrade path from n-2 minor release. For example, before the release of v1.10.x, the test will verify that the backup created by v1.9.x and v1.8.x can be restored using the build to be tagged as v1.10.x.

Cloud Native Computing Foundation

Velero is a Cloud Native Computing Foundation sandbox project.

Copyright Contributors to Velero, established as Velero a Series of LF Projects, LLC.
For website terms of use, trademark policy and other project policies please see
https://lfprojects.org/policies/.


File: examples/nginx-app/README.md

Files

This directory contains manifests for two versions of a sample Nginx app under the nginx-example namespace.

`base.yaml`

This is the most basic version of the Nginx app, which can be used to test Velero's backup and restore functionality.

This can be deployed as is.

`with-pv.yaml`

This sets up an Nginx app that logs to a persistent volume, so that Velero's PV snapshotting functionality can also be tested.

This requires you to first replace the placeholder value <YOUR_STORAGE_CLASS_NAME>.


File: examples/README.md

Examples

This directory contains sample YAML config files that can be used for exploring Velero.

  • minio/: Used in the Quickstart to set up Minio, a local S3-compatible object storage service. It provides a convenient way to test Velero without tying you to a specific cloud provider.

  • nginx-app/: A sample nginx app that can be used to test backups and restores.


File: site/css/fonts/Metropolis/README.md

The Metropolis Typeface

The Vision

To create a modern, geometric typeface. Open sourced, and openly available. Influenced by other popular geometric, minimalist sans-serif typefaces of the new millenium. Designed for optimal readability at small point sizes while beautiful at large point sizes.

December 2017 update

Currently working on greatly improving spacing and kerning of the base typeface. Once this is done, work on other variations (e.g. rounded or slab) can begin in earnest.

The License

Licensed under Open Font License (OFL). Available to anyone and everyone. Contributions welcome.

Contact

Contact me via [email protected] or http://twitter.com/ChrisMSimpson for any questions, requests or improvements (or just submit a pull request).

Support

You can now support work on Metropolis via Patreon at https://www.patreon.com/metropolis.


File: site/docs/master/api-types/backup.md

Backup API Type

Use

The Backup API type is used as a request for the Velero server to perform a backup. Once created, the
Velero Server immediately starts the backup process.

API GroupVersion

Backup belongs to the API group version velero.io/v1.

Definition

Here is a sample Backup object with each of the fields documented:

text
/* Detailed source-code truncated for AI context efficiency. */

File: site/docs/master/api-types/backupstoragelocation.md

Velero Backup Storage Locations

Backup Storage Location

Velero can store backups in a number of locations. These are represented in the cluster via the BackupStorageLocation CRD.

Velero must have at least one BackupStorageLocation. By default, this is expected to be named default, however the name can be changed by specifying --default-backup-storage-location on velero server. Backups that do not explicitly specify a storage location will be saved to this BackupStorageLocation.

A sample YAML BackupStorageLocation looks like the following:

yaml
apiVersion: velero.io/v1
kind: BackupStorageLocation
metadata:
  name: default
  namespace: velero
spec:
  backupSyncPeriod: 2m0s
  provider: aws
  objectStorage:
    bucket: myBucket
  config:
    region: us-west-2
    profile: "default"

Parameter Reference

The configurable parameters are as follows:

Main config parameters

Key Type Default Meaning
provider String Required Field The name for whichever object storage provider will be used to store the backups. See your object storage provider's plugin documentation for the appropriate value to use.
objectStorage ObjectStorageLocation Required Field Specification of the object storage for the given provider.
objectStorage/bucket String Required Field The storage bucket where backups are to be uploaded.
objectStorage/prefix String Optional Field The directory inside a storage bucket where backups are to be uploaded.
objectStorage/caCert String Optional Field A base64 encoded CA bundle to be used when verifying TLS connections
config map[string]string None (Optional) Provider-specific configuration keys/values to be passed to the object store plugin. See your object storage provider's plugin documentation for details.
accessMode String ReadWrite How Velero can access the backup storage location. Valid values are ReadWrite, ReadOnly.
backupSyncPeriod metav1.Duration Optional Field How frequently Velero should synchronize backups in object storage. Default is Velero's server backup sync period. Set this to 0s to disable sync.
validationFrequency metav1.Duration Optional Field How frequently Velero should validate the object storage . Default is Velero's server validation frequency. Set this to 0s to disable validation. Default 1 minute.

File: site/docs/master/api-types/README.md

Table of Contents

API types

Here we list the API types that have some functionality that you can only configure via json/yaml vs the velero cli
(hooks)


File: site/docs/master/api-types/restore.md

Restore API Type

Use

The Restore API type is used as a request for the Velero server to perform a Restore. Once created, the
Velero Server immediately starts the Restore process.

API GroupVersion

Restore belongs to the API group version velero.io/v1.

Definition

Here is a sample Restore object with each of the fields documented:

text
/* Detailed source-code truncated for AI context efficiency. */

File: site/docs/master/api-types/schedule.md

Schedule API Type

Use

The Schedule API type is used as a repeatable request for the Velero server to perform a backup for a given cron notation. Once created, the
Velero Server will start the backup process. It will then wait for the next valid point of the given cron expression and execute the backup
process on a repeating basis.

API GroupVersion

Schedule belongs to the API group version velero.io/v1.

Definition

Here is a sample Schedule object with each of the fields documented:

text
/* Detailed source-code truncated for AI context efficiency. */

File: site/docs/master/api-types/volumesnapshotlocation.md

Velero Volume Snapshot Location

Volume Snapshot Location

A volume snapshot location is the location in which to store the volume snapshots created for a backup.

Velero can be configured to take snapshots of volumes from multiple providers. Velero also allows you to configure multiple possible VolumeSnapshotLocation per provider, although you can only select one location per provider at backup time.

Each VolumeSnapshotLocation describes a provider + location. These are represented in the cluster via the VolumeSnapshotLocation CRD. Velero must have at least one VolumeSnapshotLocation per cloud provider.

A sample YAML VolumeSnapshotLocation looks like the following:

yaml
apiVersion: velero.io/v1
kind: VolumeSnapshotLocation
metadata:
  name: aws-default
  namespace: velero
spec:
  provider: aws
  config:
    region: us-west-2
    profile: "default"

Parameter Reference

The configurable parameters are as follows:

Main config parameters

Key Type Default Meaning
provider String Required Field The name for whichever storage provider will be used to create/store the volume snapshots. See your volume snapshot provider's plugin documentation for the appropriate value to use.
config map[string]string None (Optional) Provider-specific configuration keys/values to be passed to the volume snapshotter plugin. See your volume snapshot provider's plugin documentation for details.