
Alexander
20.09.2016
10:55:30
Да. теперь надо курить остальные доки и api
пишу свою обертку для развертывания

Maxim
20.09.2016
10:58:52
может стоит посмотреть на helm/deis пока не поздно?

Тимур
20.09.2016
11:11:04
а это кто-то юзает ?

Google

Maxim
20.09.2016
11:11:20
ну тут вроде есть любители
просто это уже готовый велосипед

Alexander
20.09.2016
11:11:59
хмм
надо будет тоже посмотреть
Не совсем то что нужно. Но код можно посмотреть.

Maxim
20.09.2016
11:43:57
Еще spread
https://github.com/redspread/spread
в общем есть из чего выбрать

Andrey
20.09.2016
12:49:28
философские размышления: если разделять неймспейсы на staging/production - имеет ли смысл иметь одинаковые названия configmap в них? вроде как удобно, а ну как перепутаешь и пошлешь тестовый трафик на прод :(

Maxim
20.09.2016
12:50:24
гггг
у меня неймспейсы попроектные

Andrey
20.09.2016
12:50:53
да, наверное так правильнее

Maxim
20.09.2016
12:51:01
конфигмапы для одинаковых компонентов одинаково называются

Google

Fike
20.09.2016
12:52:58
я вообще не рассматривал вариант делать разные окружения в одном кластере

Maxim
20.09.2016
12:53:13
+1

Andrey
20.09.2016
12:53:20
документация кубернетеса рассматривает
не а че, несколько кластеров городить?

Fike
20.09.2016
12:53:44
я про то, что физически можно, но я этим пользоваться не буду
да

Maxim
20.09.2016
12:53:53

Fike
20.09.2016
12:54:00
тем более что в gke через баш довольно легко создается/прибивается
я исходил из того, что вся эта штука с самого начала должна удовлетворять phoenix server фаулера

Andrey
20.09.2016
12:54:38
с одним бы разобраться... слишком много сущностей, у меня переполнение информацией, пойду в угол забьюсь

Maxim
20.09.2016
12:54:45
ггг

kay
20.09.2016
13:29:27
Коллеги, есть проблемка. nginx deployment хостит статику с hostPath и привязан к конкретному хосту. решил обновить. запилил новую версию образа контейнера. теперь имею вечный Pending и вечный Terminating. в events logs всё ок:
2016-09-20T13:07:00Z 2016-09-20T13:07:00Z 1 nginx-2905510493-rodsr Pod Normal Scheduled {default-scheduler } Successfully assigned nginx-2905510493-rodsr to ubuntu3
не связано ли это с тем, что один и тот же hostpath не отдается двум работающим подам? и как этого избежать?

Maxim
20.09.2016
13:30:04
связано
сейчас уже только docker kill

kay
20.09.2016
13:30:29
это не наш метод
а как сделат ьтак, чтобы в будущем конфликта не было?

Fike
20.09.2016
13:30:57
я опять залезу со своими дурацкими советами, но если там не пользовательская статика, то, может, просто вкомпилить ее в докер-образ?

kay
20.09.2016
13:30:59
это ж статика

Maxim
20.09.2016
13:31:00
а в дальнейшем - либо не делай роллинг-апдейтов, либо тип доступа к шаре на read-write-many поменяй

Google

kay
20.09.2016
13:35:22
вот жешь... HostPath судя по табличке поддерживает только ReadWriteOnce
http://kubernetes.io/docs/user-guide/persistent-volumes/

Maxim
20.09.2016
13:35:59
ну тогда сначала останавливай старый под, потом поднимай новый :(

kay
20.09.2016
13:36:07
даунтайм

Maxim
20.09.2016
13:36:36
ну никак по-другому же
роллинг-апдейт сначала запускает
а старый еще работает
а новый уже пытается смонтировать
а низзя
дедлок
то есть вот это именно красивый, классический дедлок
прям по мануалу

Тимур
20.09.2016
13:43:25
кстати статику в образ - вполне себе вариант иногда

Maxim
20.09.2016
13:43:50
у меня так с blog.amplifr.com, например
там статика вся прям в образе
но она не меняется от деплоя к деплою
мы ж не знаем, как там у @kay_rus
может у него в эту папку куча демонов срут статикой онлайн

kay
20.09.2016
13:44:43
такое тоже может быть
ну зашибись. теперь еще и docker не отвечает =\

Google

Fike
20.09.2016
13:47:14
логи?

Maxim
20.09.2016
13:47:27
ооо

kay
20.09.2016
13:47:56
а ничего в логах.

Maxim
20.09.2016
13:48:00
агада

kay
20.09.2016
13:48:01
status alive

Maxim
20.09.2016
13:48:06
ты скорее всего поймал https://github.com/docker/docker/issues/13885

kay
20.09.2016
13:48:07
висит и всё
да нет у меня high load )

Admin
ERROR: S client not available


Maxim
20.09.2016
13:48:19
у меня прошлой ночью такое было
да у меня тоже нет
бородатые докерописатели просят килять демона с USR1 и присылать им трейс
Maxim Filatov @lk4d4 смотри, какая штука:
# strace -p 16080
Process 16080 attached
read(37, "<probe> ERRO: 2016/09/18 20:34:2"..., 32768) = 156
futex(0x2a69030, FUTEX_WAKE, 1) = 1
futex(0x2a68f70, FUTEX_WAKE, 1) = 1
futex(0xc8203fb508, FUTEX_WAKE, 1) = 1
write(38, "{\"log\":\"\\u003cprobe\\u003e ERRO: "..., 236) = 236
read(37, "<probe> ERRO: 2016/09/18 20:34:3"..., 32768) = 156
futex(0x2a69030, FUTEX_WAKE, 1) = 1
futex(0x2a68f70, FUTEX_WAKE, 1) = 1
futex(0xc8202fe108, FUTEX_WAKE, 1) = 1
write(38, "{\"log\":\"\\u003cprobe\\u003e ERRO: "..., 236) = 236
read(37, "<probe> ERRO: 2016/09/18 20:34:4"..., 32768) = 156
futex(0x2a69030, FUTEX_WAKE, 1) = 1
futex(0x2a68f70, FUTEX_WAKE, 1) = 1
futex(0xc82002ad08, FUTEX_WAKE, 1) = 1
ну и так в цикле
16080 - это /usr/bin/dockerd
docker ps висит вечность
в логе демона девственная чистота
куда копать-то вообще?
Maxim Filatov похоже на https://github.com/docker/docker/issues/13885
на всякий случай написал туда
Alexander Morozov @bregor надо SIGUSR1 послать и трейс ещё собрать. Там по ходу миллиард причин может быть
Ещё надо dmesg проверить
Maxim Filatov блин, я несколько часов назад все расстрелял :disappointed:
уже нельзя было ждать дальше
а почему USR1?
Alexander Morozov Ну это все равно не фикс
Но оно тогда трейс горутин выдаёт
Посмотрели бы что висит
Короче там что-то зависает, может netlink или volume driver
И просто мьютекс занят из-за этого
А ps пытается у каждого контейнера залочить мьютекс


kay
20.09.2016
14:26:39
оказалось враки
такбличка неправильна. http://kubernetes.io/docs/user-guide/persistent-volumes/
можно запилить:
apiVersion: v1
kind: PersistentVolume
metadata:
name: media-prod-ng
labels:
type: local
app: icp
icp: media
namespace: prod-ng
spec:
capacity:
storage: 20Gi
accessModes:
- ReadWriteMany
hostPath:
path: /localdata/media

Maxim
20.09.2016
14:28:22
у тебя неймспейс в метки съехал
или это метка такая?

kay
20.09.2016
14:28:33
метка такая
ибо нельзя pv к namespace привязывать

Google

Maxim
20.09.2016
14:28:50
кстати да
pvc можно, а pv - нельзя

kay
20.09.2016
14:32:36
так вот. accessModes нельзя прописать к volume в описании самого пода. потому что принимается всего одно значение "Path": https://github.com/kubernetes/kubernetes/blob/6a9a93d46954f69c8736a51cf6a8f073a962ad25/pkg/api/v1/types.go#L537
а если это значение не прописано, то host_path автоматом ставит ReadWriteOnce: https://github.com/kubernetes/kubernetes/blob/6a9a93d46954f69c8736a51cf6a8f073a962ad25/pkg/volume/host_path/host_path.go#L94
не хотелось костыли с claim+volume сторить
строить*
но пришлось

Maxim
20.09.2016
14:34:32
так и как в итоге сделал?

kay
20.09.2016
14:35:11
через описание ReadWriteMany в pv + claim. а под уже этот claim использует

Maxim
20.09.2016
14:35:41
ну так вроде бы это the only way, не?
как ты хотел без этого сделать?

kay
20.09.2016
14:37:05
вот так:
- deployment:
- pod description:
volumes:
- name: media-persistent-storage
hostPath:
path: /localdata/prod-ng/media
accessModes:
- ReadWriteMany

Maxim
20.09.2016
14:37:26
ааа

kay
20.09.2016
14:37:34
но в данном слачае api принимает на вход только hostpath с path. и всё

Тимур
20.09.2016
14:37:42
мол если локальный стор то и нефиг claim ?

kay
20.09.2016
14:37:48
ну да
без правки сорцов никак

Maxim
20.09.2016
18:11:46
https://docs.google.com/document/d/1Q2juTrM_oA5SatVCbLoal0k68dGaiH5ON_VVI5-ns9g/edit
коллеги, это обязательно нужно прочитать

Тимур
20.09.2016
18:34:06
спасибо!

Maxim
20.09.2016
19:19:59
https://github.com/kubernetes/dashboard/releases/tag/v1.4.0

Dmitriy
21.09.2016
06:49:37
Кто какие message queue использует? Что бы кластеризовались нормально в kubernetes и была поддержка авторизации, для того что бы можно было снаружи доступ открыть. Сейчас у нас используется gearman и он ни то ни другое не умеет