This chart deploys the CacheServer distributed caching system for Kubernetes.
- CacheServer StatefulSet: Distributed cache servers that store data on local SSD storage
- CacheServer Scheduler: Custom Kubernetes scheduler that provides cache-aware pod placement
- Services: Headless service for StatefulSet DNS and discovery service for load balancing
helm install cache-server ./helm/cache-server -n cache-server --create-namespaceSee values.yaml for all configuration options.
| Parameter | Description | Default |
|---|---|---|
cacheServer.enabled |
Enable CacheServer deployment | true |
cacheServer.numServers |
Number of cache server replicas | 3 |
cacheServer.serverSizeInGB |
Size of cache per server in GB | 4 |
cacheServer.scheduler.enabled |
Enable custom scheduler | true |
cacheServer.useHostPath |
Use hostPath storage instead of PV/PVC | true |
cacheServer.enableTrafficControl |
Enable traffic control for bandwidth limiting | true |
cacheServer.egressBandwidthInGb |
Egress limit in Gbps; grants NET_ADMIN when traffic control is enabled |
unset |
cacheServer.nodeCacheFolderPath |
Host path for cache storage | /var/lib/ssd/cacheserver |
CacheServer uses Linux traffic control (tc) when
cacheServer.enableTrafficControl is true and
cacheServer.egressBandwidthInGb is set. Only in that configuration does the
chart grant the CacheServer container the NET_ADMIN capability. Leave the
bandwidth value unset when traffic control is not required. NET_ADMIN
expands the container's networking privileges, so production deployments
should enable it only after reviewing the workload threat model and cluster
network isolation.
The CacheServer uses a custom scheduler to ensure optimal pod placement across nodes. When scheduler.enabled is true:
- The scheduler watches for pods with
schedulerName: cacheserver-scheduler - It coordinates with existing cache servers to avoid placing multiple pods on the same node
- Supports scheduler coordination via ConfigMap for multi-instance deployments