Кеш LDAP (ldap-cache)

О сервисе

ПараметрЗначение
Системное название chartshturval-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/flushbackend 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
Объекты установки Helmhelm/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.
2Watcher SecretНастраивает LDAP-параметры для контроллеров кеша.
3Cache controllerПоддерживает фоновые задачи синхронизации.
4HTTP-слойОбслуживает запросы 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_PASSWDSentinel topology.
CACHE_SCAN_SIZE, CACHE_MAX_CONCURRENT_WORKERSПараметры сканирования кеша и параллелизма LDAP-запросов.
LDAP_REQUEST_PAGE_SIZE, LDAP_REQUEST_TIMEOUT_SECПоведение LDAP-запросов.
POD_NAMESPACENamespace pod.

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