Об этом проекте
Оператор RavenDB Kubernetes — это официальный инструмент для развертывания и управления кластерами RavenDB на Kubernetes. Он обеспечивает полностью автоматизированный декларативный подход, управляемый одним пользовательским ресурсом `RavenDBCluster`, гарантируя, что каждый компонент остается в соответствии с заявленной спецификацией для воспроизводимых развертываний.
**Методы установки**: Оператор поддерживает три подхода к установке: Helm (рекомендуется, с отдельными чартами для оператора и каждого кластера), `make deploy` для локальной разработки и тестирования, а также OLM-пакеты для кластеров, работающих с Operator Lifecycle Manager. Дистрибутив Helm разделен на два чарта: `ravendb-operator` (устанавливается один раз в кластере) и `ravendb-cluster` (устанавливается один раз на каждый кластер RavenDB в пространстве имен).
**Пользовательский ресурс**: CRD `RavenDBCluster` является единственным источником истины, определяющим топологию узлов, режим TLS (Let's Encrypt или самозаверяющие сертификаты), стратегию внешнего доступа, структуру хранилища, образы и поведение начальной загрузки. После применения оператор создает и управляет всеми нижележащими объектами Kubernetes, включая StatefulSets, Services, Ingresses, Jobs и PVCs.
**Ключевые особенности**:
- **Управление сертификатами и TLS**: Поддерживает режим Let's Encrypt с использованием встроенной поддержки RavenDB, самозаверяющие/собственные сертификаты, сертификаты для каждого узла из пакета настройки RavenDB, а также автоматическую ротацию секретов при обновлении сертификатов.
- **Начальная загрузка кластера**: Запускает короткоживущую задачу Kubernetes для ожидания готовности подов, проверки доступности HTTPS, регистрации клиентского сертификата ClusterAdmin и формирования кластера на основе объявленной топологии узлов.
- **Внешний доступ**: Поддерживает AWS Network Load Balancer (для каждого узла с явным сопоставлением EIP/подсети/зоны доступности), Azure Load Balancer, NGINX Ingress, HAProxy Ingress и Traefik Ingress.
- **Конфигурация хранилища**: Декларативная настройка томов данных, журналов и аудита с поддержкой local-path, AWS EBS/EBS-CSI, Azure Disk/Azure Disk CSI и дополнительных томов (ConfigMap, Secret, PVC, emptyDir).
- **Последовательные обновления**: Оркестрирует обновления узлов в порядке, заданном в спецификации, с защитными механизмами, останавливающими обновление при сбое и автоматически возобновляющими его после устранения проблем. Предотвращает случайные понижения версий.
- **Отчетность о состоянии и работоспособности**: Предоставляет фазу жизненного цикла (`Deploying`, `Running`, `Error`), подробные условия готовности, прогресса и проверок работоспособности, а также создает события Kubernetes при каждом изменении условий.
- **Поддержка разработки**: Локальное развертывание с помощью `make deploy`, проверяющие и изменяющие допускающие вебхуки, server-side apply и инкрементальные сверки.
**Предварительные требования**: Kubernetes 1.23+, kubectl, Helm, cert-manager, лицензия RavenDB, а также материалы для настройки Let's Encrypt или самозаверяющие сертификаты.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.