Статьи

Начало работы с OpenEBS и облачным распределенным SQL

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

Поскольку YugabyteDB представляет собой облачную распределенную базу данных SQL, которая работает в средах Kubernetes, она может взаимодействовать с OpenEBS и многими другими проектами CNCF.

Что такое YugabyteDB?  Это высокопроизводительная распределенная база данных SQL с открытым исходным кодом, построенная на масштабируемой и отказоустойчивой конструкции, созданной по мотивам Google Spanner. SQL API (YSQL) Yugabyte совместим с PostgreSQL.

Почему OpenEBS и YugabyteDB?

YugabyteDB развернут как StatefulSet в Kubernetes и требует постоянного хранилища. OpenEBS можно использовать для резервного копирования локальных дисков YugabyteDB, что позволяет предоставлять большие постоянные тома. Вот несколько преимуществ использования OpenEBS в сочетании с кластером базы данных YugabyteDB:

  • Нет необходимости управлять локальными дисками, так как OpenEBS управляет ими
  • OpenEBS и YugabyteDB могут предоставлять постоянные тома большого размера
  • С помощью постоянных томов OpenEBS емкость может быть ограничена, а диски можно добавлять в OpenEBS на лету без прерывания обслуживания. Когда эта возможность объединяется с YugabyteDB, которая уже поддерживает многотабайтную плотность данных на узел, это может привести к значительной экономии средств при хранении.
  • И OpenEBS, и YugabyteDB поддерживают развертывание нескольких облаков, помогая организациям избежать облачной блокировки
  • OpenEBS и YugabyteDB интегрируются с другим проектом CNCF, Prometheus . Это облегчает мониторинг как хранилища, так и базы данных из одной системы.

Кроме того, OpenEBS может выполнять синхронную репликацию внутри географического региона. В сценарии, в котором YugabyteDB развернута по регионам, а узел в каком-либо одном регионе выходит из строя, YugaByteDB должен будет перестроить этот узел с данными из другого региона. Это повлечет за собой межрегиональный трафик, который является более дорогим и более низким по производительности. 

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

Дополнительные подробные описания вариантов использования с поддержкой OpenEBS можно найти здесь.

Предпосылки

Ниже приведена среда, которую мы будем использовать для запуска кластера YugabyteDB поверх кластера Google Kubernetes, интегрированного с OpenEBS CAS.

  1. YugabyteDB — версия 2.0.10
  2. OpenEBS — версия 1.6.
  3. Google Cloud Platform счет
  4. MayaData счет

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

Настройка кластера Kubernetes на облачной платформе Google

Чтобы развернуть YugabyteDB на облачной платформе Google (GCP), сначала нужно настроить кластер, используя Ubuntu в качестве образа базового узла. Обратите внимание, что ОС GKE Container-Optimized не поставляется с предварительно установленным клиентом iSCSI и не позволяет устанавливать клиент iSCSI. Поэтому OpenEBS не работает на кластерах Kubernetes, на которых на рабочих узлах выполняется версия образа GKE для контейнеров, оптимизированная для ОС.

Перейдите к Kubernetes Engine> Кластеры> Создать кластер .


Создайте стандартный кластер, используя параметры по умолчанию.


Убедитесь, что вы выбрали кнопку « Дополнительные параметры» в разделе « Пулы узлов», чтобы указать базовый образ Ubuntu и 2 локальных SSD-диска.


Подключитесь к Google Cloud Shell и убедитесь, что узлы настроены и работают с помощью команды:


Джава