
Aleksey
07.06.2018
13:18:27

Sergey
07.06.2018
13:19:08

Aleksey
07.06.2018
13:20:30
Да понятно, короче, тут трудности команды

Google

Sergey
07.06.2018
13:21:33
главное на шею не садите, а то потом не сбросите:)

Aleksey
07.06.2018
13:24:13

Denis
07.06.2018
13:41:14
Народ всем привет, может кто сталкивался..
не могу пробросить header's X-forward-For, X-real-IP
использую traefik(daemonset) -> ingress ->service -> pod
взаимодействует через сеть weave
добавил externalTrafficPolicy: Local на балансер и сервис заголовки пустые, подставляет ip ingress service

Maksim
07.06.2018
14:28:55
traefik должен формировать жти хедары

Михаил
07.06.2018
14:43:20
Мы с такой проблемой вешали haproxy
прямо на ноду с кубом
и уже через него в ingress

Ilya
07.06.2018
14:44:10
Насколько я знаю, в > 1.5 версии Traefik уже давно хидер пробрасывается
X-Real-Ip
Функция отвечающая за формирование нового хидера - https://github.com/vulcand/oxy/blob/master/forward/rewrite.go#L22

Andor
07.06.2018
15:25:39
Смотрю некие jetstack дофига околокуберного делает, есть у кого опыт с их поделками? Если есть, то как ощущения?

Juriy
07.06.2018
15:45:17

kvaps
07.06.2018
15:45:50
:)

Google

Рустам
07.06.2018
17:27:35
Всем привет, такой вопрос, есть django апп, у него есть встроенный веб сервер, он синхронный, чтобы утилизировать ядра прикручивается гуникорн, профитно ли отказаться от гуникорна и утилизировать ядра через куб наделав инстансов и балансировку между ними, если у кого-то есть опыт был бы очень рад послушать

Paul
07.06.2018
17:28:34

Andor
07.06.2018
17:28:36
удобнее комбинировать
он же сказал, что gunicorn юзает

Рустам
07.06.2018
17:29:01

Paul
07.06.2018
17:29:29
во-вторых – кубер нужен, чтобы запускать приложения. Если ваш джанго-сервер поддерживает работу в компании (то есть можно запустить несколько апп и конфликтовать они не будут) - кубер ваш друг и товарищ
но это большое если :)

Рустам
07.06.2018
17:29:55

Paul
07.06.2018
17:30:01

Andor
07.06.2018
17:30:18

Paul
07.06.2018
17:30:26
от гуникрона или uwsgi вам все равно не убежать

Andor
07.06.2018
17:31:16
теоретически можно асинхронную джангу сделать, но это не универсальное решение подходящее всем

Рустам
07.06.2018
17:31:22
GIL.
Таки процессы же там, там гил не мешает

Paul
07.06.2018
17:31:39
это наилучший вариант. делаем контейнер с unicron+django и размножаем. Главный вопрос – как джанго прожует работу в кластере, штатных средств кластеризации там не было.
зачем в контейнере запускать несколько процессов? вам проще несколько контейнеров запускать

Andor
07.06.2018
17:32:15
ну стейт лежит в кешах всяких и базах

Рустам
07.06.2018
17:32:21

Andor
07.06.2018
17:32:22
так что небольшая проблема

Deep Sea
07.06.2018
17:32:43
стейт в кеше это проблема ;)

Google

Andor
07.06.2018
17:32:54
прометеем метрики при 1 воркере неудобно снимать %)

Stanislav
07.06.2018
17:32:55

Paul
07.06.2018
17:33:30
так что небольшая проблема
нет, это не то, что бы проблема. Это вопрос. И вопрос звучит очень просто – может ли существующий воркер работать в кластере. и этот вопрос надо задавать программисту. Может там все разумно сделано под кластер. А кеша на запись в джанго по умолчанию нет (и я не представляю, кому может в джанго такая светлая мысль вообще в голову прийти)
а кеши на чтение решаются элементарными sticky sessions
ну или шаровым кешем в редисе или мемкеше

Рустам
07.06.2018
17:37:50
Итак, самый оптимальный вариант это сунуть гуникорн в контейнер с апом в один воркер, а потом эти контейнеры плодить и балансить, я правильно понимаю? И есть ли какой нибудь оверхед в этом, кроме того что контейнер в размере больше становится?
А и чем лучше балансить, нжинксом или средствами куба?
Если я не корректно задаю вопрос подправьте, я не силен в предметной области

Andor
07.06.2018
17:47:39
а "средства куба" это у тебя что?
nginx ingress?
а статику джанговскую ты как раздаёшь кстати?

Рустам
07.06.2018
17:48:52

Andor
07.06.2018
17:49:39
а он у тебя где?
Ingress Controller может быть не только nginx прост

Рустам
07.06.2018
17:50:09

Andor
07.06.2018
17:50:31
ok
и деплоится отдельным Deployment?

Рустам
07.06.2018
17:52:07

Andor
07.06.2018
17:52:38
а есть ли контроллер который умеет несколько разных Deployment создавать и контролировать чтобы там были всегда те версии которые надо и делать rollback на предыдущие версии для всех подконтрольных деплойментов?

Google

Andor
07.06.2018
17:52:51
ться

Рустам
07.06.2018
17:54:23
Подозреваю что нет, я сейчас пытаюсь разобраться с инфраструктурой в новом проекте и спрашиваю бест вейс

Andor
07.06.2018
17:54:43
это я не у тебя лично спрашиваю, а у чата вообще

Рустам
07.06.2018
17:56:35

Andor
07.06.2018
17:57:14
ну так я спрашиваю как раз про то чтобы контроллер контролировал эту "связанность контейнеров"

Lucky SB
07.06.2018
17:57:53
поднимите в одном поде контейнер с nginx и статикой и контейнер с джанго бекендом

Andor
07.06.2018
17:58:03
да так и делаем щас
но хотелось бы статику отделить
правда не знаю зачем %)
перфекционизм %)

Lucky SB
07.06.2018
17:58:38
тогда надо широко шагать
статику на сдн

Andor
07.06.2018
17:58:51
написать свой контроллер?
ну CDN надо будет как-то вычищать при деплоях, что может быть не так удобно

Lucky SB
07.06.2018
17:59:48
да ладно.... живут же как-то люди

Andor
07.06.2018
17:59:54
да я не спорю
но у нас вообще CDN нету для этого щас :)

Lucky SB
07.06.2018
18:00:20
ну тогда принцип - работает, не трогай )

Google

Andor
07.06.2018
18:00:30
ну тоже верно

Dmytro
07.06.2018
20:13:00

Andor
07.06.2018
20:15:39
alertmanager в прометее :)

Dmytro
07.06.2018
20:16:52

Stanislav
07.06.2018
20:18:08
Не помогло(
1.10.1

Dmytro
07.06.2018
20:18:32
orphaned pod может появиться когда идет rolling update деплоймента а тут старый под удалили вручную или там нода умерла и под перешедулился на другую. В итоге выходит что куб заскейлил rs от этого пода в 0 но при этом его перезапустил

Andor
07.06.2018
20:19:40
но при этом сам RS ещё жив, верно?

Stanislav
07.06.2018
20:20:03
Это бы я еще понял, тут же на ровном месте

Dmytro
07.06.2018
20:25:18
но у нас не джанго а фласк если что и апп простой как табуретку - принять json и запихнуть в очередь

Andor
07.06.2018
20:26:51
он у вас и асинхронный наверное до кучи

Dmytro
07.06.2018
20:29:08

Andor
07.06.2018
20:29:24
сам-то как думаешь? :)

Dmytro
07.06.2018
20:29:31

Andor
07.06.2018
20:30:15
но конечно лучше версионировать и не трахать мозги
один хер s3 есть

Dmytro
07.06.2018
20:31:09
но при этом сам RS ещё жив, верно?
RC может быть жив с desired=0 а может и быть удален уже если кто-то вручную удаляет что-то варварски. Но под уже к RC не привязан даже если он жив (по крайней мере в 1.4 и 1.5 так)

Andor
07.06.2018
20:32:17
у тебя кстати HPA по стандартным метрикам работает?
или кастом подключал?

Dmytro
07.06.2018
20:33:05
сам-то как думаешь? :)
так дело нехитрое же, у меня вот в одном проекте есть версионирование для убогих - просто рандомный хеш генерируется при деплое и потом все ссылки на статику выглядят /static/<hash 32 chars>/<css|js|img|...>/...