Аварийное восстановление в системе Kubernetes: лучшие практики и решения

Опубликовано: 15 Апреля, 2023
Аварийное восстановление в системе Kubernetes: лучшие практики и решения

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

Каждое критически важное приложение должно иметь надежную стратегию аварийного восстановления. Чтобы обеспечить высокую доступность любого приложения, очень важно обеспечить сохранение резервных копий и максимально быстрое восстановление. Бедствием может быть человеческая ошибка, кибератака, стихийное бедствие или сбой. Оцифровка не устраняет риск потери данных приложения. Приложения на основе Kubernetes по-прежнему уязвимы. Однако резервное копирование и восстановление рабочих нагрузок с множеством контейнеров может быть чрезвычайно сложным. Давайте рассмотрим некоторые рекомендации по аварийному восстановлению.

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

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

1. Потратьте достаточно времени на изучение ваших требований к резервному копированию

Резервное копирование может быть затруднено традиционными монолитными рабочими нагрузками. Однако резервное копирование базовых приложений Kubernetes — это совсем другое дело. С таким количеством компонентов (кластеры, модули, контейнеры и т. д.) создание резервных копий может быть адом. Организации должны потратить время на изучение наилучшего подхода к резервному копированию. Резервные копии могут быть созданы вручную или автоматизированы. Для ручного резервного копирования разработчики могут легко получить обширную документацию о том, как создавать резервные копии и или как писать сценарии резервного копирования. Чтобы автоматизировать весь процесс, организации могут инвестировать в решения, которые помогут облегчить это бремя. К счастью, на рынке доступны сотни решений для резервного копирования Kubernetes.

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

2. Имейте план восстановления

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

3. Резервное копирование с учетом приложений

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

4. Безопасность превыше всего

Нам нужно защитить наши резервные копии от любых злоумышленников. Организации могут совершить ошибку, ослабив безопасность резервного копирования. Однако ваше приложение так же безопасно, как и ваша резервная копия. Чтобы избежать несанкционированного доступа к резервным копиям, организациям следует использовать управление доступом к удостоверениям (IAM) или управление доступом на основе ролей (RBAC). Права доступа должны быть предоставлены только участникам, назначенным для мониторинга или проверки резервных копий. Еще одна важная мера, которую можно предпринять для сдерживания любых атак, — шифрование данных. Организации могут инвестировать в решение для аварийного восстановления, которое позаботится о безопасности резервного копирования.

Лучшие решения для резервного копирования Kubernetes

Давайте взглянем на некоторые популярные решения Kubernetes для аварийного восстановления, доступные на рынке.

1. TrilioVault от Trilio

TrilioVault позволяет организациям создавать независимые от платформы резервные копии, которые можно восстановить одним щелчком мыши. Схема резервного копирования содержит данные приложения, а также конфигурации и объекты Kubernetes, обеспечивая быстрое резервное копирование и восстановление. В зависимости от требований вашей организации вы можете запланировать добавочное резервное копирование или резервное копирование на основе политик. TrilioVaults также позволяет пользователям выборочно восстанавливать компоненты приложения, чтобы сэкономить время, когда полное восстановление не требуется. TrilioVault использует API-интерфейсы K8s и структуру интерфейса хранилища контейнеров для беспрепятственного управления и развертывания резервного копирования и восстановления. TrilioVault также позволяет отслеживать резервные копии с помощью инструментов мониторинга и ведения журнала, таких как Prometheus и Grafana.

2. Portworx от Pure Storage

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

3. Парусник

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

Аварийное восстановление в системе Kubernetes: делайте это правильно

Аварийное восстановление Kubernetes — непростая задача. Резервное копирование рабочих нагрузок Kubernetes традиционным способом невозможно. Единственный правильный способ резервного копирования ваших рабочих нагрузок Kubernetes — это создание облачных резервных копий с учетом приложений, которые не мешают вам перейти на новую инфраструктуру. Резервное копирование и восстановление вручную возможно, и на форумах доступно множество документации, которую организации могут использовать для эффективного аварийного восстановления вручную. Однако при больших рабочих нагрузках ручное резервное копирование данных приложения и перенастройка различных компонентов во время восстановления может стать сложной задачей. Имея в своем распоряжении несколько решений для аварийного восстановления, все, что вам нужно сделать, это определить свои конкретные требования и выбрать инструмент, который лучше всего подходит для вас. По сути, эти решения для аварийного восстановления расширяют самую известную функцию Kubernetes — переносимость данных.