Сервис Kubernetes неправильно балансирует нагрузку под нагрузкой - PullRequest
0 голосов
/ 07 мая 2020

У нас возникают проблемы при выполнении импорта в нашей системе. У него есть модуль с 6 репликами, который вызывает службу, поддерживаемую модулем с 5 репликами. Тем не менее, наши метрики показывают, что под нагрузкой запрос получает только один из 5 модулей. Мы используем службу ClusterIP для «маршрутизации» звонков.

Мы нашли это , точнее этот пост , но неясно, о каких проблемах он сообщает предназначены только для долгоживущих соединений.

Мы отключили пул подключений, и мы все еще сталкиваемся с этим несбалансированным поведением под нагрузкой.

У нас заканчиваются альтернативы, поэтому вот мой вопрос: это известное поведение (ограничение?) с услугами k8s, которые у нас есть? Это где-то задокументировано?

PS: эта служба доступна только изнутри кластера. PS2: определение услуги

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: "2019-05-16T16:29:46Z"
  name: my-service
  namespace: my-ns
  .....
spec:
  clusterIP: <MyIp>
  ports:
  - port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    app: <my-selector>
  sessionAffinity: None
  type: ClusterIP
status:
  loadBalancer: {}

1 Ответ

1 голос
/ 14 мая 2020

Я нашел ответ. Я развернул приложение, которое будет вызывать конечную точку через службу и возвращать ответивший узел. Я заметил, что в течение периода времени около 30 секунд отвечал только тот же узел, затем он переключался на другой узел на другой период времени, а затем обратно. Это кажется странным, но похоже на поведение службы балансировки нагрузки. В конце концов, у вас будет сбалансированная нагрузка, если у вас будет постоянное количество запросов. В нашем профиле запросов за короткое время появлялись "пачки" запросов, поэтому мы получили несбалансированную нагрузку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...