96 lines
4.3 KiB
Markdown
96 lines
4.3 KiB
Markdown
---
|
|
title: "On-Premises Environments"
|
|
layout: docs
|
|
---
|
|
|
|
You can run Velero in an on-premises cluster in different ways depending on your requirements.
|
|
|
|
### Selecting an object storage provider
|
|
|
|
You must select an object storage backend that Velero can use to store backup data. [Supported providers][0] contains information on various
|
|
options that are supported or have been reported to work by users.
|
|
|
|
If you do not already have an object storage system, [MinIO][2] is an open-source S3-compatible object storage system that can be installed on-premises and is compatible with Velero. The details of configuring it for production usage are out of scope for Velero's documentation, but an [evaluation install guide][3] using MinIO is provided for convenience.
|
|
|
|
### (Optional) Selecting volume snapshot providers
|
|
|
|
If you need to back up persistent volume data, you must select a volume backup solution. [Supported providers][0] contains information on the supported options.
|
|
|
|
For example, if you use [Portworx][4] for persistent storage, you can install their Velero plugin to get native Portworx snapshots as part of your Velero backups.
|
|
|
|
If there is no native snapshot plugin available for your storage platform, you can use Velero's [restic integration][1], which provides a platform-agnostic file-level backup solution for volume data.
|
|
|
|
### Air-gapped deployments
|
|
|
|
In an air-gapped deployment, there is no access to the public internet, and therefore no access to public container registries.
|
|
|
|
In these scenarios, you will need to make sure that you have an internal registry, such as [Harbor][5], installed and the Velero core and plugin images loaded into your internal registry.
|
|
|
|
Below you will find instructions to downloading the Velero images to your local machine, tagging them, then uploading them to your custom registry.
|
|
|
|
#### Preparing the Velero image
|
|
|
|
First, download the Velero image, tag it for the your private registry, then upload it into the registry so that it can be pulled by your cluster.
|
|
|
|
```bash
|
|
PRIVATE_REG=<your private registry>
|
|
VELERO_VERSION=<version of Velero you're targeting, e.g. v1.4.0>
|
|
|
|
docker pull velero/velero:$VELERO_VERSION
|
|
docker tag velero/velero:$VELERO_VERSION $PRIVATE_REG/velero:$VELERO_VERSION
|
|
docker push $PRIVATE_REG/velero:$VELERO_VERSION
|
|
```
|
|
|
|
#### Preparing plugin images
|
|
|
|
Next, repeat these steps for any plugins you may need. This example will use the AWS plugin, but the plugin name should be replaced with the plugins you will need.
|
|
|
|
```bash
|
|
PRIVATE_REG=<your private registry>
|
|
PLUGIN_VERSION=<version of plugin you're targeting, e.g. v1.0.2>
|
|
|
|
docker pull velero/velero-plugin-for-aws:$PLUGIN_VERSION
|
|
docker tag velero/velero-plugin-for-aws:$PLUGIN_VERSION $PRIVATE_REG/velero-plugin-for-aws:$PLUGIN_VERSION
|
|
docker push $PRIVATE_REG/velero-plugin-for-aws:$PLUGIN_VERSION
|
|
```
|
|
|
|
#### Preparing the restic helper image (optional)
|
|
|
|
If you are using restic, you will also need to upload the restic helper image.
|
|
|
|
```bash
|
|
PRIVATE_REG=<your private registry>
|
|
VELERO_VERSION=<version of Velero you're targeting, e.g. v1.4.0>
|
|
|
|
docker pull velero/velero-restic-restore-helper:$VELERO_VERSION
|
|
docker tag velero/velero-restic-restore-helper:$VELERO_VERSION $PRIVATE_REG/velero-restic-restore-helper:$VELERO_VERSION
|
|
docker push $PRIVATE_REG/velero-restic-restore-helper:$VELERO_VERSION
|
|
```
|
|
|
|
#### Pulling specific architecture images (optional)
|
|
|
|
Velero uses Docker manifests for its images, allowing Docker to pull the image needed based on your client machine's architecture.
|
|
|
|
If you need to pull a specific image, you should replace the `velero/velero` image with the specific architecture image, such as `velero/velero-arm`.
|
|
|
|
To see an up-to-date list of architectures, be sure to enable Docker experimental features and use `docker manifest inspect velero/velero` (or whichever image you're interested in), and join the architecture string to the end of the image name with `-`.
|
|
|
|
#### Installing Velero
|
|
|
|
By default, `velero install` will use the public `velero/velero` image. When using an air-gapped deployment, use your private registry's image for Velero and your private registry's images for any plugins.
|
|
|
|
```bash
|
|
velero install \
|
|
--image=$PRIVATE_REG/velero:$VELERO_VERSION \
|
|
--plugins=$PRIVATE_REG/velero-plugin-for-aws:$PLUGIN_VERSION \
|
|
<....>
|
|
```
|
|
|
|
|
|
[0]: supported-providers.md
|
|
[1]: restic.md
|
|
[2]: https://min.io
|
|
[3]: contributions/minio.md
|
|
[4]: https://portworx.com
|
|
[5]: https://goharbor.io/
|