красавец, белорус! подробно и точно делаешь, продолжай!
@versus492 Жыл бұрын
Отличное видео. Ещё можно добавить, что можно осуществлять балансировку NodePort через dns A записи. LB бывают внешние и внутренние. Вторые используются для проектов под vpn, например.
@yaroslav-34502 жыл бұрын
Когда рассказывал про NodePort, упустил что в SG EC2 надо в явном виде добавить порт 30080 в inbound rule, без этого правила мы не достучимся до POD. По поводу externalTrafficPolicy: Local в LoadBalancer неточность, нам необязательно на каждой ноде иметь POD с приложением. Балансировщик клауд провайдера делает health check и если на ноде нет нужного пода, то такой нод будет OutOfService, балансировщик не пустит на него трафик вообще.
@lifeoutro Жыл бұрын
Headless не может обращаться ко все подам сразу, там механизм dns round robin, физически по протоколу невозможно. Там же не делается широковещательный запрос, и почему тогда при вызове curl dns-service-name не возвращаются ответы от всех подов а только с одного - потому что это и обусловлено механизмом dns rondrobin. А в целом, за курс спасибо.
@andrewmedvedev963 Жыл бұрын
Anton, thanks again for your explanation. Could you tell me please how to configure external-ips for node groups? You have external ips on nodes in the output of command "kubectl get nodes -o wide". Did I miss something?
@BAKAVETS Жыл бұрын
Hi! I have used here AWS EKS cluster with workers in VPC public subnets, so that's why I have external IPs for them.
@ddd228311 ай бұрын
ППЦ ты тороторка , 10 раз пересмотрел когда ты про ExternalTraffic расказывал , думал как так ты его скрестил с LB? А ты тему уже сменил :)
@oleg_kishinskii2 жыл бұрын
я что то пропустил момент, а когда у нас service получил external ip?
@BAKAVETS2 жыл бұрын
Так как K8s cluster был создан в AWS, то при создании Service типа LoadBalancer, AWS автоматически создал LB и приаттачил его к этому Service через AWS Target group, и используя external endpoint созданного LB мы попадаем к приложению. Если я правильно понял вопрос.
@AndreyKopitsa Жыл бұрын
@@BAKAVETS в данном случае создавался сервис типа NodePort, а там external Ip не получает
@neodzen3 жыл бұрын
По поводу LB. Гипотетически если я на виртуалках развернул кластер с несколькими мастерами и несколькими воркерами, и приложухе с несколькими репливами, то можно поставить балансировщик, например, haproxy, и натравить его просто на все ноды кластера, по раундробину, для балансировки. И получится примерно тоже самое что и у облачных балансировщиков, типа амазоновского и гугловского. Верно? И если верно, то получается на входе у меня будет грубо говоря два балансировщика. Сначала haproxy балансирует запрос на ноды, которые затем перенаправляют запрос к сервису, который затем уже балансирует запрос на поды, так?
@BAKAVETS3 жыл бұрын
Теоретически возможно. Но лично не пробовал. Я бы ещё в Вашу схему добавил бы ingress.
@neodzen3 жыл бұрын
@@BAKAVETS Пока так и не понял как настроить ingress. День проплюхался и плюнул на него, настроил по другому. Суть в чём, есть служба проприетарная (обслуживает почтовые ящики с одной CRM/SRM), они принимает подключения по HTTP. Поставили задачу в кубере (виртуалки, три мастера, три воркера) развернуть 5 копий приложухи. Но отдавать клиентам урл с номером порта не кошерно поэтому решили дать УРЛи с 80-ым портом(всё в локалке). И вот тут понеслось :). В общем отдать через ingress я так и не смог, он у меня рефьюзит коннекты. В качестве контроллера поставил стандартный k8s-nginx, но началась ругань, дескать не определён default-http-backend. Плюнул на это дело. Зарегал для каждого инстанса свой сервис с типом NodePort и явно указал всем сервисам разные порты. А на HaProxy уже сделал редиректы по roundrobin на адрес:порт нод воркеров. Думаю это очень топорно, но пока так и не вкурил, как настроить ingress, да и нужен ли он в такой схеме. Вообще надо посмотреть серию уроков по контроллеру Traefik от justmeandopensource. Кстати рекомендую, хоть и англоязычный, но достаточно всё понятно.