есть gateway service, который через alb-ingress экспозится в мир
сейчас он (временно) стучится на другие сервисы через namespace.svc.cluster.local
Что хочу сделать
consul + nginx-ingress
Вопрос собственно по nginx-ingress и consul:
nginx-ingress по дефолту создает classic elb в AWS.
я не нашел как заменить его на internal ALB/NLB
host в rules, домен может быть какой-нибудь service.local?
Если я добавлю к этому всему consul, как сервисы будут в нем регистрироваться? через nginx-ingress?
Заранее прошу прощения если что-то не понял в основе)
А зачем понадобился consul ? Все сервисы и так доступы по API и в вызовах ingress/egress и любого балансировщика кубера выставленного наружу. Я просто ставлю свой DNS и забиваю на провайдерские
я хочу использовать K/V консула еще
свой DNS что имеется ввиду?
bind (named)
никак не будут. nginx-ingress не занимается регистрацией сервисов. Возможно есть какой-то оператор, который синкает сервисы куба в consul. Но почему бы просто не использовать сервисы куба?
тогда вопрос если у меня что-то обращается на service.namespace.svc.cluster.local - оно попадет на ingress? если нет - как мне тогда балансить между подами?
Нет. Чтобы попадало на ingress-controller, надо отправлять запрос на ingress-controller. Для запросов внутри куба, обычно используют сервисы. Но можно и через ingress-controller. Отправляете запрос на ingress-controller, указывается в загаловках хост, который указан в kind: Ingress, ingress-controller перенаправит этот запрос по правилам описанным в kind: Ingress. Создавать Ingress с хостом service.namespace.svc.cluster.local - можно, но тогда надо обращаться не по http://service.namespace.svc.cluster.local, а по -H "host: service.namespace.svc.cluster.local" http://сервис_который_матчит_ingress-controller или http://ip-адрес-сервиса-который-матчит-ingress-controller или http://ip-адрес-одного-из-подов-ingress-контроллера
> если нет - как мне тогда балансить между подами? Оно и по сервисам балансится, что конкретно не устраивает?
я в процессе переезда, с ECS. И одна из главных причин - слишком много alb) Для запросов внутри куба, обычно используют сервисы - то есть по сути запросы на service.namespace.svc.cluster.local, верно? последний вариант однозначно нет) по дефолту при обращении к сервису, отдается же просто ip пода, тут никакой балансировки нет по сути, а нужно)
нет, именно с ECS в EKS
Ааа, я просто поднял под с nginx для роутинга между сервисами, было обусловлено тем что все сервисы общались через хостнейм/API/service
> Для запросов внутри куба, обычно используют сервисы - то есть по сути запросы на service.namespace.svc.cluster.local, верно? верно, ingress-controller для этого не нужен. > последний вариант однозначно нет) ну ты же сам хотел этого, что спросил то и ответил. > по дефолту при обращении к сервису, отдается же просто ip пода нет, отдается ip сервиса, который на самом деле является либо iptables правилом nat, либо ipvs правилом
я пока что в поиске решения просто...) то есть вы хотите сказать, что если я оставлю тупо как есть, что бы общались через сервисы, проблем с балансировкой между подами не будет?)
Просто проведи тестирование, даже в официальном гайде поднимают два Nginx объединяют их в сервис и делают 10 запросов которые возвращают разные имена подов
Ещё можешь задерскрайбить сервис и увидеть что внутри
При условии что еще настроить sticky session на них то будут возвращать одинаковые
Обсуждают сегодня