K8s "Nginx ingress controller" создает меньшее количество соединений, чем требуется - PullRequest
0 голосов
/ 26 января 2020

Я использую «nginx -ingress-controller» для использования метрик «активных соединений» в моем HPA. Но Nginx ingress создает несколько соединений для обработки большого количества пользователей. enter image description here enter image description here Я новичок во Nginx входе, поэтому не знаю, ожидаемое ли это поведение. Я ожидал, что «активные соединения» должны приблизиться к числу одновременных пользователей. Теперь из-за меньшего количества подключений мое приложение не масштабируется.

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: ggs-hpa
  spec:
   minReplicas: 1
   maxReplicas: 10
   metrics:
   - type: External
     external:
       metricName: custom.googleapis.com|nginx-ingress-controller|nginx_connnections
       targetAverageValue: 6
   scaleTargetRef:
     apiVersion: apps/v1
     kind: Deployment
     name: ggs

Я использую JMeter для создания этих пользователей, и мое развертывание находится в кластере GKE. Я использую настройку по умолчанию 'nginx -ingress-controller', никаких настроек в Nginx config.

Может кто-нибудь помочь мне разобраться в этом поведении соединений? Спасибо.

1 Ответ

0 голосов
/ 10 апреля 2020

Извините, я пропустил, чтобы опубликовать решение проблемы. Я не использовал 'nodeSelector', поэтому у узла nginx модуля было несколько модулей, и для этих модулей также требовалось большое количество подключений, а для узла было ограниченное количество подключений и портов (даже после увеличения его путем настройки linux настроек) .

Решение. Поэтому я создал метки для узлов и использовал эти метки в своем nodeSelector для управления развертыванием приложения. Ярлыки, которые я создал -

  • вход
  • мониторинг
  • геокодирование (мое приложение)
  • тестирование

Теперь все работает нормально.

...