Какой алгоритм Kubernetes использует для перемещения трафика в репликасе / развертывании - PullRequest
1 голос
/ 07 апреля 2019

Меня спросили об этом, и я не смог найти информацию об этом в Интернете - Какой алгоритм Kubernetes использует для перемещения трафика в репликации или развертывании (я полагаю, что они одинаковы) для модулей?

Допустим, у меня есть реплика из 5 стручков в моем кластере Kubernetes, определенная в replicaset. Как кластер выбирает, к какому модулю перейти в новом запросе? Это использует Round-Robin? Я не смог найти информацию об этом.

1 Ответ

6 голосов
/ 08 апреля 2019

Алгоритм, применяемый для определения, какой модуль будет обрабатывать запрос, зависит от режима kube-proxy , который работает.

  • В версии 1.0 прокси-сервер работает в режиме, называемом пользовательским пространством, и по умолчанию используется алгоритм циклического перебора.

  • В режиме 1.2 был добавлен прокси iptables, но все еще используется циклический перебор из-за ограничений iptables.

  • В 1.8.0-бета был представлен IP Virtual Server (IPVS), он позволяет гораздо больше параметров алгоритмов, таких как:

    • RoundRobin;
  • LeastConnection;
  • WeightedLeastConnection;
  • LocalityBasedLeastConnection;
  • LocalityBasedLeastConnectionWithReplication;
  • SourceHashing;
  • DestinationHashing;
  • ShortestExpectedDelay;
  • NeverQueue.

Ссылки

https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies https://sookocheff.com/post/kubernetes/understanding-kubernetes-networking-model/

...