VK Cloud logo
Обновлена 15 апреля 2024 г. в 08:50

Установка Velero

Velero — это клиент-серверная утилита для резервного копирования и восстановления ресурсов кластера Kubernetes.

Установка

  1. Убедитесь, что:

  2. Убедитесь, что вы можете подключиться к кластеру с помощью kubectl.

  3. Установите OpenStack CLI, если он еще не установлен. Убедитесь, что вы можете авторизоваться в облаке с его помощью.

  4. Создайте hotbox-бакет для хранения резервных копий в сервисе Cloud Storage.

  5. Создайте аккаунт в сервисе Cloud Storage.

    Выведенные идентификатор ключа и секрет сохраните в файл s3_creds:

    [default]aws_access_key_id=<идентификатор ключа (Access Key ID)>aws_secret_access_key=<секрет (Secret Key)>
  6. Определите, какая версия Velero совместима с версией кластера Kubernetes, в который нужно установить Velero.

  7. Загрузите нужную версию клиента Velero.

  8. Определите версию плагина aws, соответствующую используемой версии Velero.

  9. Добавьте путь до клиента в переменную среды окружения:

    • Path для Windows.
    • PATH для Linux/macOS.
  10. Установите серверную часть Velero в кластер Kubernetes. В команде укажите имя бакета, созданного для Velero и путь к файлу s3_creds с данными аккаунта:

    velero install \--plugins \  velero/velero-plugin-for-aws:v<выбранная версия плагина AWS>,registry.infra.mail.ru:5010/velero/velero-plugin-mcs:v1.2.2 \--provider aws \--bucket <имя бакета для Velero> \--secret-file <путь к файлу s3_creds> \--use-volume-snapshots=false \--backup-location-config \  region=ru-msk,s3ForcePathStyle="true",s3Url=https://hb.bizmrg.com:443

    После завершения установки будет выведено сообщение:

    Velero is installed! ⛵ Use 'kubectl logs deployment/velero -n velero' to view the status.
  11. Создайте секрет Kubernetes, чтобы серверная часть Velero могла авторизоваться в облаке VK Cloud:

    kubectl -n velero create secret generic openstack-cloud-credentials \  --from-literal OS_PROJECT_ID=$OS_PROJECT_ID \  --from-literal OS_REGION_NAME=$OS_REGION_NAME \  --from-literal OS_IDENTITY_API_VERSION=$OS_IDENTITY_API_VERSION \  --from-literal OS_PASSWORD=$OS_PASSWORD \  --from-literal OS_AUTH_URL=$OS_AUTH_URL \  --from-literal OS_USERNAME=$OS_USERNAME \  --from-literal OS_INTERFACE=$OS_INTERFACE \  --from-literal OS_FILE_OPERATION_TIMEOUT=$OS_FILE_OPERATION_TIMEOUT \  --from-literal OS_DOMAIN_NAME=$OS_USER_DOMAIN_NAME \  -o yaml

    Должна быть выведена похожая информация:

    apiVersion: v1data:  OS_AUTH_URL: ...  OS_DOMAIN_NAME: ...  ...kind: Secretmetadata:  creationTimestamp: ...  name: openstack-cloud-credentials  namespace: velero  resourceVersion: ...  selfLink: ...  uid: ...type: Opaque
  12. Пропатчите развертывание (deployment) Velero в кластере. Это нужно, чтобы:

    • ограничить потребление ресурсов плагинами Velero для AWS и VK Cloud;

    • указать секрет с переменными для авторизации в облаке VK Cloud.

    1. Создайте файл с патчем:

    2. Примените патч к развертыванию Velero:

      kubectl patch deployment velero -n velero --patch-file velero-patch.yaml

      Развертывание Velero будет пропатчено и перезапущено.

  13. Создайте расположение снапшотов по умолчанию, выполнив команду:

    velero snapshot-location create default --provider openstack --config region=ru-msk

Проверка работоспособности

  1. Выполните команду для проверки настроенных плагинов:

    velero plugin get

    В выводе команды должны содержаться следующие плагины:

    NAME                                        KIND...                                         ...velero.io/aws                               VolumeSnapshottervelero.io/openstack                         VolumeSnapshotter
  2. Выполните команду для проверки настроенных расположений для резервных копий:

    velero backup-location get

    Должна быть выведена похожая информация:

    NAME      PROVIDER   BUCKET/PREFIX   PHASE       LAST VALIDATED                  ACCESS MODE   DEFAULTdefault   aws        ...             Available   ...                             ReadWrite     true
  3. Выполните команду для проверки настроенных расположений для снапшотов:

    velero snapshot-location get

    Должна быть выведена похожая информация:

    NAME      PROVIDERdefault   openstack

Удаление

Выполните команду:

velero uninstall