#networking #kubernetes #minikube #kube-proxy #ipvs
#создание сетей #кубернетес #мини-куб #kube-прокси-сервер #ipvs #сеть #kubernetes #kube-прокси
Вопрос:
Я использую кластер minikube в экземпляре AWS. Я заменил IPVS на iptables в kube-proxy для достижения привязки к сеансу. Алгоритм хеширования источника IPVS используется для достижения привязки к сеансу, теперь, насколько я понимаю, алгоритм хеширования источника поддерживает сеанс на основе только IP-адреса. Это нехорошо в случае, если несколько пользователей подключаются из частной сети, имеющей только одну общедоступную конечную точку. Трафик с этой общедоступной конечной точки всегда направляется на один модуль в случае реплики, хотя это могут быть разные пользователи. Это делает другие капсулы идеальными.
Желаемый результат:
Разные пользователи из одной и той же общедоступной конечной точки должны рассматриваться как разные пользователи на основе same-IP unique-port
и должны быть направлены на разные модули внутри реплики.
Как я могу добиться этого с помощью IPVS?
Комментарии:
1. Пожалуйста, объясните более подробно о вашем сценарии, если вы можете привести несколько примеров того, как воспроизвести поведение, было бы полезно для получения лучшей помощи.
2. @KoopaKiller Я предоставил доступ к сервису k8 через порт узла, скажем, 30788. Клиент сначала устанавливает UDP-соединение с общедоступным IP-адресом компьютера: 30788, теперь клиент устанавливает непосредственное соединение по протоколу TCP с общедоступным IP-адресом компьютера: 30788. Теперь оба этих соединения должны быть установлены с одним и тем же модулем в реплике. Это достигается за счет внедрения ipvs с исходным алгоритмом хеширования.
3. Теперь проблема в том, что, допустим, есть предприятие, где за одним и тем же общедоступным IP-адресом находится много клиентов. Когда эти разные клиенты устанавливают соединение с machine-public-IP: 30788, исходный алгоритм хэширования ipvs обрабатывает их как трафик, исходящий с одного исходного ip-адреса, и направляет все их в один и тот же модуль, оставляя другие модули идеальными.
4. Я хочу, чтобы каким-то образом другой клиент, подключающийся с того же исходного IP, рассматривался как другой пользователь на основе его уникального порта и должен быть направлен на разные модули.
5. В чем причина перенаправления на другой модуль, для балансировки трафика или по другой причине? Рассматривали ли вы возможность использования ingress, такого как nginx-ingress?