@kubernetes_ru

Страница 13 из 958
Maxim
24.08.2016
21:20:42
то есть ты в одном контейнере можешь слушать 127.0.0.1, а из другого к нему успешно ходить

чтобы это сделать вне пода, оба контейнера должны быть запущены с --net=host

Alexander
24.08.2016
21:23:50
нагуглил про kube-dns, там 3 контейнера: один с хелфчеками, один мониторит какие-то изменения, один добавляет кеширование.. ну, допустим.. а если нагрузка будет расти , как это будет масштабироваться? появится клон этого пода (все три контейнера будут продублированы)?

Maxim
24.08.2016
21:24:20
да

Google
Alexander
24.08.2016
21:24:41
а вариант, когда поду выделяют больше ресурсов тоже возможен, так?

Maxim
24.08.2016
21:24:51
да

Alexander
24.08.2016
21:25:10
а ресурсы в Kubernetes выделяются именно на pod, а не на контейнер, верно?

Maxim
24.08.2016
21:25:26
нет

лимиты можно и поконтейнерно развешивать

Alexander
24.08.2016
21:26:06
понял, то есть оба варианта

я правильно понимаю, что в случае с веб-проектом статика (плюс прокси в виде nginx), код (uwsgi, Python, Django) и СУБД (PostgreSQL) нет смысла запихивать в 1 pod?

Maxim
24.08.2016
21:27:24
конечно

Alexander
24.08.2016
21:27:58
я вот как раз думал, что правильный вариант - сделать их на 1 айпишнике

и для каждого контейнера выделить какие-то диапазоны портов на нём

Maxim
24.08.2016
21:28:19
постгрес вообще имеет смысл петсетом делать

он же stateful

Alexander
24.08.2016
21:29:38
не очень понял фразу, это про волаймы?

Google
Alexander
24.08.2016
21:29:51
да, у меня контейнер с PostgreSQL использует волайм, где лежит база

аналогичный волайм для медиа-файлов (к нему доступ к прокси-nginx и контейнера с кодом)

Maxim
24.08.2016
21:30:22
волайм?

Alexander
24.08.2016
21:30:28
data volume

Maxim
24.08.2016
21:30:33
а

Alexander
24.08.2016
21:30:43
просто папка на сервере

за пределами контейнеров

то есть в одном база, в другом медиа-файлы (например, пользователи загружают из админки)

и вот, сразу вопрос - если запускать это на 3 серверах, как правильно тут сделать с базой?

Maxim
24.08.2016
21:32:13
а если под на другой сервер переедет?

Alexander
24.08.2016
21:32:23
в идеале - сделать отказоустойчивый сервис

чтобы выключение любых двух серверов не сломал проект

тут нужна репликация СУБД между контейнерами на разных серверах?

это самый правильный способ?

Maxim
24.08.2016
21:33:18
а чем тебе это поможет с постгресом?

мультимастера там еще не придумали

Alexander
24.08.2016
21:33:41
ну, если мастер выключится, по идее ведь друг должен стать мастером

Maxim
24.08.2016
21:33:53
как?

Alexander
24.08.2016
21:34:02
ну, увидит, что главный мастер потух

Maxim
24.08.2016
21:34:07
для этого надо явно сделать промоут

Google
Alexander
24.08.2016
21:34:32
какой вообще рекомендованный способ?

Maxim
24.08.2016
21:34:34
ты когда-нибудь без контейнеров такое делал?

Alexander
24.08.2016
21:34:43
нет, но гайды в инете есть же

Maxim
24.08.2016
21:35:03
ясно

Alexander
24.08.2016
21:35:30
есть ещё вариант сделать какую-то единую файловую систему между тремя серверами и туда поставить postgresql

но многие очень критикуют такой вариант

Maxim
24.08.2016
21:36:15
ты слишком много теоретизируешь при недостаточной базе

ешь слона по кусочкам

Alexander
24.08.2016
21:37:18
так я и спрашиваю, какой вариант правильный

допустим, у меня 3 одинаковых контейнера на разных серверах, всем нужна база

как правильнее всего это организовать чтобы была отказоустойчивость

Maxim
24.08.2016
21:37:52
не получится по паре гайдов из интернета сделать отказоустойчивый кластер из неизвестных тебе технологий

Alexander
24.08.2016
21:38:39
почему неизвестных, мне не ясны лишь некоторые моменты

есть вариант через master-slave, есть, например, такой плагин к Django https://github.com/yandex/django_replicated

но, может, есть и проще способы

Maxim
24.08.2016
21:40:33
wat?

этот плагин позволяет джанге писать в мастера, а читать сразу из нескольких инстансов

Alexander
24.08.2016
21:41:05
например, как я писал выше, какая-то сетевая файловая система на базе дисков всех трёх серверов и там этот data volume с базой

Maxim
24.08.2016
21:41:13
при чем тут отказоустойчивость-то?

смерть мастера все-равно все убъет

Google
Alexander
24.08.2016
21:42:15
мне главное, чтобы чтение не убило, а с записью и подождут... видимо, какая-то проверка ещё нужна

по идее, запросы распределяются на балансировшике за пределами облака, они тупо там разбиваются на 3 сервера, на каждом сервере копия всех контейнеров

если nginx на одном из них не отвечает - запрос уйдёт на другой сервер, где будет свой nginx, свой код и своя субд, к которой код и полезет с запросом

это если запросы на чтение

а про запросы на запись я не знаю как лучше сделать, наверное, тут надо погуглить и подумать про разные варианты...

Maxim
24.08.2016
21:48:30
никак

Alexander
24.08.2016
21:49:39
ну, 1 из вариантов - писать сразу во все 3 базы

если 1 из них недоступна - возвращать 500

другой вариант - выбрать мастер и писать в него, если мастер недоступен - возвращать 500

какие-то варианты всё равно есть

Admin
ERROR: S client not available

Maxim
24.08.2016
21:50:50
ну а дальше-то что делать?

Alexander
24.08.2016
21:50:53
третий вариант - сделать сетевую файловую систему и туда поставить контейнер с базой

Maxim
24.08.2016
21:50:59
вот у тебя выбранный мастер сломался

и?

Alexander
24.08.2016
21:51:20
тут или 500 (ждём, пока он починится) или переключаем слейв в мастер

и потом после восстановления мастера синхронизируем его

Maxim
24.08.2016
21:51:57
а остальных слейвов пересинхронизируем с новым мастером

и старый мастер тоже становится слейвом

где тут про отказоустойчивость-то?

Google
Maxim
24.08.2016
21:52:36
это же часы ручной работы

Alexander
24.08.2016
21:53:00
эту синхронизацию нельзя автоматизировать?

как те же хостеры, например, делают?

Maxim
24.08.2016
21:54:21
какие хостеры?

Alexander
24.08.2016
21:54:27
ну, какие-нибудь облачные

хероку там какой-нибудь

Maxim
24.08.2016
21:54:52
я работал в подобном "хостере"

там круглые сутки сидит грядка S2L'ей и смотрит в заббикс

Alexander
24.08.2016
21:55:17
https://www.heroku.com/

мм

Maxim
24.08.2016
21:55:32
дада, я знаю, что такое хероку

но у них не три сервера

и они могут себе позволить круглосуточный мониторинг инфраструктуры

Alexander
24.08.2016
21:57:31
а вариант с объединить SSD в сетевую ФС (Ceph какой-нибудь) и там запускать контейнер с PostgreSQL, 1 на облако?

он нормальный?

Maxim
24.08.2016
21:58:06
а в чем тогда смысл вообще контейнеризировать постгрес?

Alexander
24.08.2016
21:58:25
ну, просто для удобства

доставки

Maxim
24.08.2016
21:58:56
и еще помимо устойчивости многих интересует перфоманс и вот тут-то все начинают советовать так не делать

не городить сетевых файловых систем и вот этого всего

Alexander
24.08.2016
21:59:29
производительность сильно падает даже если NVMe диски?

Maxim
24.08.2016
21:59:40
да хоть в памяти держи

ты в сеть упрешься

Страница 13 из 958