×

5.2.4. Публикация приложения во внешнюю сеть

 
Развёртывание приложений в Kubernetes-кластере — это лишь часть задачи. Чтобы сделать их доступным из публичных сетей, необходимо настроить механизм публикации. Один из способов — использование балансировщика нагрузки (Load Balancer), создаваемого в разделе управления сетевыми параметрами кластера.
 
Каждый кластер Kubernetes Flex в Cloupard создаётся автоматически с подключённым внешним IP адресом или кластер подключается к виртуальной сети с уже подключённым внешним IP.
 
Балансировщик нагрузки принимает трафик, поступающий на внешний IP-адрес, выделенный для сервиса Kubernetes Flex, и равномерно распределяет входящие запросы между узлами, на которых работают поды приложения. Это упрощает управление трафиком и повышает отказоустойчивость.
 
В этой статье мы рассмотрим, как опубликовать приложение в кластере Kubernetes Flex от Cloupard во внешнюю сеть, используя встроенные механизмы балансировки нагрузки. В этом примере предполагается, что приложение уже развёрнуто в подах на всех рабочих узлах, принимает запросы на порт 443 каждого из рабочих узлов и умеет само обрабатывать и принимать HTTPS трафик.
 
Итак, кластер создан и мы видим его в списке кластеров ("Консоль Cloupard" - "Кластеры Kubernetes" - "Kubernetes Flex").
 
1. Нажимаем на три точки для перехода к панели управления кластером и переходим в раздел сетевых настроек кластера.
 
 
2. Добавляем правило балансировщика, которое будет принимать трафик на 443 сетевом порту внешнего IP адреса и передавать его на 443 порт всех рабочих узлов. При этом автоматически будет создано правило проверки доступности узлов методом отправки TCP запросов на указанный порт, в случае отсутствия ответа, трафик на узел не передаётся.
 
Обратите внимание - в списке правил уже есть системное правило балансировки на группу мастер узлов для управления кластером через kube-api, удалить его нельзя, изменять следует только, если вы точно знаете что делаете.
 
После применения конфигурации приложение на 443 сетевом порту будет опубликовано на внешнем IP кластера с балансировкой трафика по всем доступным рабочим узлам группы. Появится новый балансировщик (новое правило балансировки), который будет принимать входящие запросы поступающие на внешний IP-адрес, выделенный для кластер Kubernetes Flex и распределять их между рабочими узлами кластера, где далее он будет приниматься и обрабатываться уже сервисами Kubernetes. В случае выхода из строя одного из рабочих узлов или экземпляра приложения на нём, балансировщик это обнаружит с помощью проверки доступности и исключит этот узел из балансировки, продолжая доставлять трафик только на рабочий экземпляр.
 
Более тонкую настройку балансировщика, можно найти в разделе "Elastic Cloud KVM" - "Сетевые балансировщики".