Клиентские приложения, размещенные в Kubernetes
Клиентские подключения из нескольких модулей pod
При наличии нескольких модулей pod, подключающихся к серверу Redis, убедитесь, что новые соединения из модулей pod созданы с учетом времени. Если несколько модулей pod начинаются в течение короткого срока без разнесения во времени, это приводит к резкому увеличению числа создаваемых клиентских подключений. Большое число подключений приводит к высокой нагрузке на сервер Redis и может привести к истечению времени ожидания.
Старайтесь не использовать тот же сценарий при одновременном завершении работы нескольких модулей pod. Сбой при завершении работы может привести к выделению чрезмерного количества подключений, что приведет к нехватке ресурсов ЦП.
Достаточные ресурсы pod
Убедитесь, что модуль pod, на котором работает клиентское приложение, получает достаточно ресурсов ЦП и памяти. Если клиентское приложение работает близко к пределам ресурсов, это может привести к превышению времени ожидания.
Достаточные ресурсы узла
Модуль pod, в котором работает клиентское приложение, может подвергаться воздействию других модулей pod, выполняемых в том же узле, и ограничивать подключения Redis или операции ввода-вывода. Поэтому всегда убеждайтесь, что на узле, на котором выполняется клиентское приложение, достаточно памяти, ресурсов ЦП и пропускной способности сети. Недостаток этих ресурсов может привести к проблемам с подключением.
Клиентские приложения, размещенные в Linux, и параметры TCP
Если кэш Azure для клиентского приложения Redis выполняется в контейнере под управлением Linux, рекомендуется обновить некоторые параметры TCP. Эти параметры подробно описаны в разделе Параметры TCP для клиентских приложений, размещенных в Linux.
Потенциальный конфликт подключений с Istio / Envoy
В настоящее время Кэш Azure для Redis использует порты 15xxx для кластеризованных кэшей для предоставления узлов кластера клиентским приложениям. Как описано здесь, те же порты также используются Istio.io прокси-сервер боковой коляски с именем Envoy и могут препятствовать созданию подключений, особенно на порте 15001 и 15006.
При использовании Istio с кластером Кэш Azure для Redis рекомендуется исключить потенциальные порты конфликтов с заметкой istio.
annotations:
traffic.sidecar.istio.io/excludeOutboundPorts: "15000,15001,15004,15006,15008,15009,15020"
Чтобы избежать помех с подключением, рекомендуется:
- Вместо этого рекомендуется использовать некластеризованный кэш или кэш уровня Enterprise.
- Избегайте настройки расширений Istio в модулях pod, выполняющих кэш Azure для клиентского кода Redis