Кеш LDAP (ldap-cache)

О сервисе

Параметр Значение
Системное название chart shturval-auth
Компонент sh-ldap-cache
Назначение в кластере Синхронизация данных пользователей и групп LDAP в Redis и HTTP API для просмотра, обновления и сброса кеша.
Критический Да, если используется LDAP-интеграция
Неймспейс shturval-backend

ldap-cache входит в Helm chart shturval-auth. Данные кеша использует backend API, а конфигурация LDAP связана с authn-server.

Содержание

  1. Обзор
  2. Архитектура
  3. Установка / развёртывание
  4. Диагностика
  5. Жизненный цикл
  6. Параметры сервиса

1. Обзор

Назначение: поддерживать быстрые ответы backend API на запросы к данным пользователей и групп каталогов за счёт фонового обновления кеша Redis и наблюдения конфигурации LDAP из Secret платформы. HTTP-уровень /cache/... обслуживает административные действия синхронизации и выборку списков.

Функции

Контур Назначение
User cache controller Фоновая синхронизация пользовательских записей в Redis пользователей.
Group cache controller Фоновая синхронизация групп в отдельный Redis.
HTTP API Gin Методы каталогового кеша: список, refresh, flush.
Watcher Secret ldap-config Обновляет конфигурацию подключений при изменении Secret.
Cron watcher через /cache/config.json Задаёт интервалы задач синхронизации при монтировании файла.

Сценарии инициации

Событие Инициатор Эффект
Старт службы pod Ready Создаются Redis-клиенты.
Auto refresh Локальное cron-расписание Синхронизируется набор данных из LDAP.
Manual refresh/list/flush backend API Данные обновляются или читаются немедленно.
LDAP Secret изменён Администратор Переинициализируются параметры источников.

Ограничения и следствия

Ограничение Следствие
HTTP слушает только :8083 Порт нельзя сменить без совместимого изменения поставки.
CORS всегда AllowAllOrigins Учитывайте сетевую поверхность сервиса.
Обязательны оба Redis для пользователей и групп Отсутствие Redis блокирует старт.
Файл /cache/config.json нужен для динамического cron Проверьте mount, если расписание должно отличаться от defaults.

Место в цепочке управления

Backend API обращается к HTTP endpoint сервиса при сценариях, где нужна выборка кешируемых сущностей каталогов. Параллельно authn-server использует конфигурацию каталогов из Secret для login-flow.

Ключевые характеристики

Характеристика Значение
Бинарь sh-ldap-cache
Порт процесса 0.0.0.0:8083
Объекты установки Helm helm/auth/templates/dep-ldap-cache.yaml, Service svc-ldap-cache
Хранилища Два отдельно настраиваемых Redis: users и groups

2. Архитектура

Компонент Роль
sh-ldap-cache Процесс Gin и два фоновых cache controller: users и groups.
Redis users / groups Раздельное хранение пользовательского и группового кеша.
Secret watcher Получение и обновление Secret ldap-config.
Cron config Параметры времени задач синхронизации.

3. Установка / развёртывание

Сервис поставляется chart shturval-auth. Параметры LDAP, Redis и расписания синхронизации меняются через ShturvalServicePatch (SSP) для SSC shturval-auth.

4. Диагностика

kubectl get svc -n "${NAMESPACE}"
kubectl get pods -n "${NAMESPACE}" -o wide
kubectl logs -n "${NAMESPACE}" deployment/DEPLOYMENT_LDAP_CACHE --tail=200

Подставьте имя Deployment и NAMESPACE по фактическому Helm-релизу.

Симптом Причина Действие
Pod уходит в CrashLoop до readiness Недоступен Redis Проверить USER_STORE_ADDR, GROUP_STORE_ADDR и сетевую связность.
Кеш давно stale Недоступен cron-файл или ошибка расписания Восстановить mount /cache/config.json.
Изменения LDAP Secret не попали в сервис Watcher застрял или RBAC недоступен Проверить права службы и события pod.

5. Жизненный цикл

Шаг Участник Результат
1 Процесс создаёт Redis-хранилища Ошибка подключения приводит к перезапуску pod.
2 Watcher Secret Настраивает LDAP-параметры для контроллеров кеша.
3 Cache controller Поддерживает фоновые задачи синхронизации.
4 HTTP-слой Обслуживает запросы backend и операторских инструментов.

Stateful reconcile операторских CR не выполняется.

6. Параметры сервиса

Переменная Назначение
USER_STORE_ADDR, GROUP_STORE_ADDR Координаты Redis.
USER_STORE_DB_INDEX, GROUP_STORE_DB_INDEX Индекс логической БД Redis.
USER_STORE_PASSWD, GROUP_STORE_PASSWD Пароль клиента Redis.
STORE_MASTER, SENTINEL_PASSWD Sentinel topology.
CACHE_SCAN_SIZE, CACHE_MAX_CONCURRENT_WORKERS Параметры сканирования кеша и параллелизма LDAP-запросов.
LDAP_REQUEST_PAGE_SIZE, LDAP_REQUEST_TIMEOUT_SEC Поведение LDAP-запросов.
POD_NAMESPACE Namespace pod.

Содержимое Secret ldap-config и поля config.json определяет DN, TLS и конкретные параметры подключения к каталогу.