Maksim
не очищает
я просто сразу на ceph и nfs сел)
Салтыдык
один hostPath могут примонтировать много под, если хоть одна очистит, то остальные повалятся по сути
Artur
Работает только на хосте
а хост имеется ввиду та нода, на котором Pod поднялся?
Салтыдык
я просто сразу на ceph и nfs сел)
мы потыкали в gluster, но что-то как-то не очень. Решили вообще от provisioning'а отказаться
Салтыдык
а они не разные для разных подов?
как папка на одной машине может быть разная?
Салтыдык
и юзаете сейчас hostPath ?
да, с самописным драйвером монтирования шард
Etki
И кажись очищает при смерти пода)
полчаса пытался сообразить, откуда у меня такие же воспоминания - это emptyDir, оказывается
Logan
Sergey
Ребят кто пускал websocket через nginx ingress? Делаю по мануалу а ingress стирает заголовки "Connection" и "Upgrade"
Sergey
и в итоге не получается открыть ws коннект
Alexey
А есть ли в кубах возможность сделать локальный named volume из докера? Или только hostPath и всё?
Etki
зачем? в поде все контейнеры видят вольюм
Alexey
зачем? в поде все контейнеры видят вольюм
Как минимум из за того, что можно случайно обосраться с mount'ом на несуществующие директории и из за прав на директории, конечно.
Etki
вы /etc собрались маунтить?
Alexey
@rossmohax Да, вроде этого, но с персистом.
Alexey
@etkee нет, собрался маунтить эластик, к примеру. Но у эластик запускается в контейнере от юзера отличного от рута. При маунте на хост я ожидаемо получу ошибку с правами.
Etki
мда, я думал это говно уже везде починили
Etki
в хабовском репозитории по умолчанию рут
Alexey
@etkee Вот, кстати, об этом в хорошей статье https://blog.amartynov.ru/docker-named-volumes/
Etki
спасибо, я давно уже решил, что вольюмов надо просто избегать как огня
Alexey
@rossmohax Спасибо! Попробую поиграться с этим.
Luo
Хочу бабу
Alexey
@nodekra В случае с маунтами на хосте ("/state/elastic:/usr/share/elasticsearch/data") будет сохраняться мета хоста, что логично и решение приходит простое и убогое: chmod на нужные права снаружи или chown изнутри. Но это чисто проблема на инициализации. Если юзать named volumes(ну или олдовый вариант с data containers и volumes-from), то проблема, естественно, пропадает, потому что мета сохраняется контейнерная.
Alexey
@nodekra Увы, на инициализации не назначает. Можешь проверить с эластиком к примеру. Просто я часто попадался на такое, у нас были любители делать host mounts вместо named volume.
Alexey
Он просто отваливается из за недостатка прав
Konstantin
Я буквально вчера elk поднимал
Alexey
Также логстеш, кстати
Alexey
Официальный контейнер?
Alexey
https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html
Konstantin
Сначала через маунт, потом на волумы перевёл- удобнее
Alexey
У named volumes ещё есть замечательная особеность. Возможность чистится через docker volume prune, когда они в детаче. Иногда полезно бывает, хотя иногда можно неосторожным движением убить всё.
Konstantin
Он просто отваливается из за недостатка прав
Так ты файлы подсовывал свои, не те что контейнер создаёт?
Alexey
На эластике был просто маунт что-то вроде такого ```/state-dir/elastic:/usr/share/elasticsearch/data
Konstantin
ну папка на хосте пустая была? и еластик не поднялся?
Konstantin
Официальный контейнер?
да, его. да собвственно не в образе дело
Alexey
Ну они всё правильно делают. Там User заменяется на elastic, кажется. А прямого маппинга нет. В этом весь и цимес.
Alexey
Маппинга юзера с хостмашины и в контейнере. Теоретически так и с рутом можно попасть если запускать докер демон с ремаппингом рута контейнера, чтобы рут хоста и контейнера отличались. Ну это так, с позиции диванного теоретика говорю :)
Konstantin
ну я понимаю о чём ты, но ты не понимаешь меня
Konstantin
если маунтить(биндить) файл или папку с файлами в контейнер, то права остаюься независимо от того, что там в контейнере
Konstantin
если ты берёшь хост папку пустую и контейнер генерит файлы, то уже от того uid под которым в контейнере создаются они
Konstantin
и тут волумы не причём
Konstantin
ну я этоже и сказал
Alexey
Ну я просто тоже про это хотел сказать. Если всё ок с правами хоста и внутри контейнера, то всё будет ок. Если нет, то увы, всё будет печально.
Alexey
У вольюма проблемы такой не будет. Но и с хостовыми директориями тоже можно это решить chmod'ом, к примеру.
Alexey
Но ведь вольюмы всё равно удобнее, не?)
Konstantin
в чём отличия named volume и просто mount dir?
Konstantin
это тоже самое, просто удобнее
Konstantin
я использую local-persist с докер, эдакий микс
Alexey
я использую local-persist с докер, эдакий микс
Хранишь стейт на хосте? А можно поинтересоваться, что именно?
Konstantin
а named volume тоже на хосте
Konstantin
собственно любая вариация будет хранить на хосте, если это не внейшний плагин aws,nfs,etc
Konstantin
но я про чистый докер, кубера тут нет
Alexey
Ну это я понял. У меня было также в ранчере
Alexey
Просто интересно для каких вещей. Я, например, хранил так данные БД. Прибивал разворачивание контейнеров к хостам определённым и настраивал репликацию.
Alexey
Просто интересно, не дебил ли я, насколько это нормальное решение?
Etki
Хочу бабу
Потолще
Alexey
Там где iops не особо решает, то всякие сетевые хранилища с драйвером под докер
Konstantin
я всё через local-persist или просто named volume храню, но у меня swarm. Всё - stateful конечно. Конфиги, бд, данные
Alexey
А всякие нетворк fs типа глюстры, cephfs, nfs? Там же удобно хранить конифги, да и некоторые другие вещи. P.S. В этом плане кубы просто огонь. ConfigMap гениальны
Konstantin
ну так кто мешает то? вопрос с правами не отменяется от бэкэнда
Alexey
@nodekra Ок, спасибо за ответ.
Konstantin
@nodekra Ок, спасибо за ответ.
какой? поговорили не о чём)
Alexey
Меня просто очень интересует тема stateful'а в докере, кто и как её решает. Потому что это всегда боль и вопрос компромисов. Поэтому любые ответы на эту тему очень интересны. Да и диалог был не оффтоп — это радует)
Alexey
@etkee правила парсинга логов у логстеша, к примеру, особо не забьёшь в переменные)
Zon
Why not?)
Да я только за)