Maxim
у меня неймспейсы попроектные
Anonymous
да, наверное так правильнее
Maxim
конфигмапы для одинаковых компонентов одинаково называются
Etki
я вообще не рассматривал вариант делать разные окружения в одном кластере
Maxim
+1
Anonymous
документация кубернетеса рассматривает
Anonymous
не а че, несколько кластеров городить?
Etki
я про то, что физически можно, но я этим пользоваться не буду
Etki
да
Etki
тем более что в gke через баш довольно легко создается/прибивается
Etki
я исходил из того, что вся эта штука с самого начала должна удовлетворять phoenix server фаулера
Anonymous
с одним бы разобраться... слишком много сущностей, у меня переполнение информацией, пойду в угол забьюсь
Maxim
ггг
kay
Коллеги, есть проблемка. 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
kay
не связано ли это с тем, что один и тот же hostpath не отдается двум работающим подам? и как этого избежать?
Maxim
связано
Maxim
сейчас уже только docker kill
kay
это не наш метод
kay
а как сделат ьтак, чтобы в будущем конфликта не было?
Etki
я опять залезу со своими дурацкими советами, но если там не пользовательская статика, то, может, просто вкомпилить ее в докер-образ?
kay
это ж статика
Maxim
а в дальнейшем - либо не делай роллинг-апдейтов, либо тип доступа к шаре на read-write-many поменяй
kay
вот жешь... HostPath судя по табличке поддерживает только ReadWriteOnce
kay
http://kubernetes.io/docs/user-guide/persistent-volumes/
Maxim
ну тогда сначала останавливай старый под, потом поднимай новый :(
kay
даунтайм
Maxim
ну никак по-другому же
Maxim
роллинг-апдейт сначала запускает
Maxim
а старый еще работает
Maxim
а новый уже пытается смонтировать
Maxim
а низзя
Maxim
дедлок
Maxim
то есть вот это именно красивый, классический дедлок
Maxim
прям по мануалу
Timur
кстати статику в образ - вполне себе вариант иногда
Maxim
у меня так с blog.amplifr.com, например
Maxim
там статика вся прям в образе
Maxim
но она не меняется от деплоя к деплою
Maxim
мы ж не знаем, как там у @kay_rus
Maxim
может у него в эту папку куча демонов срут статикой онлайн
kay
такое тоже может быть
kay
ну зашибись. теперь еще и docker не отвечает =\
Etki
логи?
Maxim
ооо
kay
а ничего в логах.
Maxim
агада
kay
status alive
Maxim
ты скорее всего поймал https://github.com/docker/docker/issues/13885
kay
висит и всё
kay
да нет у меня high load )
Maxim
у меня прошлой ночью такое было
Maxim
да у меня тоже нет
Maxim
бородатые докерописатели просят килять демона с USR1 и присылать им трейс
Maxim
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
оказалось враки
kay
такбличка неправильна. http://kubernetes.io/docs/user-guide/persistent-volumes/
kay
можно запилить: 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
у тебя неймспейс в метки съехал
Maxim
или это метка такая?
kay
метка такая
kay
ибо нельзя pv к namespace привязывать
Maxim
кстати да
Maxim
pvc можно, а pv - нельзя
kay
так вот. 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
kay
не хотелось костыли с claim+volume сторить
kay
строить*
kay
но пришлось
Maxim
так и как в итоге сделал?
kay
через описание ReadWriteMany в pv + claim. а под уже этот claim использует
Maxim
ну так вроде бы это the only way, не?
Maxim
как ты хотел без этого сделать?
kay
вот так: - deployment: - pod description: volumes: - name: media-persistent-storage hostPath: path: /localdata/prod-ng/media accessModes: - ReadWriteMany
Maxim
ааа
kay
но в данном слачае api принимает на вход только hostpath с path. и всё
Timur
мол если локальный стор то и нефиг claim ?
kay
ну да
kay
без правки сорцов никак
Maxim
https://docs.google.com/document/d/1Q2juTrM_oA5SatVCbLoal0k68dGaiH5ON_VVI5-ns9g/edit
Maxim
коллеги, это обязательно нужно прочитать