Anatoliy
ну так по сути на каждый сервис придется вешать прослойку в виде этого gw, я ведь прав?
G72K
Нет, gw один и через него все ходят. Можно на коленке на базе Nginx ingess controller собрать прототип
Anatoliy
Нет, gw один и через него все ходят. Можно на коленке на базе Nginx ingess controller собрать прототип
а между собой они тоже через него ходят? не окажется узким местом?
Anatoliy
Ну в общем по api gw нашел вот такую штуку: https://www.getambassador.io/user-guide/getting-started и судя по всему это действительно круто) Умеет кубер, есть исходники на гитхабе.
Serega
так можно и до Kong дойти. Только далеко не всем сервисам нужны эти апи гетвеи.
Igor
Ну в общем по api gw нашел вот такую штуку: https://www.getambassador.io/user-guide/getting-started и судя по всему это действительно круто) Умеет кубер, есть исходники на гитхабе.
Это не очень круто, пока сыро, местами повторяет функционал Istio, ну и движок тот же Envoy Proxy. По envoy, пока они 95 тикет на закроют - нет нормальной обработки SNI для TLS
Igor
так можно и до Kong дойти. Только далеко не всем сервисам нужны эти апи гетвеи.
Ну от него лучше идти в сторону более гибких GW, хотя бы имеющих side-car или proxy pool, иначе botleneck выходит.
Anatoliy
Это не очень круто, пока сыро, местами повторяет функционал Istio, ну и движок тот же Envoy Proxy. По envoy, пока они 95 тикет на закроют - нет нормальной обработки SNI для TLS
понятно) ну для меня это было круто) правда где то я тут затупил и она не заводится, в доках пример при обращении снаружи, а мне снаружи как раз не надо) мне надо изнутри, а изнутри оно тоже что-то не цепляется... в общем думаю еще над всей этой ерундой. Но выглядит очень привлекательно. Правда все равно не понимаю нафига оно надо если есть сервисы кубера
Igor
Оно надо для чего: Разводить роутинг между public/private Авторизацию общую, а не в каждом сервисе и т.п. Но там еще пилить и пилить, сейчас все работают в этом направлении, включая nginx unit
Igor
например? istio ?
Не факт, но они бегут быстро, быстрее nginx unit по крайней мере. На базе envoy будет много GW со временем.
Serega
а смысл в nginx unit в кубере? у nginx unit вроде другой бизнес-кейс.
Igor
а смысл в nginx unit в кубере? у nginx unit вроде другой бизнес-кейс.
Кейз тот-же App proxy, движок они свой предлагают вместо envoy для Istio
Igor
Смысл этих движков, управление http/s трафиком через API, тогда они легко встраиваются в компоненты типа Istio, где можно создавать условия общения между сервисами.
Serega
таки да, Service mesh у nginx unit как одна из фич.
Serega
ну посмотрим, думается мне что istio больше под k8s заточен.
Anatoliy
Так, стоп, поясните пожалуйста один момент. api gw нужен что бы сервисы могли удобно обращаться по адресу вида mainaddr/service/... ? и при этом всегда быть уверенными что им ответят, так? В итоге не надо головняка при смене сервисов, просто назначаем новые по тем же адресам, так?
Anatoliy
Но в итоге у нас есть кубер, который может назначать сервисы по адресам вида http[s]://service-name/... ? Так зачем тогда нужен api gw?
Serega
есть API Gateway и есть Service Mesh. Иногда обе эти технологии обьеденены в один продукт. Назначение апи гетвея - скорее для обслуживания запросов из вне. Назначение сервис меш - связность сервисов внутри кластера.
Igor
Но в итоге у нас есть кубер, который может назначать сервисы по адресам вида http[s]://service-name/... ? Так зачем тогда нужен api gw?
API GW не про это, там много всего 🙂 Всё вышеперечисленное можно сделать ингресом обычным
Anatoliy
угу, т.е. кубер дает сервис меш, так?
Anatoliy
а для связности с внешних запросов уже нужен api gw?
Anatoliy
Тогда да, это имеет смысл и будет очень круто когда будет работать. Но пока оно мне не надо, обычное бы приложение доделать, пока и без api
Serega
ну вот и бери обычный ингрес.
Anatoliy
так его и взял)
Anatoliy
а кто nfs пользуется, можете подсказать какие могут быть проблемы если соединение разорвется и на одной из машин в это время в папку что-то запишется? а потом соединение восстановится?
Maksim
под умрёт.
Maksim
а дальше всё зависит от аппликатива
Anatoliy
который? и когда? сразу после разрыва?
Maksim
когда попытается обратиться в volume
Maksim
все поды, которые попробуют обратиться к volume
Anatoliy
Т.е. если у меня там будет база то она упадет и начнет подниматься по новой? и так пока не подрубится вольюм?
Anatoliy
мда... наверное это плохая идея все же ставиь нфс...
Maksim
ну для экспериментов, и на первых порах можно
Anatoliy
а потом?
Anatoliy
немного поясню, я хочу поставить postgres, и даже в принципе не против поставиь только один мастер, но все что читаю - предлагают ставить сразу кластер, в принципе я и против этого ничего не имею, но если уж есть примеры перед глазами сразу с нормальным развертыванием - почему бы и нет
Maksim
а что потом? Потом нужно схд с отказоустойчивостью.
Anatoliy
а что потом? Потом нужно схд с отказоустойчивостью.
Мда... корчое если этим заниматься "что бы правильно и надежно" то заниматься судя по всему можно ОЧЕНЬ долго. Ну и ОЧЕНЬ дорого тоже...
Anatoliy
GCE тебя спасёт.
по деньгам тоже?)
Maksim
да
Maksim
Azur Aws
Anatoliy
$194.1800 в месяц за машину с 30 гигами оперативки и 8 ядрами. Притом что я щас плачу за подобное 40
Anatoliy
чет такое себе
Anatoliy
И это я еще не смотрел сколько места на дисках там есть, что скорее всего отдельно и тоже платно
Vitalii
Мы смирились с hostPath и nodeSelector например
Anatoliy
Мы смирились с hostPath и nodeSelector например
ну с nodeSelector и я смирился. правда я делаю через affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: env operator: In values: - dev
Maksim
40 Баксов?
Anatoliy
40 Баксов?
https://www.soyoustart.com/ie/essential-servers/
Anatoliy
падение на моей памяти было только раз, но у них там вообще все падало
Anatoliy
диски тоже заменили сразу как сыпаться начали. правда по запросу. но проблем с ними не было ни разу
Maksim
ну так орендуй там 3 сервака
Maksim
сделай на них гласт или сеф
Maksim
разверни кластер кубера)
Maksim
и вуаля)
Maksim
правда стоит будет 120
Anatoliy
разверни кластер кубера)
так именно этим и занимаюсь)
Maksim
Дык подсели туда еще сеф какой нибудь
Anatoliy
правда гласт я не ставил там
Serega
c GCE очень круто эксперементировать. 300 фришных баксов на год... да с preemptible нодами.. всяческие фишки из коробки. Ну и вестимо persistent volumes с динамическим pvc
Anatoliy
300 фришных баксов на год ?
Anatoliy
пояснить можно?
Etki
когда регистрируешься, тебе дают триста долларов. если не успеешь использовать за год все, остаток сгорит
Etki
есть еще программа always free, которая позволяет тратить чуть меньше, но в промышленных масштабах прям погоды вряд ли сделает
Dmitry
Как ей воспользоваться?
Serega
https://cloud.google.com/free/
Serega
но у всех крупных клауд провайдеров есть подобное.
bebebe
смотрю в Dockerfile от heketi, и в нем делается EXPOSE на 8080 порт у меня на этом порту уже слушает k8s-dashboard при создании daemonset'a на двух нодах, где на этом порту слушает уже dashboard контейнеры не стартуют это шах и мат?
Anatoliy
а что мешает не открывать порт на 8080? или expose это типа принудительно?
bebebe
дело не совсем в этом, внутри heketi биндится на :8080 который уже already in used
bebebe
и поменять это без пересборки контейнера я так понимаю нельзя
Anatoliy
видимо я что-то не понимаю, если вы запускаете контейнер отдельно - какая вам разница куда он идет?
bebebe
поды не стартуют
Roman
дело не совсем в этом, внутри heketi биндится на :8080 который уже already in used
Вроде как в daemonset можно задать свой маппинг портов host - container
bebebe
Вроде как в daemonset можно задать свой маппинг портов host - container
у меня несколько хуже, конфликт был host privileged контейнера с kubeapi-server передеплоил, перенес kubeapi-server на другой порт, все ок
Maksym
▫️Какой у вас проект или где работаете? Несколько проектов на k8s ▫️В чём вы специалист? Linux, виртуализация, ci/cd ▫️Чем можете быть интересны или полезны сообществу? Помогу чем смогу с k8s ▫️Чем интересно сообщество вам? Обсудить новости ▫️Откуда вы? СПб #whois
Maksym
Попробуем :-)