AWS - k8s - входной LoadBalancer
Я пытаюсь настроить ниже настроить.
User -> https://xxx.abc.com -> VPC-IP(AWS LB):443 -> POD:8080
Ссылаясь на этот вопрос AWS VPC - k8s - балансировка нагрузки
Если я настроил входной сервис; LoadBalancer создан kubernetes?
В настоящее время я ограничиваю доступ к VPC только для определенного IP-адреса с помощью AWS Security Group.
Можно ли использовать существующий LoadBalancer и назначить / присоединить его к Ingress Service? Или мне нужно вручную назначить SG балансировщику нагрузки, если он создан K8S?
1 ответ
Просто хочу подробнее рассказать о решении @aurelius 2:
Шаг 1: Сделайте ваш входной сервис, чтобы набрать NodePort
и он получит порт типа Node:34567 на всех узлах вашего кластера.
Шаг 2. Настройте существующий балансировщик нагрузки для маршрутизации на эти порты в качестве бэкэнда.
AWS existing load-balancer => Workder-Node1:34567 => Ingress-service => xxx
=> Workder-Node2:34567 => Ingress-service => xxx
=> Workder-Node3:34567 => Ingress-service => xxx
Извините, но ваш вопрос кажется неясным или немного запутанным = надеюсь, я не упустил суть.
Для достижения этого сценария:User -> https://xxx.abc.com -> VPC-IP(AWS LB):443 -> POD:8080
Вам нужно следовать обычной настройке для настройки входного и входного контроллера и просто добавить хост (ваш URL) в ingress.yaml. Вы не сможете достичь его, пока не купите и не подключите свой домен к AWS. Но вы можете проверить, работает ли установка:
curl -v -H "HOST:host_from_config" loadbalanceraddress.com
Если я настроил входной сервис; LoadBalancer создан Kubernetes?
Да.
Когда для типа службы установлено значение LoadBalancer, Kubernetes предоставляет функциональность, эквивалентную типу = для модулей в кластере, и расширяет его, программируя балансировщик нагрузки (внешний по отношению к Kubernetes) с записями для модулей Kubernetes. Контроллер службы Kubernetes автоматизирует создание внешнего балансировщика нагрузки, проверки работоспособности (при необходимости), правил брандмауэра (при необходимости) и извлекает внешний IP-адрес, выделенный поставщиком облака, и заполняет его в объекте службы.
Вы можете ограничить групповые политики безопасности на ходу, просто найдите, к какому SG он принадлежит, отредактируйте правила по своему желанию или измените, к какому SG принадлежит балансировщик нагрузки, и настройте его.
О сценарии использования существующего LB с Ingress - вы можете попытаться добавить свой существующий LoadBalancer (не пробовал) в конфигурацию службы, присоединить правильные экземпляры к LoadBalancer и т. Д. Хотя я не пробовал, похоже, что с некоторыми Усилие и правильная настройка должны быть возможны.
status:
loadBalancer:
ingress:
- hostname: example-address.eu-central-1.elb.amazonaws.com
Другим способом было бы изменить тип Сервиса на NodePort и указать его для созданного вручную LB для ваших приложений - это может быть использовано, когда вам нужно пара сервисов, подключенных к одному ELB. Это было описано здесь.