Alexander
то есть даже если мне не нужно дублировать субд, допустим, мне всё равно придётся
Maxim
ну да
Alexander
или не делать её частью пода
Maxim
потому что ты неправильно под сформировал
Alexander
а как правильно?
Maxim
под - неделимая сущность
Alexander
но тогда каждый контейнер - отдельный под?
Maxim
масштабироваться, создаваться, удаляться он будет весь целиком
Maxim
всегда
Alexander
тогда чем поды отличаются от контейнеров
Denis
Service Discovery
Maxim
чем апельсины отличаются от ящиков с апельсинами?
Maxim
вот именно так же поды от контейнеров отличаются
Alexander
то есть под - это группа одинаковых контейнеров?
Maxim
не обязательно одинаковых
Maxim
но все действия ты будешь проводить только над полной группой
Maxim
исключение - чтение логов
Maxim
там нужно будет указывать контейнер внутри пода
Alexander
а можно пример, когда выгоднее объединять в под пачку неодинаковых контейнеров, чем просто пачка этих контейнеров как отдельных подов?
Maxim
kube-dns
Maxim
три контейнера в одном поде
Maxim
масштабировать можно как угодно
Maxim
все контейнеры в поде объединены общим локалхостом
Maxim
это важно
Maxim
то есть ты в одном контейнере можешь слушать 127.0.0.1, а из другого к нему успешно ходить
Maxim
чтобы это сделать вне пода, оба контейнера должны быть запущены с --net=host
Alexander
нагуглил про kube-dns, там 3 контейнера: один с хелфчеками, один мониторит какие-то изменения, один добавляет кеширование.. ну, допустим..
а если нагрузка будет расти , как это будет масштабироваться? появится клон этого пода (все три контейнера будут продублированы)?
Maxim
да
Alexander
а вариант, когда поду выделяют больше ресурсов тоже возможен, так?
Maxim
да
Alexander
а ресурсы в Kubernetes выделяются именно на pod, а не на контейнер, верно?
Maxim
нет
Maxim
лимиты можно и поконтейнерно развешивать
Alexander
понял, то есть оба варианта
Alexander
я правильно понимаю, что в случае с веб-проектом статика (плюс прокси в виде nginx), код (uwsgi, Python, Django) и СУБД (PostgreSQL) нет смысла запихивать в 1 pod?
Maxim
конечно
Alexander
я вот как раз думал, что правильный вариант - сделать их на 1 айпишнике
Alexander
и для каждого контейнера выделить какие-то диапазоны портов на нём
Maxim
постгрес вообще имеет смысл петсетом делать
Maxim
он же stateful
Alexander
не очень понял фразу, это про волаймы?
Alexander
да, у меня контейнер с PostgreSQL использует волайм, где лежит база
Alexander
аналогичный волайм для медиа-файлов (к нему доступ к прокси-nginx и контейнера с кодом)
Maxim
волайм?
Alexander
data volume
Maxim
а
Alexander
просто папка на сервере
Alexander
за пределами контейнеров
Alexander
то есть в одном база, в другом медиа-файлы (например, пользователи загружают из админки)
Alexander
и вот, сразу вопрос - если запускать это на 3 серверах, как правильно тут сделать с базой?
Maxim
а если под на другой сервер переедет?
Alexander
в идеале - сделать отказоустойчивый сервис
Alexander
чтобы выключение любых двух серверов не сломал проект
Alexander
тут нужна репликация СУБД между контейнерами на разных серверах?
Alexander
это самый правильный способ?
Maxim
а чем тебе это поможет с постгресом?
Maxim
мультимастера там еще не придумали
Alexander
ну, если мастер выключится, по идее ведь друг должен стать мастером
Maxim
как?
Alexander
ну, увидит, что главный мастер потух
Maxim
для этого надо явно сделать промоут
Alexander
какой вообще рекомендованный способ?
Maxim
ты когда-нибудь без контейнеров такое делал?
Alexander
нет, но гайды в инете есть же
Maxim
ясно
Alexander
есть ещё вариант сделать какую-то единую файловую систему между тремя серверами и туда поставить postgresql
Alexander
но многие очень критикуют такой вариант
Maxim
ты слишком много теоретизируешь при недостаточной базе
Maxim
ешь слона по кусочкам
Alexander
так я и спрашиваю, какой вариант правильный
Alexander
допустим, у меня 3 одинаковых контейнера на разных серверах, всем нужна база
Alexander
как правильнее всего это организовать чтобы была отказоустойчивость
Maxim
не получится по паре гайдов из интернета сделать отказоустойчивый кластер из неизвестных тебе технологий
Alexander
почему неизвестных, мне не ясны лишь некоторые моменты
Alexander
есть вариант через master-slave, есть, например, такой плагин к Django https://github.com/yandex/django_replicated
Alexander
но, может, есть и проще способы
Maxim
wat?
Maxim
этот плагин позволяет джанге писать в мастера, а читать сразу из нескольких инстансов
Alexander
например, как я писал выше, какая-то сетевая файловая система на базе дисков всех трёх серверов и там этот data volume с базой
Maxim
при чем тут отказоустойчивость-то?