Кэширование в kubernetes

#node.js #docker #express #kubernetes

#node.js #docker #экспресс #kubernetes

Вопрос:

У меня есть приложение NodeJS, развернутое как контейнер docker, и я использую Kubernetes для оркестровки. Балансировка нагрузки выполняется Kubernetes по умолчанию.

Я хочу реализовать кэширование для приложения.

Мой вопрос: можно ли настроить прокси-сервер балансировки нагрузки Kubernetes для обработки кэширования?

PS: Если нет, то, пожалуйста, предложите, как лучше всего обрабатывать кэширование в среде Kubernetes-Docker.

Спасибо

Ответ №1:

Прокси не используется для кэширования веб-страниц, для кэширования веб-контента используется кэш-сервер (Redis Memcached). Задача прокси-сервера — перенаправлять запросы, а у LoadBalancer есть алгоритмы, которым он следует для маршрутизации трафика, например, RoundRobin и т. Д.

Для этого вам необходимо добавить сервер кэша в свой стек приложений в виде развертывания с сохраняемым хранилищем (в зависимости от ваших потребностей).

Комментарии:

1. Helm может значительно упростить это для вас. Вы можете быстро просмотреть эту диаграмму для Redis и посмотреть здесь для Memached.

2. здесь говорится об использовании обратного прокси для кэширования, а также балансировки нагрузки (последний абзац) ….. expressjs.com/en/advanced /…

3. Балансировка нагрузки собственного сервисного объекта Kubernetes не поддерживает кэширование и т. Д. Точно так же, как обратные прокси с открытым исходным кодом, такие как Nginx или HAProxy. Вы можете использовать безголовый сервис (пример nginx (здесь ) [ nginx.com/blog/load-balancing-kubernetes-services-nginx-plus /] ) для этого. Это позволит обойти DNS-сервер kube-proxy, подключенный к сервису.

4. Итак, есть два решения для кэширования в Docker-Настройка Kubernetes: либо использовать сервер кэширования, либо использовать Nginx, который может обрабатывать оба (кэширование, а также балансировку нагрузки)??

5. В зависимости от потребностей бизнеса, какой тип кэширования требуется. Если вам нужно кэширование сеанса или запросов к базе данных, например, в случае wordpress magento, Redis может звучать неплохо. Если вам нужен минимальный полностраничный кэш и т. Д., Вам могут подойти такие сервисы, как FastCGI cache.