Aleksey
что там за жесть ?
Anonymous
А есть где-то мануал как локально поднять kubespray на вагранте? Чтобы на ноуте взлетело. Я вроде когда-то видел видео, где один индус подобное делал. Но сейчас не могу найти. А в kubespray нет папочки vagrant/config.rb.default или подобного шаблона
Anonymous
что там за жесть ?
Ну, мы еще systemd внутри контейнеров гоняли. Что тоже не есть тру вей. Но постоянно ложило digitalocean. Локально тоже иногда докер ложил систему. Там было много всяких фишек. Но самая главная, которая запомнилась: запустить docker-compose.yml, потом подправить этот файлик и попробовать через докер-композе остановить контейнеры. В обще, если хочется заморочиться, то крайне советую)))
Anonymous
Или не нужен vagrant/config.rb ? Я просто уже не сильно и помню как вагрант конфигурится? Но что-то не вижу, чтобы что-то из конфига бралось.
Serega
что там за жесть ?
Не то чтобы жесть, но и не сахар. Помимо очевидных вещей в духе организации отказоустойчивости своими силами (деплой двух виртуалок с докер компосе), отсуствия сервис дискавери и единой шины логов, docker-compose регулярно подглючивал при редеплое контейнера (не мог консистентно потушить старый stateless контейнер). Имел с таким дело на latest centos7 чуть более года назад.
Anonymous
А новый вагрант на старый vb не сядет, да?
Anonymous
Ну, вот кто рубишные проекты продвигает в стандарты разработки? Нужно сразу говорить: "Нет, дорогой, переведи-ка на Go или хотя бы на python, а потом приходи"))
Serega
может быть вам в девпос_ру или клауд_флуд?
Anonymous
Anonymous
А при запуске kubespray на vagrant тачках, ansible дергается внутри какой-то из них, правильно? Просто выдало ошибку https://dpaste.de/Df4z/raw . Или это на локальной тачке дернулся плейбук?
Anonymous
https://dpaste.de/7a5j/raw - правильно ли я понимаю, что master в kubespray не работает?
Anonymous
У кого-нибудь был положительный опыт запуска kubespray на vagrant тачках? На какой версии получилось? Потому что с версией HEAD detached at v2.3.0 тоже есть проблемы....
G72K
Расстрелять все инсталлеры. Поднять пять демонов и прописать их друг в друга должен уметь каждый
Logan
Расстрелять все инсталлеры. Поднять пять демонов и прописать их друг в друга должен уметь каждый
не надо :) если все будут уметь – как мы с вами будем зарабатывать?
Alexey
Кто знает - можно ли использовать перменные в volumes? что-то вроде такого volumes: - name: data hostPath: path: /opt/cluster/$HOSTNAME чтоб монтировалась папка и именем пода
Anton
так точно не взлетит
Alexey
Посоны, может кто-нибудь здесь игрался со scheduler policies или знает очень хорошо как работает scheduler. Как мне замутить так, чтобы k8s разворачивал поды только на одной ноде до конца всех ресурсов(allocatable resources) на ней, а уже потом начинал разворачивать на другой ноде и так по порядку. Типа есть 4 ноды. Сначала он берёт какую-то одну, потом если вдруг нужно ещё докинуть подов, он забивает первую полностью, потом берёт вторую и т.д.
Dmitry
из своего опыта скажу что в документации кубера нет описаний подобной практики, там наоборот стараются размазать поды равномерно по всем нодам
Dmitry
смотри как можно сделать, дело в том что шедулер не знает сколько ресурсов займет под, эти ресурсы указываешь ты сам в конфиге, тогда если их ты сам указываешь ты можешь сам и указать конкретную ноду где запустить этот под
Alexey
@dmitrz Но есть кейсы с автоскейлингом и есть priority функция MostRequestedPriority. Проблема в том, что она работает немного не так как надо. Она сначала размажет несолько подов по всем нодам, а потом пойдёт добивать ноды.
G72K
Кто знает - можно ли использовать перменные в volumes? что-то вроде такого volumes: - name: data hostPath: path: /opt/cluster/$HOSTNAME чтоб монтировалась папка и именем пода
Есит PR на эту тему, элита кубернетеса блокирует как обычно. Номер сейчас не скажу, ищите по downards API subpath, можете высказаться, вдруг прозреют (вряд ли)
Alexey
@dmitrz У меня просто автоскейлинг нод работает. Хочется оптимизировать потребление и не сжигать деньги.
Dmitry
а нельзя его сделать средствами самого облака?
Dmitry
чтоб когда на виртуалки заканчивались ресурсы запускалась новая, и там кубелет автоматом добавляет ее в кластер
Dmitry
и вот новые поды запускаются на новой ноде
Anatoliy
а зачем разворачивать новую ноду на 50% ?
G72K
Поды на статичны
Anatoliy
есть 10 нод, все загружены на 20%, грузятся на 30-40 и т.д. до 95 в среднем. В этом случае добавляем еще одну ноду, и среднее значение проседает
Anatoliy
так уберите 4 лишние и будет вам то что вы хотите
Anatoliy
остальные поды ведь поднимутся автоматом на других нодах, их нагрузка вырастет
Anatoliy
что не так? просто считаем именно среднюю нагрузку по всему кластеру
Anatoliy
автоскейлинг ведь должен на что-то опираться, так?)
G72K
автоскейлинг ведь должен на что-то опираться, так?)
Чем плотнее упакованы поды в ноде, тем меньше цена кластера, это,аксиома. Дефолтный планировщик не старается упаковывать поды на нодах плотно.
Anatoliy
Я согласен что не старается, но если у него варианта нет он их что, запускать перестанет?
Alexey
Нет, всё работает прекрасно, когда происходит scale up. И scale down отрабатывает отлично. Проблема вот в чём: у меня в некоторых случаях поднимается, например 200 подов. По выставленным реквестам им нужно 4 ноды. Они поднимаются и всё круто. Но потом, если фигачить каждый раз по 10 подов, например, они будут размазываться по всем машинам. У google cluster autoscaler политики такие, что там scale down происходит с 10 минутным запаздыванием. Когда есть хоть какая-то нагрзука на ноду — таймер сбрасывается. И получается так, что когда у меня сначала проходит задача с большой нагрузкой, то запускается большой кластер, но когда у меня маленькие задачки, мне достаточно одной ноды. Но по вышеописанной причине scale down не происходит. Только когда в течение 10 минут не происходит никаких действий и подов вообще нет.
Alexey
Вам нужно скормит свой конфиг планировщику и там выкрутить вес функции "выбирать ноду где максимальное потребление" на максимум. Примеры конфигурации и список функций можно посмотреть в коде
Увы, оно не работает как ожидается. Он сначала размажет по минимуму поды на все ноды, а только потом начинает забивать до отказа по одной.
Alexey
Вы пробовали? С подкрученым конфигом?
Да, пробовал. У меня правда проблемка, что всё крутится в GKE и там явно нельзя передать полиси. Поэтому собирал scheduler сам и запускал поды с собственным, прокинув полиси.
G72K
Единственная причина по которой задранный в небеса приоритет не срабатывает, это то что,какой-то предикат блокирует выбор
G72K
Включите отладку, —v=4, должно быть видно
Alexey
@rossmohax О, кстати, как вариант. За --v=4 отдельное спасибище.
G72K
Радость: в hyperkube вернули /bin/bash
Anonymous
А есть вообще какая-нибудь дока, как развернуть kubernetes на виртуалках ubuntu 16.04 ?
Anonymous
в доках куба не нашел?
Нет. Нашел только нормальный видос, но для rhel https://www.youtube.com/watch?v=lTyKeNRopqY
Stas
http://containertutorials.com/get_started_kubernetes/index.html
Anonymous
http://containertutorials.com/get_started_kubernetes/index.html
Нет. Это что-то не то. Тут просто вариант как поставить нечто, вроде minikube. А полного мана как в том видео нет? Блин, я реально не понимаю как это все разраворачивают? Ручками что ли клепают все без заготовок?
Etki
если использовать поиск по чату, то вылезут - kubernetes the hard way - kubespray - evil martians chef cookbook - kops и прочее
Anonymous
если использовать поиск по чату, то вылезут - kubernetes the hard way - kubespray - evil martians chef cookbook - kops и прочее
kubernetes the hard way - там только установка только базового варианта (если речь об этом https://github.com/kelseyhightower/kubernetes-the-hard-way) - kubespray - vagrant версия не работает. Описывал выше. Не пробовал еще описывать через свой инвентори, но смысл, мне кажется будет тот же. Плейбук то один. - evil martians chef cookbook - ну, как бы не мануал, а кукбук. Т.е. трудно найти и понять какие вещи базовые и нужны обязательно, а какие опционально. И не видно как запускать на виртуалках. - kops - еще не юзал. Но тоже не вижу там мануалов. (https://github.com/kubernetes/kops - если речь об этом). И не видно как запускать на виртуалках.
Etki
что такое не базовый вариант?
Anonymous
что такое не базовый вариант?
Ну, такой же, как и у kubespray на вагранте, например. 3 виртуалки. 1 мастер, 2 ноды.
Logan
марсианский кук самый приличный, не без тараканов, но он хотя бы работает
Anatoliy
причем "искаропки" :) т.е. просто в конфиге параметр поменял
Anonymous
марсианский кук самый приличный, не без тараканов, но он хотя бы работает
А дока есть? Просто в тексте описано ТЗ по этому марсианскому кукбуку?
Logan
нет, доки нет, но при минимальном знании шефа разобраться несложно + автор кукбука нормально реагирует на вопросы.
Logan
что значит с weave не работает? у меня работает
ну вот у меня любая попытка его настроить кончалась багами, причем всегда разными. я три дня провозился, мне это надоело и я перешел на марсианский кукбук. Чему очень рад
Anonymous
Блин. Жесть какая-то. Придется делать как на видео у индуса на centos, наверное.
Anonymous
Только плохо, что этот индус все в текст не выложил.
Logan
а вам надо в прод или так, пальцем потыкать? Если второе - kubeadm в помощь
Logan
он вообще не требует приложения мозга
Anonymous
https://devopsmates.com/part-1-kubernetes-introduction-installation/ - вот в тексте, то что на видео, если кому интересно. #kubernetes #virtualbox #centos #fulldoc
Anonymous
а вам надо в прод или так, пальцем потыкать? Если второе - kubeadm в помощь
Понять как на проде развернуть. Если потыкать, то и minikube хватит
Logan
Понять как на проде развернуть. Если потыкать, то и minikube хватит
тогда выбираете способ деплоя который вам зрительно близок и начинаете собирать баги. они будут ВЕЗДЕ
Anonymous
тогда выбираете способ деплоя который вам зрительно близок и начинаете собирать баги. они будут ВЕЗДЕ
Ну, возможно. Но должно быть уже какое-то решение по багам, а не как с kubespray
Anton
kops прибит к облакам и в железе его развренуть нельзя. Kubespay не работает с weave + запрещает привелигированные контейнеры = поломавшийся сетевой контейнер требует перезагрузки ноды целиком
пруфы плиз что kubespray запрещает privileged вижу у apiserver --allow-privileged=true и у kubelet # Should this cluster be allowed to run privileged docker containers KUBE_ALLOW_PRIV="--allow-privileged=true"
Logan
я с кубспреем работал пол-года назад. Тогда было запрещено
Logan
Ну, возможно. Но должно быть уже какое-то решение по багам, а не как с kubespray
оно и есть. Ставите то, что вам подходит, собираете баги, учитесь их лечить. И так по кругу
Anton
я с кубспреем работал пол-года назад. Тогда было запрещено
в общем priviledged можно по дефолту из коробки