Я использую диаграмма штурвала mcrouter для настройки mcrouter на GKE. Для моей установки я хотел бы иметь выделенный пул узлов для memcached statefulset и демон для mcrouter.
Я создание пула узлов с заражением, использующим флаг --node-taints
. Чтобы гарантировать, что набор состояний memcached может работать в этом пуле узлов, мне нужно указать tolerations
, как описано в https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/.
Как указать толерантность? В настоящее время я создаю свою настройку с помощью helm следующим образом:
helm install stable/mcrouter --name=mycache --set memcached.replicaCount=15 --set memcached.resources.requests.memory=10Gi --set memcached.resources.requests.cpu=2 --set resources.requests.memory=512Mi --set resources.requests.cpu=1.5 --set resources.limits.memory=512Mi --set resources.limits.cpu=2 --set memcached.memcached.maxItemMemory=8432
Таблица руля его не поддерживает.
После создания DaemonSet вы можете исправить его. Например (измените терпимость на любую, какую хотите):
$ kubectl patch daemonset mycache-mcrouter -p='{"spec":{"template": {"spec": {"tolerations": [{"key": "key1", "operator": "Equal", "value": "value1", "effect": "NoSchedule"}]}}}}'
Вы также можете апстримить изменение, чтобы поддержать допуски. Вам нужно будет добавить переменные в файл values.yaml
(https://github.com/helm/charts/blob/master/stable/mcrouter/values.yaml), а затем при желании использовать их в шаблоне daemonset.yaml
.
Вероятно, вам нужно добавить условие вроде {{- if eq .Values.tolerations "enabled" }} .... {{- end }}
в spec.template.spec
Спасибо, исправление должно помочь. Но просто любопытно, что бы нужно было изменить в daemonset.yaml? Я думал, что изменение этого параметра повлияет на mcrouter, а не на набор состояний memcached.