Max
на одних нодах ssd, на других hdd
Max
возможно из-за этого?
Dmitry
а в каком состоянии находятся у вас поды до того, как взлететь ?
Dmitry
у нас была проблема с долгим пендинд-состоянием и все было в нехватке памяти для етсд (расход был ограничен)
Vadim
если etcd на нодах с hdd, то будет весело
bebebe
на одних нодах ssd, на других hdd
А это постоянно повторяется? 2 и 6 секунд?
Max
ну иногда 3 и 8 секунд соответственно
G72K
если etcd на нодах с hdd, то будет весело
Запускать под eatmydata, делов то :)
Max
если etcd на нодах с hdd, то будет весело
нет, на отдельных впсках под мастер с ssd
bebebe
ну иногда 3 и 8 секунд соответственно
Ну вот есть отправная точка откуда копать...
G72K
Тред пропустил, а за сколько хочется под запустить?
Max
Ну вот есть отправная точка откуда копать...
да, image весит 18гб, из-за этого на hdd оно запускается дольше на 5 сек
Max
простите)
bebebe
ну иногда 3 и 8 секунд соответственно
И потом экспериментируйте уже со своим образом, а не alpine. Тег укажите не latest
Max
Тред пропустил, а за сколько хочется под запустить?
в идеале за такое же время как и вызов docker api
Max
но даже на машинах с ssd время еще на что-то уходит, порядка 3х секунд
Max
будем копать 🙂
Max
спасибо за наводки
Max
Зачем такая скорость?
по большей степени мой внутренний перфекционизм, т.к. мне кажется что кубу 3-5 секунд слишком много на банальные вызовы докер api и обращение к etcd
𝚔𝚟𝚊𝚙𝚜
А git diff норм работает?
сейчас проверил, когда репо залочен показывает: Binary files differ, когда разлочен показывает нормальный diff
Max
А ну и отлично. Я как раз пообедать хотел
однако тест с альпином мы проводили, и он весит очень мало)
Max
не думал что hdd добавляет к запуску альпина 4-5 секунд
Andor
overlayfs?
Max
overlay2
G72K
да, image весит 18гб, из-за этого на hdd оно запускается дольше на 5 сек
Можете ещё с storage драйверами поиграть. Я бы попробовал VFS на новых ядрах с xfs и включенной reflink=1
Max
а новые ядра это > 4.15+?
Max
на нодах ubuntu 18.04
Andor
reflink вроде в совсем новых
Andor
новее чем в 18.04
𝚔𝚟𝚊𝚙𝚜
hwe
Andor
для 18.04 ещё нет hwe
Max
жаль
Max
видимо с 18.04.2 появится?
Andor
хз
𝚔𝚟𝚊𝚙𝚜
ставь pve-kernel ;)
Andor
вряд ли это поможет
𝚔𝚟𝚊𝚙𝚜
для 18.04 ещё нет hwe
так там и так 4.15
Max
непонятно почему даже мелкие image запускаются по 5 секунд чисто в докере, без куба
𝚔𝚟𝚊𝚙𝚜
linux-image-generic/bionic-updates 4.15.0.38.40 amd64 Generic Linux kernel image
Andor
угу, потому и нету hwe
Andor
andor@titude:~$ docker pull ubuntu Using default tag: latest latest: Pulling from library/ubuntu 473ede7ed136: Pull complete c46b5fa4d940: Pull complete 93ae3df89c92: Pull complete 6b1eed27cade: Pull complete Digest: sha256:29934af957c53004d7fb6340139880d23fb1952505a15d69a03af0d1418878cb Status: Downloaded newer image for ubuntu:latest andor@titude:~$ time docker run -it ubuntu uname -a Linux c3c7f35393f6 4.15.0-38-generic #41-Ubuntu SMP Wed Oct 10 10:59:38 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux real 0m2.306s user 0m0.028s sys 0m0.025s
Andor
вот на ноуте, тоже 2.3 секунды
𝚔𝚟𝚊𝚙𝚜
ну а вообще тебе и правда cri-o нужен, если хочешь чтоб прям быстро было
Max
root@msk4:~# time docker run -it --rm alpine:3.8 /bin/sh -c id uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video) real 0m4.435s user 0m0.095s sys 0m0.017s
Andor
причём второй и далее запуски 0.9 секунды
Max
причём второй и далее запуски 0.9 секунды
у меня тоже уменьшилось, но на 1 секунду примерно
Max
то есть было 4.5, стало 3.5
Max
почитал про crio, что-то не понял в чем его плюсы? Помимо того, что в нем нет ненужного и он заточен под куб
𝚔𝚟𝚊𝚙𝚜
https://hsto.org/webt/q8/vv/zf/q8vvzfa4zw7ydge80hhj_higkhi.png
ну он умеет запускать контейнеры гораздо быстрее
𝚔𝚟𝚊𝚙𝚜
к сведению: containerd - это такой же cri-o только от докера
𝚔𝚟𝚊𝚙𝚜
ну грубо говоря, они выпилили из докера все ненужное получился containerd
Vadim
containerd не от докера, это докер перепелили внутренности на containerd
𝚔𝚟𝚊𝚙𝚜
не знал, думал это они его написали
Vadim
то есть, оно на основе libcontainer, который от докера, но какое-то время оба проекта параллельно шли
Валентин
containerd не от докера, это докер перепелили внутренности на containerd
Там ж вроде была какая-то юридическая история, в результате которой ядро докера стало containerd и докер на нем теперь базируется
Vadim
теперь да
Max
Подскажите, я правильно использую weights в podAntiAffinity? podAntiAffinity: { preferredDuringSchedulingIgnoredDuringExecution: [{ weight: 1, podAffinityTerm: { topologyKey: 'kubernetes.io/hostname', labelSelector: { matchExpressions: [{ key: 'projectID', operator: 'NotIn', values: [String(project.id)] }] } } }, { weight: 50, podAffinityTerm: { topologyKey: 'kubernetes.io/hostname', labelSelector: { matchExpressions: [{ key: 'game', operator: 'NotIn', values: [game.short_name] }] } } }] }
Max
мне нужно чтобы поды с разными labels game и projectID размещались на разных нодах, если есть возможность
Max
но важнее чтобы поды с разными game были на разных нодах, нежели projectID
Dmytro
Как оказалось это тоже не проблема. В git-crypt можно иметь несколько ключей под каждый уровень доступа и шифровать их для разных пользователей: https://github.com/AGWA/git-crypt/blob/master/doc/multiple_keys.md
Но ведь это ничего не решает для случая когда человек уходит из компании - всё равно нужно менять все секреты куда у него был доступ. Ну и если есть CI у которого есть доступ ко всем ключам то можно смело считать что у всех кто имеет доступ к билду тоже есть этот доступ
Sergey
в Vault есть отзыв секретов и токенов
𝚔𝚟𝚊𝚙𝚜
А в случае с vault не надо?
Sergey
и делегирование ролей
Sergey
containerd не от докера, это докер перепелили внутренности на containerd
насколько мне известно containerd всегда был ядром докера но потом форкнулся в отдельный проект а сейчас докер допиливает себя на основе плюшек containerd
Sergey
https://habr.com/company/flant/blog/325358/
𝚔𝚟𝚊𝚙𝚜
Вот допустим есть у вас база данных, в ней есть сервисный юзер и пароль. Пароль от базы сохранен в Vault. К этому паролю имеет доступ: - сама база (она устанавливает его перед запуском) - сервис которые использует эту базу (узнает пароль перед запуском) - юзер который деплоит сервис Я правильно понимаю концепт?
𝚔𝚟𝚊𝚙𝚜
в случае кода юзер увольняется, мы должны поменять пароль в Vault и рестартануть базу и сервис
Andrey
в случае кода юзер увольняется, мы должны поменять пароль в Vault и рестартануть базу и сервис
там вроде даже проще, не пароль меняешь, а токен доступа к Vault сбрасываешь и все. Ну это если сотрудник не знал самого пароля от базы. Если знал, то все по старинке.
𝚔𝚟𝚊𝚙𝚜
а, понял
𝚔𝚟𝚊𝚙𝚜
плюс я не совсем понимаю как шифрование самой базы для Vault организовать