Способы балансировки north-south трафика в Kubernetes, или зачем в кубере может быть нужен BGP?.. ;)
Всем привет!
В предыдущем посте мы познакомились с терминами north-south и east-west применительно к кластеру Kubernetes.
Давайте разберём подробнее как может быть организована балансировка north-south трафика.
Для многих, наверное, уже является привычной связка haproxy+keepalived, в которой поднимается 2 экземпляра haproxy (обычно в режиме L4), а его отказоустойчивость обеспечивается средствами протокола VRRP, который реализуется с помощью keepalived. Но для всех ли случаев может подходить такое решение и в чём могут заключаться основные минусы такого подхода?.. 🤔
Связка haproxy+keepalived - это классический и наипростейший пример балансировки трафика на уровне L4 в режиме Active-Backup, при которой весь трафик проходит только через один экземпляр haproxy, а на второй экземпляр трафик переключается только в том случае, если основной экземпляр haproxy выходит из строя. То есть haproxy является узким горлышком при передаче трафика. Помимо этого, есть также и ещё одно ограничение вследствие использования протокола VRRP: все экземпляры haproxy должны находиться в одном L2-сегменте.
Можно ли как-то устранить данные проблемы?.. 🤔
Да, можно! Для этого необходима другая связка, которая умеет работать в режиме Active-Active, например технология BGP ECMP! 🤓
Более подробно о способах балансировки north-south трафика в k8s можно почитать на примере решения loxilb. Сайт содержит описание для конкретного решения, но, на наш взгляд, схемы можно адаптировать под любое решение.
Схемы дают общее представление о разных способах балансировки north-south трафика в k8s-кластере на примере балансировщика loxilb, а также даёт общее представление о том в чём отличие между Active-Active и Active-Backup режимами балансировки ;)
Post #985
3.4K
- 👍 8
- 🔥 4
- ❤ 2
- 👌 1