𝚔𝚟𝚊𝚙𝚜
не, это что-то не туда совсем
с чего это? вот nodeAfinity для PV: https://github.com/kvaps/docker-linstor/blob/master/examples/linstordb-volume.tpl#L21-L28
𝚔𝚟𝚊𝚙𝚜
а statefulset герерит PVC на них, ака myapplication-0 myapplication-1 myapplication-2 ...
V
@shursh если будет возможность, расскажите, пож-ста, в каком сценарии понадобилась такая необычная задача по привязке pods
Andor
linstor это ж drbd
𝚔𝚟𝚊𝚙𝚜
linstor это ж drbd
блин ну меня пример попросили
Andrei
а statefulset герерит PVC на них, ака myapplication-0 myapplication-1 myapplication-2 ...
Так, это уже любопытнее, завтра проверю, спасибо!
Andrei
Раз уж… посоветуйте адекватный чарт для rabbitmq. Дефолтный stable/rabbitmq надо форкать ибо там привязка к kubedns с их зашитым cluster.local, от bitname stable/rabbitmq-ha вообще деревянный, тоже форкать
Andor
да туда же
Andor
возьми оператор
𝚔𝚟𝚊𝚙𝚜
linstor - это такое-же приложение как и любое другое, ему требуется база данных, база данных запускается как StatefulSet с репликой 3, каждый под использует свой localvolume с nodeaffinity
Andrei
возьми оператор
Я бы рад под все его взять, но есть линк на нормальный?
Andor
честно говоря я ни один не юзал
𝚔𝚟𝚊𝚙𝚜
Andrei
Эм, список то я видел, а где там для rabbitmq?
𝚔𝚟𝚊𝚙𝚜
сорри, я не видел что тебе для rabbitmq :)
Andor
хммм
Andor
и правда, что-то нету :/
Andrei
Ок, зайду с другого бока: на github есть kubernetes/charts и там есть stable/rabbitmq, наверняка разработку ведут в других репах а сюда вмерживают изменения. просто при таком кол-ве форков взять и посмотреть карту форков чтобы найти что-то допиленное не выходит
Andor
опять фигню сказал
Andor
но есть автокластер
Andrei
Есть, и он даже работает у bitnami из коробки ибо можно менять имя кластера куба, но сам чарт деревянный: там даже доп порты нельзя открыть, мониторинга нет. понятно что допилить можно, но времени это все съедает…
Andrei
Ладно, всем спасибо. На крайняк все это выпилю и раскатаю шефом напрямую)
Pavel
Была статья недавно на хабре про деплой рэббита в кубер
Pavel
Там правда готовые yaml в статье
Andrei
Кстати, это нормально что ansible в рецептах kubespray при сборе фактов отжирает 7 гигов оперативы?
Pavel
А не helm чарт
Sergey
Там правда готовые yaml в статье
Ага до сих пор на стене висит руки не дойдут
Andrei
Пруфы
G72K
А можно ткнуть в пример как pod-3 привязать к node-3?
(прочитав весь тред). У вас локальные диски? Пометьте каждую ноду лейблом kubernetes.io/failure-domain=имя ноды, тогда PV тоже будут с тем же лейблом и тогда куб сам запустит что где надо
G72K
Да. Вот строчка которая ему не даст запуститься не там: glog.V(10).Infof("Won't schedule pod %q onto node %q due to volume. Ищите в https://github.com/kubernetes/kubernetes/blob/b4c7d190cd9a6770ea39c6b99a799e45aed1c5ce/pkg/scheduler/algorithm/predicates/predicates.go
G72K
(не могу ссылку на строчку с мобильного отправить почему-то)
Andrei
Спасибо. Я не знал о таком применении этих меток
G72K
Ещё пилят фичу, когда топология дисков отличается от топологии нод, но даже если доделают к 1.12 то все равно альфой будет пару релизов уж точно
G72K
Спасибо. Я не знал о таком применении этих меток
Блин и без них local volume должен правильный находиться. Точно был спец случай где то, когда их ввели
Andor
может версия старая
Andrei
Да уже накидали версий, буду пробовать
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Вчера имел проблемы с GKE. Частично решилось само, но вскрыло милую проблему GKE: мы забыли подчищать старые снапшоты, и постоянно создавали новые. И если при этом пытаться что-то ещё делать с кластером (обновлять, скейлить) то можно словить ошибку о том что GKE не может создать больше goroutines
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
Довольно абстрактно, но забавно, когда консоль тебе говорит "я создала 40К+ горутин и больше не могу"
𝕲𝖎𝖗𝖆𝖋𝖋𝖊
И стектрейс длинный предлинный
Andor
забавно
Andor
зарепортил?
𝚔𝚟𝚊𝚙𝚜
(прочитав весь тред). У вас локальные диски? Пометьте каждую ноду лейблом kubernetes.io/failure-domain=имя ноды, тогда PV тоже будут с тем же лейблом и тогда куб сам запустит что где надо
Интересное решение, но все же local volumes c nodeAffinity для этого подходят больше, т.к. не нарушают шедулинг для остальных подов
𝚔𝚟𝚊𝚙𝚜
и опять же, если снести ноду снесется и failure-domain, или я чего-то не понимаю
Andrei
Не ноду, а под из сета
G72K
Интересное решение, но все же local volumes c nodeAffinity для этого подходят больше, т.к. не нарушают шедулинг для остальных подов
Локал вольюмы вообще без nodeAffinity живут? Для них и придумали же кажется. Но вот не сработало ж
𝚔𝚟𝚊𝚙𝚜
кстати вот анонс: https://kubernetes.io/blog/2018/04/13/local-persistent-volumes-beta/
G72K
Блин и без них local volume должен правильный находиться. Точно был спец случай где то, когда их ввели
Вот нашел, checkNodeAffinity в pkg/volume/until/.../operation_generator.go там даже проверка на фичу PersistentLocalVolumes
𝚔𝚟𝚊𝚙𝚜
@rossmohax я ес честно вообще не совсем понимаю зачем их придумали, nodeAffinity и для hostPath прекрассно работает, а по сути local volume это тот же hostPath только с type: Directory
G72K
@rossmohax я ес честно вообще не совсем понимаю зачем их придумали, nodeAffinity и для hostPath прекрассно работает, а по сути local volume это тот же hostPath только с type: Directory
Что б provisioner работал (ну скажем lvm создать) и чтобы через pvc ходить (а значит и контроль доступа по namespace). hostPath это дикий запад
𝚔𝚟𝚊𝚙𝚜
погоди, а какая разница?
G72K
живут, ниче не знаю у меня прекрассно работает
Тот кто создаёт PV должен прописать nodeAffinity иначе как жить то?
𝚔𝚟𝚊𝚙𝚜
lvm и как hostPath можно создать
G72K
lvm и как hostPath можно создать
Только руками, а с Local volume динамически.
𝚔𝚟𝚊𝚙𝚜
ну то есть разница только в названии?
G72K
И прибить когда не нужно. И не давать больше одного пода в директорию ходить
𝚔𝚟𝚊𝚙𝚜
для hostPath можно тоже PV нагенерить
𝚔𝚟𝚊𝚙𝚜
и провижионер написать
Andor
То есть щас только hostpath по-умолчанию
Andor
Если я правильно понял
rdcm
Всем привет! Наверняка этот вопрос задавали кучу раз. Есть толковый гайд как поднять мультимастер? На kubernetes.io инструкция с kubeadm, но какое-то время назад в доке было написано, что он не продакшен реди и его можно юзать только в обучающих целях.
𝚔𝚟𝚊𝚙𝚜
Он же ещё не в дефолте
не, тот local volume провижионер вполне работает, я провреял
𝚔𝚟𝚊𝚙𝚜
создаешь volume маунтишь его в директорию, в кубе local volume появляется
𝚔𝚟𝚊𝚙𝚜
и там именно local а не hostPath
Mikhail [azalio]
Всем привет! Наверняка этот вопрос задавали кучу раз. Есть толковый гайд как поднять мультимастер? На kubernetes.io инструкция с kubeadm, но какое-то время назад в доке было написано, что он не продакшен реди и его можно юзать только в обучающих целях.
Правильный путь, по-моему лично мнению, это прочитать эту доку и понять подходит вам это или нет. Крутить куб в проде не понимая что да как, подняв его по гайду в интернете путь боли :)
Nikolai
Подскажите, для websocket-коннекшена на ингрессе https://kubernetes.github.io/ingress-nginx/ нужно что-то дополнительно докручивать или должно работать как с привычным http? просто http-соединения работают, а веб-сокет отрубается с 502-ой, при этом в логе ноль информации (ни в ингрессе ни в соотвествующей поде)
Александр
какая версия ингресса? покажи values для хельма-чарта облака? сколько реплик за сервисом?
Nikolai
quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.18.0 - этот использую бареметал, без балансера, 2 мастера+3ноды
Александр
реплик за сервисом говорю скока?
Nikolai
2
Александр
а что в values для хельма?
Александр
а хотя >бареметал, без балансера тогда я пасс)
Александр
вот тут https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/provider/aws/service-l4.yaml пишут > # Increase the ELB idle timeout to avoid issues with WebSockets or Server-Sent Events. service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: '3600'
Александр
но как это на бареметалле я не в курсе тут еще https://github.com/kubernetes/ingress-nginx/issues/2846
Andrey
тут про istion немного завезли 🙂 https://habr.com/company/avito/blog/419319/