Skip to content

Commit 6caa99d

Browse files
committed
Readd memcached props and update guide
Signed-off-by: relusc <rene.schach_ext@external.mail.schwarz>
1 parent 8355d78 commit 6caa99d

File tree

11 files changed

+75
-34
lines changed

11 files changed

+75
-34
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -375,6 +375,10 @@ Kubernetes: `^1.19.0-0`
375375
| ingress.&ZeroWidthSpace;tls | list | `[]` | |
376376
| memberlist.&ZeroWidthSpace;service.&ZeroWidthSpace;annotations | object | `{}` | |
377377
| memberlist.&ZeroWidthSpace;service.&ZeroWidthSpace;labels | object | `{}` | |
378+
| memcached-blocks | object | `{}` | |
379+
| memcached-blocks-index | object | `{}` | |
380+
| memcached-blocks-metadata | object | `{}` | |
381+
| memcached-frontend | object | `{}` | Memcached properties External installations of memcached can be referenced here |
378382
| nginx.&ZeroWidthSpace;affinity | object | `{}` | |
379383
| nginx.&ZeroWidthSpace;annotations | object | `{}` | |
380384
| nginx.&ZeroWidthSpace;autoscaling.&ZeroWidthSpace;behavior | object | `{}` | Ref: https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-configurable-scaling-behavior |

docs/guides/configure_memcached.markdown

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -17,42 +17,27 @@ has_toc: false
1717
---
1818
# Configuring memcached as the caching store
1919

20-
Correctly configuring memcached for your needs is a very delicate task. But courtesy of [@thobianchi](https://github.com/thobianchi) this might be a good start.
20+
If you want to use [memcached](https://memcached.org/) as a caching store, you first have to deploy it separately (e.g. via separate helm chart). The existing deployments can be referenced in the `values.yaml` so that they are used as caching stores.
21+
22+
Here's how to configure the memcached's via the values:
2123

2224
{% raw %}
2325
```yaml
24-
index_cache:
25-
backend: memcached
26-
memcached:
27-
addresses: 'dns+{{ include "cortex.fullname" $ }}-memcached-blocks-index:11211'
28-
timeout: 300ms
29-
max_idle_connections: 750
30-
max_async_concurrency: 100
31-
max_async_buffer_size: 10000000
32-
max_get_multi_concurrency: 750
33-
max_get_multi_batch_size: 1000
34-
max_item_size: 16777216
35-
chunks_cache:
36-
backend: memcached
37-
memcached:
38-
addresses: 'dns+{{ include "cortex.fullname" $ }}-memcached-blocks:11211'
39-
timeout: 300ms
40-
max_idle_connections: 750
41-
max_async_concurrency: 100
42-
max_async_buffer_size: 10000000
43-
max_get_multi_concurrency: 750
44-
max_get_multi_batch_size: 1000
45-
max_item_size: 33554432
46-
metadata_cache:
47-
backend: memcached
48-
memcached:
49-
addresses: 'dns+{{ include "cortex.fullname" $ }}-blocks-metadata:11211'
50-
timeout: 300ms
51-
max_idle_connections: 750
52-
max_async_concurrency: 100
53-
max_async_buffer_size: 10000000
54-
max_get_multi_concurrency: 750
55-
max_get_multi_batch_size: 1000
56-
max_item_size: 16777216
26+
memcached-frontend:
27+
# reference pre-existing service here
28+
serviceName: cortex-memcached-frontend
29+
containerPort: 11211
30+
31+
memcached-blocks-index:
32+
serviceName: cortex-memcached-blocks-index
33+
containerPort: 11211
34+
35+
memcached-blocks:
36+
serviceName: cortex-memcached-blocks
37+
containerPort: 11211
38+
39+
memcached-blocks-metadata:
40+
serviceName: cortex-memcached-blocks-metadata
41+
containerPort: 11211
5742
```
5843
{% endraw %}

templates/_helpers.tpl

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,33 @@ app.kubernetes.io/name: {{ include "cortex.name" . }}
8181
app.kubernetes.io/instance: {{ .Release.Name }}
8282
{{- end }}
8383

84+
{{/*
85+
Create configuration parameters for memcached configuration
86+
*/}}
87+
{{- define "cortex.memcached" -}}
88+
{{- if index .Values "memcached-blocks-index" "serviceName" }}
89+
- "-blocks-storage.bucket-store.index-cache.backend=memcached"
90+
- "-blocks-storage.bucket-store.index-cache.memcached.addresses=dns+{{ .memcached-blocks-index.serviceName }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ memcached-blocks-index.containerPort }}"
91+
{{- end -}}
92+
{{- if index .Values "memcached-blocks" "serviceName" }}
93+
- "-blocks-storage.bucket-store.chunks-cache.backend=memcached"
94+
- "-blocks-storage.bucket-store.chunks-cache.memcached.addresses=dns+{{ .memcached-blocks.serviceName }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ memcached-blocks.containerPort }}"
95+
{{- end -}}
96+
{{- if index .Values "memcached-blocks-metadata" "serviceName" }}
97+
- "-blocks-storage.bucket-store.metadata-cache.backend=memcached"
98+
- "-blocks-storage.bucket-store.metadata-cache.memcached.addresses=dns+{{ .memcached-blocks-metadata.serviceName }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ memcached-blocks-metadata.containerPort }}"
99+
{{- end -}}
100+
{{- end -}}
101+
102+
{{/*
103+
Create configuration for frontend memcached configuration
104+
*/}}
105+
{{- define "cortex.frontend-memcached" -}}
106+
{{- if index .Values "memcached-frontend" "serviceName" }}
107+
- "-frontend.memcached.addresses=dns+{{ .memcached-frontend.serviceName }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ memcached-frontend.containerPort }}"
108+
{{- end -}}
109+
{{- end -}}
110+
84111
{{/*
85112
Determine the policy api version
86113
*/}}

templates/compactor/compactor-statefulset.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,7 @@ spec:
107107
args:
108108
- "-target=compactor"
109109
- "-config.file=/etc/cortex/cortex.yaml"
110+
{{- include "cortex.memcached" . | nindent 12}}
110111
{{- range $key, $value := .Values.compactor.extraArgs }}
111112
- "-{{ $key }}={{ $value }}"
112113
{{- end }}

templates/ingester/ingester-dep.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ spec:
5454
args:
5555
- "-target=ingester"
5656
- "-config.file=/etc/cortex/cortex.yaml"
57+
{{- include "cortex.memcached" . | nindent 12}}
5758
{{- range $key, $value := .Values.ingester.extraArgs }}
5859
- "-{{ $key }}={{ $value }}"
5960
{{- end }}

templates/ingester/ingester-statefulset.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ spec:
110110
args:
111111
- "-target=ingester"
112112
- "-config.file=/etc/cortex/cortex.yaml"
113+
{{- include "cortex.memcached" . | nindent 12}}
113114
{{- range $key, $value := .Values.ingester.extraArgs }}
114115
- "-{{ $key }}={{ $value }}"
115116
{{- end }}

templates/querier/querier-dep.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ spec:
5858
{{- if and .Values.query_frontend.enabled (not .Values.query_scheduler.enabled) }}
5959
- "-querier.frontend-address={{ template "cortex.queryFrontendFullname" . }}-headless.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ .Values.config.server.grpc_listen_port }}"
6060
{{- end }}
61+
{{- include "cortex.memcached" . | nindent 12}}
6162
{{- range $key, $value := .Values.querier.extraArgs }}
6263
- "-{{ $key }}={{ $value }}"
6364
{{- end }}

templates/query-frontend/query-frontend-dep.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ spec:
5050
args:
5151
- "-target=query-frontend"
5252
- "-config.file=/etc/cortex/cortex.yaml"
53+
{{- include "cortex.frontend-memcached" . | nindent 12 }}
5354
{{- if .Values.query_scheduler.enabled }}
5455
- "-frontend.scheduler-address={{ template "cortex.querySchedulerFullname" . }}-headless.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ .Values.config.server.grpc_listen_port }}"
5556
{{- end }}

templates/ruler/ruler-dep.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ spec:
112112
- "-ruler.alertmanager-url=http://{{ template "cortex.alertmanagerFullname" . }}.{{ .Release.Namespace }}.svc.{{ .Values.clusterDomain }}:{{ .Values.config.server.http_listen_port }}/api/prom/alertmanager/"
113113
{{- end }}
114114
{{- end }}
115+
{{- include "cortex.memcached" . | nindent 12}}
115116
{{- range $key, $value := .Values.ruler.extraArgs }}
116117
- "-{{ $key }}={{ $value }}"
117118
{{- end }}

templates/store-gateway/store-gateway-statefulset.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ spec:
110110
args:
111111
- "-target=store-gateway"
112112
- "-config.file=/etc/cortex/cortex.yaml"
113+
{{- include "cortex.memcached" . | nindent 12}}
113114
{{- range $key, $value := .Values.store_gateway.extraArgs }}
114115
- "-{{ $key }}={{ $value }}"
115116
{{- end }}

0 commit comments

Comments
 (0)