---
title: "Аддон Velero для Kubernetes"
description: "Аддон Velero для Kubernetes. Установка, настройка, примеры использования. Документация и инструкции по работе с облачными сервисами Timeweb Cloud."
---

# Velero

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

Velero — это инструмент для резервного копирования, восстановления и переноса данных в Kubernetes. Он позволяет создавать бэкапы и восстанавливать состояние кластеров, а также выполнять миграции между кластерами.

Для работы с Velero необходимо установить Velero CLI на локальную машину и настроить его в вашем кластере Kubernetes.

## Предварительные требования

Перед началом установки убедитесь, что выполнены следующие условия:

1.  Настроен доступ к вашему Kubernetes-кластеру через kubectl. Инструкцию по настройке можно найти [здесь](https://timeweb.cloud/docs/k8s/cluster-connection/kubectl).
2.  Создан S3-бакет для размещения резервных копий. Создать бакет можно по [инструкции](https://timeweb.cloud/docs/s3-storage/manage-storage/create-bucket).

Создадим отдельный неймспейс для Velero:

```shell
kubectl create namespace velero
```

## Создание секрета S3

Для настройки доступа Velero к S3-бакету создадим секрет. Создайте файл манифеста `velero-credentials-secret.yaml` со следующим содержимым:

```yml
apiVersion: v1
kind: Secret
metadata:
  name: cloud-credentials
  namespace: velero
type: Opaque
stringData:
  cloud: |
    [default]
    aws_access_key_id=S3_Access_Key
    aws_secret_access_key=S3_Secret_Access_Key
```

Замените `S3_Access_Key` и `S3_Secret_Access_Key` на свои ключи доступа к S3.

![Selection 167](https://content.timeweb.com/assets/da926458-bf59-46af-8ed6-138437f06649.png?width=870&height=873)

Примените манифест:

```shell
kubectl apply -f velero-credentials-secret.yaml
```

Проверьте создание секрета:

```shell
kubectl describe secrets cloud-credentials -n velero
```

Значение `Data.cloud` должно быть ненулевым.

![Screenshot 01 25 25 21:02:04](https://content.timeweb.com/assets/a2bcb618-2f84-468d-9167-677df048cd57.png?width=549&height=214)

## Установка Velero CLI

Бинарный файл

Скачайте архив с последней версией Velero с официальной [страницы релизов](https://github.com/vmware-tanzu/velero/releases) GitHub:

```shell
wget https://github.com/vmware-tanzu/velero/releases/download/v1.15.2/velero-v1.15.2-linux-amd64.tar.gz
```

Распакуйте архив:

```shell
tar -xvzf velero-v1.15.2-linux-amd64.tar.gz
```

Переместите бинарный файл Velero в директорию `/usr/local/bin`:

```shell
sudo mv ./velero-v1.15.2-linux-amd64/velero /usr/local/bin/
```

Homebrew

Для установки Velero на macOS выполните команду:

```shell
brew install velero
```

Chocolatey

Для установки Velero на Windows с использованием Chocolatey выполните команду:

```shell
choco install velero
```

Проверьте установку:

```shell
velero version
```

![Screenshot 01 25 25 21:04:13](https://content.timeweb.com/assets/bc2ed7e0-d1e8-457c-b8d9-9dd6a2381b67.png?width=625&height=128)

## Установка Velero в кластере

Создайте файл `values.yaml` с минимально необходимой конфигурацией:

```yml
namespace:
  name: velero
  labels: {}

credentials:
  existingSecret: cloud-credentials

configuration:
  backupStorageLocation:
    - name: default
      provider: aws
      bucket: имя_бакета
      default: true
      config:
        region: ru-1
        s3ForcePathStyle: true
        s3Url: https://s3.twcstorage.ru

  volumeSnapshotLocation:
    - name: default
      provider: aws
      config:
        region: ru-1

initContainers:
  - name: velero-plugin-for-aws
    image: velero/velero-plugin-for-aws:v1.7.0
    volumeMounts:
      - mountPath: /target
        name: plugins
```

**Описание параметров:**

-   `backupStorageLocation`: Настраивает хранилище для бэкапов.
    

-   `bucket`: Имя S3-бакета.
    
-   `s3Url`: URL для S3-хранилища Timeweb Cloud.
    

-   `initContainers`: Добавляет необходимый плагин для работы с S3.
    
-   `credentials.existingSecret`: Ссылается на ранее созданный секрет `cloud-credentials`, содержащий ключи доступа к S3.
    

### Установка через панель управления

1.  Перейдите в панель управления кластером и откройте вкладку «Дополнения». Выберите Velero.
    

![Selection 168](https://content.timeweb.com/assets/de030e07-6fba-433c-9483-c6591cf320dd.png?width=1006&height=919)

2.  Включите режим продвинутой установки и загрузите файл `values.yaml`, нажав на «Загрузить конфигурацию из файла».

![Selection 169](https://content.timeweb.com/assets/1df243ec-48b9-45a4-b06f-77f9d2a974ae.png?width=997&height=881)

3.  Нажмите «Установить».
    
4.  Дождитесь завершения установки и проверьте стутс подов:

```shell
kubectl get pods -n velero
```

### Установка через Helm

Вы можете установить Velero при помощи [Helm](https://timeweb.cloud/docs/k8s/deploy/helm). Для этого:

1.  Добавьте репозиторий Velero:
    

```yml
helm repo add velero https://vmware-tanzu.github.io/helm-charts
helm repo update
```

2.  Установите Velero с использованием файла конфигурации:
    

```shell
helm install velero velero/velero -f values.yaml --namespace velero
```

3.  Проверьте установку:
    

```shell
kubectl get pods -n velero
```

Статус подов Velero должен быть `Running`.

## Использование

Для демонстрации работы Velero создадим тестовый деплоймент с Nginx и покажем процесс создания резервной копии, удаления ресурсов и последующего восстановления данных.

#### Создание бэкапа

1.  Создайте деплоймент с Nginx в отдельном неймспейсе:
    

```yml
kubectl create namespace nginx-test
kubectl create deployment nginx --image=nginx -n nginx-test
```

2.  Создайте бэкап:
    

```shell
velero backup create nginx-backup --include-namespaces nginx-test
```

Мы указали параметр `--include-namespaces`, чтобы выполнить копирование всего неймспейса. Вы также можете указать другие параметры при создании бэкапа:

-   `--include-resources`: включает конкретные ресурсы (например, `pods`, `services`).
    
-   `--exclude-resources`: исключает определённые ресурсы.
    
-   `--ttl`: задаёт время жизни бэкапа (например, `10h15m0s`).
    

3.  Проверьте статус бэкапа:
    

```shell
velero backup describe nginx-backup
```

#### Восстановление данных

1.  Удалите тестовый неймспейс:
    

```shell
kubectl delete namespace nginx-test
```

2.  Восстановите ресурсы из бэкапа:
    

```shell
velero restore create --from-backup nginx-backup
```

3.  Убедитесь, что неймспейс и деплоймент восстановлены:
    

```shell
kubectl get all -n nginx-test
```

## Управление расписанием и статусами бэкапов

Помимо создания бэкапов вручную, Velero позволяет автоматизировать создание резервных копий по расписанию. Также вы можете управлять существующими бэкапами.

### Настройка автоматического создания бэкапов

Вы можете настроить расписание для регулярного создания резервных копий. Например, чтобы создавать бэкап всех неймспейсов каждый день в полночь:

```shell
velero schedule create имя_задачи --schedule "0 0 * * *" --include-namespaces '*'
```

-   `--schedule "0 0 * * *":` расписание в формате Cron (каждый день в 00:00).
    
-   `--include-namespaces '*'`: включить все неймспейсы.
    

Для создания бэкапов одного неймспейса раз в час:

```shell
velero schedule create имя_задачи --schedule "0 * * * *" --include-namespaces my-namespace
```

Проверить расписание создания бэкапов можно командой:

```shell
velero schedule get
```

Если задача в расписании больше не нужна, ее можно удалить:

```shell
velero schedule delete имя_задачи
```

### Просмотр и управление бэкапами

Список всех существующих бэкапов можно вывести командой:

```shell
velero backup get
```

Для удаления старого бэкапа воспользуйтесь командой:

```shell
velero backup delete имя_бэкапа
```

Чтобы проверить детали бэкапа, включая его статус и ресурсы, выполните:

```shell
velero backup describe имя_бэкапа --details
```

Эти функции позволяют гибко управлять процессами резервного копирования и восстановить данные в нужный момент.
