Обзор

Развертывание YDB в Kubernetes — это простой и доступный способ установки YDB. С Kubernetes вы можете использовать универсальный подход к управлению приложением в любом облачном провайдере. Это руководство содержит инструкции для развертывания YDB в Yandex Managed Service for Kubernetes и AWS EKS.

YDB поставляется в виде Helm-чарта — пакета, который содержит шаблоны структур Kubernetes. Чарт может быть развернут в следующем окружении:

  1. Установлен менеджер пакетов Helm версии старше 3.1.0.
  2. Используется Kubernetes версии 1.20 и старше.
  3. Установлена утилита kubectl и настроен доступ к кластеру.
  4. Поддерживается динамическое предоставление томов в кластере (Dynamic Volume Provisioning).

Подробнее о Helm читайте в документации.

Helm-чарт устанавливает в кластер Kubernetes контроллер, который реализует необходимую логику для развертывания компонентов YDB. Контроллер построен по паттерну Оператор.

YDB состоит из двух компонентов:

  • storage nodes — обеспечивают слой хранения данных;
  • dynamic nodes — реализуют доступ к данным и их обработку.

Для развертывания каждого из компонентов достаточно создать соответствующий ресурс: Storage или Database с желаемыми параметрами. Со схемой ресурсов можно ознакомиться здесь.

После обработки чарта контроллером будут созданы следующие ресурсы:

  • StatefulSet — контроллер рабочей нагрузки, который предоставляет предсказуемые сетевые имена и дисковые ресурсы для каждого контейнера.
  • Service для доступа к созданным базам данных из приложений.
  • ConfigMap для хранения конфигурации кластера.

Ознакомиться с исходным кодом контроллера можно здесь, Helm-чарт расположен в папке deploy.
При разворачивании контейнеров YDB используются образы cr.yandex/yc/ydb, на данный момент доступные только как предсобранные артефакты.