Два кластера EKS, использующие один и тот же LoadBalancer.
Кто-нибудь знает, можно ли (и как) использовать один и тот же ELB между двумя входными контроллерами в разных кластерах EKS в одном VPC?
У меня уже работает один кластер EKS, и я только что создал второй. Я хотел бы использовать тот же ELB, который используется для первого во втором входном контроллере. Возможно ли?
Я попытался установить новый IngressController через Helm на своем втором кластере и обновить его конфигурацию, чтобы она указывала на существующий ELB, но служба IngressController остается в ожидании (в состоянии ожидания) навсегда.
1 ответ
У меня уже работает один кластер EKS, и я только что создал второй. Я хотел бы использовать тот же ELB, который используется для первого во втором входном контроллере. Возможно ли?
Короткая версия — да, длинная — «но ты точно не хочешь».
Если посмотреть, как поступает трафик из дикого Интернета в ваш кластер:
{ Internet } --> ELB --> Node --> NodePort --> Service
полезнее понять, почему ответ «да», а также почему ответ «но не делай этого», поскольку в вашей гипотетической ситуации у вас было бы
{ Internet } --> ELB --> Node --> NodePort --> Service
\
--> cluster-2-Node --> cluster-2-NodePort --> cluster-2-Service
это означает, что ELB будет выполнять циклический перебор запросов в обоих кластерах, поскольку у него не будет возможности узнать, на какие машины отправлять «настоящий» трафик. Теперь, если ваши кластеры являются идеальными зеркалами друг друга, вам повезло, это, вероятно, будет работать какое-то время 1 , но это наверняка плывет вверх по течению того, как хотят работать Kubernetes и ELB. Менее «задающий вопросы о сбоях сервера» — создать CNAME для обоих ELB, а затем позволить DNS выполнить циклический перебор трафика.
fn 1: часть «на какое-то время» заключается в том, что ассоциация между ELB и экземплярами, в которых он зарегистрирован, синхронизируется с помощьюkube-controller-manager
и, таким образом, когда его цикл согласования запускается и он находит «чужие» узлы, прикрепленные к «его» ELB, он их вытесняет.