Index
Документация по установке и использованию Redis HA кластера через Opstree Redis Operator.
Оглавление
Описание
Opstree Redis Operator - Kubernetes оператор для управления Redis кластерами с поддержкой HA режима.
Возможности
- ✅ HA Redis Cluster режим
- ✅ Автоматическое управление кластером
- ✅ Мониторинг через Redis Exporter
- ✅ Persistent storage
- ✅ Автоматическое масштабирование
Текущая конфигурация
- Operator namespace:
tech-redis-operator - Clusters namespace:
tech-redis-clusters - Storage: Longhorn (15Gi per pod, StorageClass:
longhorn-redis) - Placement: Operator и Redis поды могут размещаться на любых нодах (masters + workers)
- Cluster size: 3 поды (минимальный HA кластер)
Быстрый старт
1. Подготовка нод
Подготовка нод выполняется автоматически через Ansible playbook:
1 | |
Это добавит:
- На master нодах: label node-role.kubernetes.io/control-plane=true и taint node-role.kubernetes.io/control-plane:NoSchedule
- На worker нодах: label node-role.kubernetes.io/worker=true
2. Установка Operator
1 2 | |
Это установит Opstree Redis Operator через Helm chart из официального репозитория.
3. Создание секрета с паролем для redis-cluster
Кластер использует существующий Secret с ключом password.
Вариант A: через Makefile (интерактивно)
1 | |
Вариант B: вручную через kubectl
1 2 | |
Или через YAML манифест:
1 2 3 4 5 6 7 8 | |
Важно:
- Secret должен быть в namespace tech-redis-clusters
- Имя Secret должно совпадать с spec.secret.name в RedisCluster (по умолчанию redis-cluster-secret)
- Секрет должен содержать ключ password с паролем
4. Создание кластера
1 | |
Это создаст:
- StorageClass longhorn-redis
- Redis кластер redis-cluster с 3 подами
5. Проверка статуса
1 | |
Архитектура
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Команды
Управление
1 2 3 4 5 6 7 8 9 | |
Справка
1 | |
Конфигурация
Operator
Оператор устанавливается через Helm chart из официального репозитория:
- Helm chart: ot-helm/redis-operator версия 0.19.0
- Helm repository: https://ot-container-kit.github.io/helm-charts/
- CRDs устанавливаются автоматически при установке Helm chart
- ServiceAccount, Role, RoleBinding создаются автоматически
Кластер redis-cluster
Конфигурация в manifests/redis-operator/redis-cluster.yaml:
- Cluster size: 3 поды (минимальный HA кластер)
- Image:
quay.io/opstree/redis:v7.2.3 - Password: Настраивается через Secret
redis-cluster-secretс ключомpassword - Storage: 15Gi per pod (Longhorn, StorageClass:
longhorn-redis) - Resources: 250m-1 CPU, 512Mi-2Gi RAM
- Redis Exporter: Enabled для мониторинга
- Node placement: Любые ноды (masters + workers)
- Pod anti-affinity: Разные ноды по
kubernetes.io/hostname
StorageClass
StorageClass longhorn-redis создается автоматически при создании кластера:
- Provisioner: driver.longhorn.io
- Replicas: 1
- Reclaim policy: Delete
- Volume binding: Immediate
Подключение
Connection Strings
1 2 3 4 5 | |
Подключение через kubectl exec
1 2 3 4 5 6 7 8 9 10 11 12 | |
Подключение из приложения
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
Примечание: Для production рекомендуется использовать Kubernetes Secrets для передачи пароля в приложение через переменные окружения или mounted volumes.
Troubleshooting
Проверка статуса оператора
1 2 | |
Проверка статуса кластера
1 2 3 4 5 6 7 8 | |
Проверка кластера Redis
1 2 3 4 5 6 7 | |
Проблемы с PVC
1 2 3 4 5 | |
Пересоздание кластера
1 2 3 4 5 | |
RedisInsight UI
RedisInsight - официальный GUI инструмент от Redis для управления и мониторинга Redis кластеров.
Установка
1 | |
Доступ
1 2 3 4 5 | |
Подключение к кластеру в RedisInsight
- Откройте RedisInsight в браузере (http://localhost:5540)
- Нажмите "Add Redis Database"
- Выберите "Redis Cluster"
- Введите параметры подключения:
- Hosts:
redis-cluster-leader.tech-redis-clusters.svc.cluster.local:6379 - Password: (получите из секрета):
1kubectl -n tech-redis-clusters get secret redis-cluster-secret -o jsonpath='{.data.password}' | base64 -d - Нажмите "Add Redis Database"
Примечание: Сервис redis-cluster-leader автоматически балансирует запросы между всеми leader подами кластера, поэтому достаточно указать один хост. Redis Cluster протокол автоматически получит информацию о топологии кластера.
Дополнительные ресурсы
- Opstree Redis Operator Documentation
- Opstree Redis Operator GitHub
- Redis Cluster Tutorial
- RedisInsight Documentation