Практическое руководство по резервному копированию и восстановлению с сохранением состояния Kubernetes

Андела спонсировала этот пост.

Kubernetes — это очень мощная и надежная платформа для оркестрации контейнерных приложений, превосходно управляющая как приложениями с сохранением состояния, так и приложениями без него. Управление приложениями с отслеживанием состояния может быть сложной задачей из-за необходимости поддерживать согласованность, целостность и доступность данных.

Правильные, хорошо документированные и проверенные стратегии резервного копирования и восстановления необходимы для того, чтобы в случае аварии вы могли легко восстановить обслуживание без потери данных. Существуют разные методы резервного копирования и восстановления в среде Kubernetes, поэтому вы должны убедиться, что используемая вами стратегия соответствует вашему сценарию использования.

Я познакомлю вас с основными стратегиями и инструментами, которые можно адаптировать для выполнения резервного копирования и восстановления в среде Kubernetes для обеспечения непрерывности бизнеса.

Почему резервное копирование и восстановление необходимы для приложений с отслеживанием состояния?

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

  • Базы данных: MySQL, MongoDB и PostgreSQL.
  • Кэши памяти: Redis, RabbitMQ.
  • Системы хранения: Elasticsearch, Cassandra.

Понимание рабочих нагрузок Kubernetes с отслеживанием состояния

StatefulSet в Kubernetes — это объект API рабочей нагрузки, используемый для управления приложениями с отслеживанием состояния. StatefulSet предоставляет модулю возможность поддерживать фиксированную идентификацию, уникальную сетевую идентификацию, постоянные тома (PV) и заявки на постоянные тома (PVC). StatefulSet упрощает получение идентификаторов каждого модуля, что, в свою очередь, упрощает выполнение резервного копирования и восстановления базы данных.

Стратегии резервного копирования для приложений Kubernetes с отслеживанием состояния 1. Снимки томов

Kubernetes предоставляет стандартизированный способ копирования содержимого тома в определенное время без создания совершенно нового тома. Снимки томов удобны и эффективны, когда администраторы баз данных хотят быстро восстановить предыдущее состояние. Это также может быть полезно, когда необходимо выполнить обслуживание кластера Kubernetes. Резервное копирование будет выполнено перед выполнением действия, а администратор выполнит восстановление после выполнения действия.

Как использовать снимки тома: Kubernetes имеет встроенную поддержку управления снимками томов через API моментальных снимков Container Storage Interface (CSI), который легко интегрируется с хранилищем в облачных средах.

  • В AWS используйте AWS EBS.
  • В Azure используйте моментальные снимки управляемых дисков Azure.
  • В Google Cloud Platform (GCP) используйте постоянные снимки диска.

Инструменты создания снимков тома, на которые стоит обратить внимание:

  • Velero — популярный инструмент с открытым исходным кодом, используемый для резервного копирования, восстановления и миграции ресурсов Kubernetes, таких как PVC и PV. Он также выполняет запланированное резервное копирование и интегрируется с основными поставщиками облачных услуг.
  • Вы также можете настроить задание cron Kubernetes. Создайте ресурс задания cron Kubernetes, который планирует регулярные задачи для выполнения команд rsync. Инструмент rsync синхронизирует или создает резервную копию данных с физического лица в резервное хранилище, например внешнее хранилище, облачное хранилище или другое физическое хранилище.

2. Резервные копии на уровне приложения

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

Инструменты резервного копирования базы данных, на которые следует обратить внимание:

  • PostgreSQL: используйте pg_dump.
  • MySQL: используйте mysqldump.
  • Используйте Velero для регулярного резервного копирования.

3. Инкрементное и дифференциальное резервное копирование

В случаях, когда база данных очень велика, будет полезно выполнить инкрементное и дифференциальное резервное копирование. Инкрементное и дифференциальное резервное копирование позволяет создавать резервные копии только изменившихся данных, что экономит время, пропускную способность и хранилище.

  • Инкрементные резервные копии: фиксируйте изменения, произошедшие с момента последнего резервного копирования.
  • Дифференциальные резервные копии: фиксируйте изменения, произошедшие с момента последнего полного резервного копирования.

Инструменты инкрементального и дифференциального резервного копирования, на которые стоит обратить внимание:

  • Restic поддерживает эффективное и зашифрованное инкрементное резервное копирование.
  • BorgBackup можно использовать для резервного копирования томов Kubernetes на узле.

4. Внешние и многорегиональные резервные копии

Чтобы предотвратить возникновение единой точки сбоя в расположении базы данных и защититься от сбоев расположения базы данных, храните резервные копии вне офиса или в нескольких регионах. Чтобы хранить резервные копии в облаке, вы можете попробовать:

  • Амазонка S3: S3 — это надежный и масштабируемый сервис объектного хранения, который может реплицировать данные в другие регионы.
  • Облачное хранилище Google: Облачное хранилище GCP интегрируется с сервисами GCP, хранит любые объемы данных и извлекает их так часто, как вам удобно.
  • Хранилище BLOB-объектов Azure: Он интегрируется со службами Microsoft Azure и обеспечивает масштабируемое и экономичное объектное хранилище в облаке.

Стратегии восстановления приложений Kubernetes с отслеживанием состояния

Существует очень много стратегий, которые можно адаптировать для восстановления данных в приложении с отслеживанием состояния.

1. Восстановление из снимков тома

Следующие методы можно использовать для восстановления снимков тома из среды Kubernetes. Вам также необходимо проверить целостность моментального снимка тома перед попыткой восстановления.

  • Используйте Velero для восстановления тома.
  • Используйте ресурсы Kubernetes для восстановления VolumeSnapshot в новый PV.

2. Восстановление на уровне приложения

Используйте встроенный инструмент, предоставляемый базой данных, для выполнения восстановления базы данных. Вы можете использовать эти инструменты только для восстановления резервных копий, созданных с помощью того же инструмента (например, если для резервного копирования MySQL использовался mysqldump).

Инструменты восстановления для конкретных баз данных:

  • PostgreSQL: используйте pg_dump.
  • MySQL: используйте mysqldump.
  • Используйте Velero для регулярного резервного копирования.

3. Полное восстановление Kubernetes с помощью Velero

Velero может выполнять резервное копирование и восстановление ресурсов Kubernetes. Вы можете использовать Velero для восстановления ресурсов Kubernetes, таких как StatefulSets, ConfigMaps, секреты Kubernetes, PV и PVC.

После того, как все ресурсы будут успешно восстановлены, вы можете повторно подключить PV.

Рекомендуемые рекомендации по резервному копированию и восстановлению

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

  • Выполняйте регулярное запланированное резервное копирование и придерживайтесь политик хранения.
  • Организуйте периодическое тестирование (восстановление резервных копий) резервных копий для проверки их целостности и подлинности. Это можно автоматизировать и создавать отчеты для анализа.
  • Отслеживайте и отправляйте оповещения о сбоях резервного копирования. Вы можете использовать такие инструменты, как Nagios или Datadog, для мониторинга резервного копирования.
  • Задокументируйте процедуры восстановления.
  • Используйте шифрование резервных копий в целях безопасности.

Инструменты автоматизации аварийного восстановления

Следующие инструменты можно использовать для автоматизации резервного копирования и восстановления в среде Kubernetes.

  • Velero — это инструмент с открытым исходным кодом для резервного копирования и восстановления рабочих нагрузок Kubernetes. Он также поддерживает облачное хранилище и снимки.
  • Stash — это собственное решение аварийного восстановления Kubernetes для резервного копирования и восстановления томов и баз данных в Kubernetes.
  • Ark — это инструмент с открытым исходным кодом, созданный Heptio для резервного копирования и восстановления кластеров и физических объектов Kubernetes. Ark позволяет вам выполнять резервное копирование всего или части ресурса в вашем кластере Kubernetes, включая PV, развертывания, теги и многое другое.

Заключение

Очень важно проводить регулярные тренировки по аварийному восстановлению (DR) для обеспечения непрерывности бизнеса в аварийной ситуации. Вы также можете выполнять регулярные действия, такие как хаос-инженерия, которая будет моделировать сбои и проверять процесс восстановления вашей инфраструктуры, в вашем кластере Kubernetes.

Реализуя стратегию процесса резервного копирования и восстановления, соответствующую вашему варианту использования, используя StatefulSets, снимки PV и PVC; использование решений для резервного копирования, таких как Velero; и поддерживая политику резервного копирования и восстановления, вы можете гарантировать, что ваши приложения с отслеживанием состояния останутся устойчивыми к потере или повреждению данных.

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

Хотите глубже погрузиться в возможности Kubernetes? Ознакомьтесь с руководством Анделы «Создание масштабируемого конвейера CI/CD для Kubernetes с помощью GitHub и Argo CD» и продолжайте свое путешествие по Kubernetes.

Andela предоставляет крупнейшую в мире частную рыночную площадку для талантов удаленных технологий, управляемую платформой на базе искусственного интеллекта для управления полным жизненным циклом найма по контракту. Andela помогает компаниям масштабировать команды и быстрее реализовывать проекты в специализированных областях: разработка приложений, искусственный интеллект, облако, данные и аналитика. Узнайте больше Последние новости от Анделы ТЕНДЕНЦИОННЫЕ ИСТОРИИ YOUTUBE.COM/THENEWSTACK Технологии развиваются быстро, не пропустите ни одной серии. Подпишитесь на наш канал YouTube, чтобы смотреть все наши подкасты, интервью, демонстрации и многое другое. ПОДПИСАТЬСЯ Группа, созданная в Sketch. Адетокунбо Иге — технолог Andela, частного глобального рынка талантов. Опытный инженер по платформам и сертифицированный ведущий специалист по обеспечению непрерывности бизнеса по стандарту ISO 22301, он обладает богатым опытом в разработке программного обеспечения, управлении корпоративными приложениями, серверной инфраструктуре… Подробнее от Адетокунбо Иге

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *