The managed-memcached module simplifies the deployment and management of Memcached instances in Deckhouse Kubernetes Platform (DKP). It provides:
- Automated Deployment: Deploy Memcached instances with a simple YAML configuration.
- High Availability: Support for both standalone (Standalone) and group (Group) deployments.
- Configuration Management: Flexible configuration with validation and constraints through MemcachedClass.
- Resource Management: Automatic resource allocation and scaling.
- Monitoring: Built-in status tracking and health monitoring.
- Security: Distroless images and proper RBAC configuration.
- Validation: CEL rules for configuration validation.
For more details about module settings and usage examples, refer to the module documentation.
Module architecture
The following assumptions are used to simplify the diagram:
- The diagram shows direct communication between containers in different Pods. In practice, components communicate through Kubernetes Services (internal load balancers). Service names are omitted when obvious from context. In other cases, a service name is shown above the arrow.
- Pods can run with multiple replicas, but only one replica per Pod is shown in the diagram.
The level-2 C4 architecture of the managed-memcached module and its interactions with other components of DKP are shown in the following diagram:

Module components
The module consists of the following components:
-
Managed-memcached-operator: Kubernetes operator consisting of a single container manager that performs the following operations:
-
It reconciles Memcached custom resources in all user namespaces. The Memcached resource defines the settings of the Memcached instance, including the topology and the deployment type.
-
It performs Memcached and MemcachedClass custom resources validation, as well as Memcached custom resources mutation using the Validating/Mutating Admission Controllers mechanism.
-
-
d8ms-mc-<INSTANCE_NAME> (StatefulSet): One or more Memcached instances, depending on the deployment type. They are created by the managed-memcached-operator component.
It consists of a single container:
- memcached: It is an open-source project.
Module interactions
The module interacts with the following components:
- Kube-apiserver: Manages Memcached custom resources.
The following external components interact with the module:
-
Kube-apiserver: Validates Memcached and MemcachedClass custom resources, mutates Memcached custom resources.
-
Prometheus-main: Collects Memcached instances metrics.
-
User applications: Sends requests to the Memcached instances.