Модуль managed-memcached упрощает развертывание и управление Memcached инстансами в Deckhouse Kubernetes Platform (DKP). Он предоставляет:
- Автоматическое развертывание — развертывание Memcached-инстансов при помощи простой YAML-конфигурации;
- Высокая доступность — поддержка как одиночных (Standalone), так и групповых (Group) развертываний;
- Управление конфигурацией — гибкая настройка с валидацией и ограничениями через MemcachedClass;
- Управление ресурсами — автоматическое распределение ресурсов и масштабирование;
- Мониторинг — встроенное отслеживание состояния инстанса и мониторинг самого сервера Memcached;
- Безопасность — distroless-образы и применение паттернов безопасной разработки;
- Валидация — CEL-правила для проверки конфигурации.
Подробнее с настройками модуля и примерами его использования можно ознакомиться в соответствующем разделе документации.
Архитектура модуля
Для упрощения схемы приняты следующие допущения:
- На схеме показано, что контейнеры разных подов взаимодействуют друг с другом напрямую. Фактически они взаимодействуют через соответствующие сервисы Kubernetes (внутренние балансировщики). Названия сервисов не указываются, если они очевидны из контекста. В остальных случаях название сервиса указано над стрелкой.
- Поды могут быть запущены в нескольких репликах, однако на схеме все поды изображены в одной реплике.
Архитектура модуля managed-memcached на уровне 2 модели C4 и его взаимодействие с другими компонентами DKP изображена на следующей диаграмме:

Компоненты модуля
Модуль состоит из следующих компонентов:
-
Managed-memcached-operator — оператор Kubernetes, состоящий из одного контейнера manager и выполняющий следующие операции:
-
согласование состояния кастомных ресурсов Memcached во всех пользовательских неймспейсах. Ресурс Memcached определяет настройки инстанса Memcached, включая топологию размещения и тип развёртывания;
-
валидация кастомных ресурсов Memcached и MemcachedClass, мутация кастомных ресурсов Memcached с помощью механизма Validating/Mutating Admission Controllers.
-
-
d8ms-mc-<INSTANCE_NAME> (StatefulSet) — один или несколько инстансов Memcached в зависимости от типа развёртывания. Создаются компонентом managed-memcached-operator.
Состоит из одного контейнера:
- memcached — является Open Source-проектом.
Взаимодействия модуля
Модуль взаимодействует со следующими компонентами:
- Kube-apiserver — управляет кастомными ресурсами Memcached.
С модулем взаимодействуют следующие внешние компоненты:
-
Kube-apiserver — отправляет запросы на валидацию кастомных ресурсов Memcached и MemcachedClass, мутацию кастомных ресурсов Memcached.
-
Prometheus-main — собирает метрики инстансов Memcached.
-
Пользовательские приложения — отправляют запросы к инстансам Memcached.