Я использую кластер k8s в GKE и использовал их пошаговое руководство по созданию конфигурации McRouter с memcached. Изначально мы использовали хранилища ключей консула, но наш кеш слишком велик и заставляет консула использовать слишком много памяти, поэтому мы решили проверить memcache на его месте. Я раскручиваю демон-демон mcrouter и у меня есть один модуль memcache, и все работает просто отлично. Это когда я добавил несколько тестовых ключей. Они получают и удаляют в порядке. Проблема возникает, когда я оставляю ключи на месте и в масштабе.
Я масштабирую набор состояний memcache и добавляю имя второго сервера в конфигурационную карту для mcrouter. Как только я вижу новый сервер, использующий серверы статистики, я запускаю get, и один из ключей больше не существует. Я подключился к 11211 на исходном модуле memcache, запустил get и смог получить тот же ключ просто отлично. Конфигурация, представленная в configmap ниже:
{
"pools": {
"A": {
"servers": [
"memcached-0.memcached.default.svc.cluster.local:11211",
"memcached-1.memcached.default.svc.cluster.local:11211"
]
}
},
"route": "PoolRoute|A"
}
Я также перешел на использование набора состояний для mcrouter для ограничения только одним модулем, а также переключился на использование официального образа докера вместо того, который использовался в примере с шлемом k8s, и мне не повезло. Независимо от того, что я делаю, я продолжаю получать «не найденный» через mcrouter получить хотя бы одну клавишу после масштабирования, в то время как другие ключи все еще находятся в порядке. Помощь