Как службы Kubernetes уравновешивают внутреннюю нагрузку? - PullRequest
0 голосов
/ 03 марта 2019

Я получил следующую архитектуру:

     [Service]
    /    |    \
 [Pod1][Pod2][Pod3]

Мы утверждаем следующие IP-адреса Pod:

  • Pod 1: 192.168.0.1
  • Pod 2: 192.168.0.2
  • Pod 3: 192.168.0.3

Я выполняю цикл следующим образом:

for ((i=0;i<10000;i++)); do curl http://someUrlWhichRespondsWithPodIP >> curl.txt; done;

Это записывает IP-адреса pods 10000 раз.Я ожидал, что это будет круговая схема, но это не так.Файл выглядит примерно так:

192.168.0.1
192.168.0.1
192.168.0.3
192.168.0.2
192.168.0.3
192.168.0.1

Конфигурация службы выглядит следующим образом:

kind: Service
metadata:
  name: service
spec:
  type: NodePort
  selector:
    app: service
  ports:
  - name: web
    protocol: TCP
    port: 31001
    nodePort: 31001
    targetPort: 8080

Кто-нибудь имеет представление, какой тип внутренней балансировки нагрузки использует kubernets?

1 Ответ

0 голосов
/ 03 марта 2019

Возможно, вы используете режим по умолчанию iptables для kube-proxy, который использует iptables NAT в произвольном режиме для реализации балансировки нагрузки.Проверьте поддержку ipvs (https://kubernetes.io/docs/concepts/services-networking/service/#proxy-mode-ipvs) для большого количества других режимов, включая циклический перебор.

...