Обзор

    Развертывание 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, на данный момент доступные только как предсобранные артефакты.