Andrey
Ему страницы некуда деть, поэтому он всё время page fault'ит да writeback синхронный триггерит. Вот всё и тормозит в контексте ядре.
Andrey
Ядерное время разве в зачёт контейнеру не идёт?
Во-первых, да. Во-вторых, даже если бы зачёт был бы не в cgroup, лагали бы workload'ы всё равно так же.
Andrey
Вот только я не уверен, что они CFS throttling'у подвержены. Тот же kswapd, например. Вот это надо изучить.
G72K
Во-первых, да. Во-вторых, даже если бы зачёт был бы не в cgroup, лагали бы workload'ы всё равно так же.
Ну вот, раз идёт то на графиках был бы рост цпу, а говорят что нет
G72K
Обычно если медленно, но графики спокойные это DNS :)
Andrey
Ну вот, раз идёт то на графиках был бы рост цпу, а говорят что нет
Анал-карнавал эти CPU usage графики да ещё и с cgroups. Вот это даст чётко понять, почему висит: https://github.com/iovisor/bcc/blob/master/tools/offcputime_example.txt А висит ли вообще: https://github.com/iovisor/bcc/blob/master/tools/cpudist_example.txt
Vadim
https://operators.gitbook.io/operator-developer-guide-for-red-hat-partners/
G72K
https://operators.gitbook.io/operator-developer-guide-for-red-hat-partners/
Все эти ямлы не кастомизируются вообще никак. Как мне установить оператор и network policy к нему?
Vadim
Все эти ямлы не кастомизируются вообще никак. Как мне установить оператор и network policy к нему?
ямлы кастомизируются ровно в той мере, как позволяет оператор же. Ну или создать неймспейс первым и установить туда политики - а затем запускать оператор
Vadim
хотя это строго говоря читерство конечно
G72K
ямлы кастомизируются ровно в той мере, как позволяет оператор же. Ну или создать неймспейс первым и установить туда политики - а затем запускать оператор
Нет, я про ямлы самого оператора в этом operatorhub, судя по доке в кластере есть оператор операторов (operator lifecycle) он из операторхаба подтягивает свежие версии операторов, т.е. они устанавливаются как есть, без кастомизаций
Anton
любой оператор так или иначе оператор оператора
Anton
все, что в итоге делает оператор это создает объект через апи, который будет обработан другим оператором/контроллером
G72K
Да, но у каждого оператора есть свой конфиг в CRD, там должны быть поля для всего, аки prometheus-operator
Вот этот? На вид все прибито гвоздями ещё и магическая метадата (это ямл тэги ?) и магические значения , навроде namespace: placeholder . https://github.com/operator-framework/community-operators/blob/master/community-operators/prometheus/prometheusoperator.0.22.2.clusterserviceversion.yaml
G72K
оператор операторов операторов это какой-то ад
Любой паттерн можно абстрагировать на уровень выше. Математики любят это особенно :)
G72K
это метадата для OLM, сам оператор будет читать https://github.com/operator-framework/community-operators/blob/master/community-operators/prometheus/prometheus.crd.yaml
Ну это уже внутренности оператора и его проблемы, я про то что рэдхат предлагает. Самому оператору тоже нужны network policy , а они у каждого свои , формат ямлов вообще под них не очень подходит
Vadim
оператор операторов операторов это какой-то ад
ну да - оператор вернего уровня CVO, он ставить операторы второго уровня, один из них OLM, который ставит другие операторы. Их можно удобно апдейтить отдельно, например сменить сетевой плагин в апдейте
Vadim
только опять же, всех загонять в рамки "описывайте NP в CRD" будет неудобно, лучше и правда сначала подготовить namespace с политиками любым удобным способом
G72K
ввернуть обязательный NetworkPolicy для всех операторов - это интересная идея
Я уверен, что если у людей нет jsonnet или другой более мощной системы генерации ямлов, то у них либо нет network policy либо они очень широкие и общие. Такой уровень кастомизации на темплейты ямлов вообще плохо ложится.
Vadim
Да и тут мы приходим к баш лапше :)
угу, думаю проинструктируют архитеторов говорить клиентам "нормально делай - нормально будет" и совать им kustomize/ksonnet
Михаил
нет, питонячее добро
Метрики впилите в него
Михаил
Мы принесли тебе оператор операторов, что бы ты мог использовать оператор, когда используешь оператор
Vadim
поставьте еще один gitlab CI в кубенях с DinD да выпейте чаю
G72K
угу, думаю проинструктируют архитеторов говорить клиентам "нормально делай - нормально будет" и совать им kustomize/ksonnet
Вообще вопрос кастомизации стоит очень остро и решений не видно :( тот же Prometheus-operator скажем, в зависимости от того на сколько неймспейсов он раскинут ему нужны разные rbac и никакое описание деплоя на ямлах не учтет это, оставаясь читаемым
Vitalii
поставьте еще один gitlab CI в кубенях с DinD да выпейте чаю
Насчет dind. Поднимать в поде dind контейнер и пользовательский, и сетить тому docker_host, какие могут быть проблемы с таким подходом в плане секьюрити? Например пользователь может поднять привелегерованный контейнер в привелигерованном dind контейнер, и что то нахимичить на k8s node?
Vadim
https://www.projectatomic.io/blog/2014/09/granting-rights-to-users-to-use-docker-in-fedora/
Vitalii
А какие альтернативы чтобы билдить контейнеры и пушить контейнеры в k8s? Наглил https://github.com/GoogleContainerTools/kaniko , но выглядит сыро
Sergey
Ребзя а кто пробовал https://octopus.com/
Vadim
А какие альтернативы чтобы билдить контейнеры и пушить контейнеры в k8s? Наглил https://github.com/GoogleContainerTools/kaniko , но выглядит сыро
https://buildah.io/, оно может работать без рута в контейнере, даже в tmpfs если имадж потом пушится в регистри
Vitalii
Большое спасибо, гляну
Rainbow
А какие альтернативы чтобы билдить контейнеры и пушить контейнеры в k8s? Наглил https://github.com/GoogleContainerTools/kaniko , но выглядит сыро
купить на hetzner.com дедик за 40евро и поставить туда gitlab-runner без k8s. Ну или не там. Это самое дешманское решение. И простое.
Pavel
Ребзя а кто пробовал https://octopus.com/
У нас используется, вполне сносно для доставки приложений в ms окружениях
Vadim
купить на hetzner.com дедик за 40евро и поставить туда gitlab-runner без k8s. Ну или не там. Это самое дешманское решение. И простое.
чтобы мониторить и апдейтить его отдельно - а так же отдать его майнерам если накосячил в конфигурации докера
Rainbow
чтобы мониторить и апдейтить его отдельно - а так же отдать его майнерам если накосячил в конфигурации докера
node_exporter через ansible роль долго ставится? там и докер нужен только чтобы сделать docker build разве что
Vadim
node_exporter через ansible роль долго ставится? там и докер нужен только чтобы сделать docker build разве что
апдейты тоже через ansible применять? Клауднейтив который мы заслужили
Rainbow
апдейты тоже через ansible применять? Клауднейтив который мы заслужили
это снятие левака с k8s кластера + экономия в принципе на железе для build.
Rainbow
Это в любом случае на порядок дешевле чем любом сервис который билдит образы из репы. И на порядок проще чем просто админить k8s. Не?
Vadim
дополнительные 40 баксов за билдхост, который будет bottleneck и потом тюнить раннеры чтобы оно хоть как-то раскидывало нагрузку, да еще и управлять докером\сервисом раннеров ручками, а не через Deployment?
Vadim
каменный топор на порядок проще кухонного ножа - тут я спорить не стану
Rainbow
ок, мои решения на команды 5-10 человек. Можно закрывать тему. Я забываю про то, что есть 100-1000 команды 🙈
Sergey
нужно больше стикеров на все случаи жизни про гошку это же с SRE Спб митапа?
Евгений
нужно больше стикеров на все случаи жизни про гошку это же с SRE Спб митапа?
Все с SRE митапа, мне понравились 5 нелюбимых фраз и давно хотелось потренироваться поделать стикеры
Sergey
=) клева
Михаил
вместо FAQ
Михаил
только про БД не придумали еще
Sergey
мы почти добили стикерпак этого чата
кстати надо заменить стикер теперь k8s это шесть бинарей
Евгений
Кстати о базах, кто-нибудь юзает в продакшоне тараканодб?
Nikita
Юзаем
Andrey
Я в компании новичкам в Kubernetes просто рассказываю, как CNI работает. Где flannel бинарник вызывает CNI бинарники особым образом. И kubelet через CSI containerd/docker вызывает бинарник runc. И CSI API обращается к бинарнику, который имплементирует CSI и вызывает ещё бинарники, которые управляют volume'ами.
Sergey
https://kubernetes.io/docs/tasks/administer-cluster/running-cloud-controller/
Andrey
http://i.imgur.com/2Scjd4W.jpg
Евгений
да
Насколько я понимаю он является альтернативой kube-controller-manager, которую предполагается клауд-провайдерам юзать
Vadim
http://i.imgur.com/2Scjd4W.jpg
- How many binaries it takes for your cluster to come up? - Like, maybe 5, or 6 right now, my dude - you are like a little baby, watch this - *скрин из openshift 4.0 с 18 операторами*
Евгений
http://i.imgur.com/2Scjd4W.jpg
Шутки про хаскель в чате
Andrey
Шутки про хаскель в чате
Я про него только шутить умею. Я слишком тупой, чтобы его использовать. Т_Т
Евгений
Никто на практике не юзает рекурсивные схемы
Vadim
Сделаю, если кто-то не опередит.
я не способен к изобразительному искусству, вот штука для четвертого слайда - https://i.imgur.com/OGnDAjD.png
Vadim
OpenShift - это пока что 18 операторов, самый минимум
G72K
docker_host == рутовый доступ к хосту
В теории через плагины можно ограничить , у open policy agent был пример как