Anonymous
типа как сервис сделать?
Denis
типа у меня есть ряд high-cpu instances мне хочется их как то пометить, а потом в deployment к ним привязывать
Sergey
daemonset?
𝚔𝚟𝚊𝚙𝚜
nodeSelector/nodeAffinity?
𝚔𝚟𝚊𝚙𝚜
клуб гадалок блин :)
Sergey
пирожки?
Sergey
давайте еще предложений накидаем, че вы
Denis
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/
да, то что в deployment.spec просто описать селектор я понял. А как вот эту метадату к нодам принято "доставлять" ?
Denis
но вроде это taints про которые выше сказали
Mihail
вроде да, я правда не пользовался, но выглядит как оно
Andor
тебе нужен taints
Andor
но с ними у тебя конфигурация нод будет неодинаковая
Denis
а оно что, только через kubectl задается ?
Andor
вроде на ходу можно
Andor
но я через kops делал, так что не уверен :)
Anonymous
ребята а кто роботает с azure kubernetes?
𝚔𝚟𝚊𝚙𝚜
а оно что, только через kubectl задается ?
kubectl label node <node> dedicated=high-cpu добавит лейбл к ноде, потом можно будет выбрать эту ноду для деплоя через nodeSelector
Igor
У кого-нибудь есть опыт публикации сервисов на кубернетисе в bare-metal конфиге? Без gcloud/aws. Есть тонна вопросов по ингрессу и тому, как обойтись без внешнего днса, что используется в указанных сервисах
𝚔𝚟𝚊𝚙𝚜
если нужно отключить шедулинг других подов на этой ноде нужно создать taint: kubectl taint node <node> dedicated=high-cpu:NoSchedule, а вашим подам прописать tollerants
Igor
а днс то внешний зачем?
Честно говоря, просто как-то нет понимания, как/чем именно нужно проксировать запросы. Практически все предложения, что представлены в сети - рекомендуют использовать gcloud или aws. Вроде удалось вытащить сервис в сеть без них, но сейчас встала необходимость в sticky sessions, и чет я как-то завис
Denis
kubectl label node <node> dedicated=high-cpu добавит лейбл к ноде, потом можно будет выбрать эту ноду для деплоя через nodeSelector
это да, но мне хочется это в конфижках каких то описать и положить в репку.
Andor
лейблы можно kubelet'у при запуске передавать
Andor
а вот taint'ы кажется только в рантайме
Igor
мы используем на железе ingress nginx
Можно в личку перейти?
Mihail
да
Andor
я против ухода в личку для обсуждения кубернетисов :)
Oleg
У кого-нибудь есть опыт публикации сервисов на кубернетисе в bare-metal конфиге? Без gcloud/aws. Есть тонна вопросов по ингрессу и тому, как обойтись без внешнего днса, что используется в указанных сервисах
У нас перед куб кластерами на баре метал стоят haproxy. Раз в минуту самописная поделка на питоне ходит в кубы через апи, получает список сервисов и генерит конфиг для haproxy из темплейта. Сервисы nodeport. ingress не используем. Где-то выше уже описывал.
Rainbow
@zigmundkz а в чем плюсы? Кроме того, что это позволяет творить дичь, вместо подгонки проекта под стандарты.
Oleg
Поищу. Интересно!
Да искать нечего, почти то же самое сейчас и написал.
Oleg
Кластера в разных дц
Oleg
Дц могут отъебнуть
Rainbow
почему не использовать haproxy -> ingress?
Oleg
Ну ингресс же внутрикластерная сущность, или я ошибаюсь? Нам нужны балансировщики вне кластеров, чтобы между этими самыми кластерами трафик балансировать
Oleg
То есть в нашем случае это было бы haproxy - ingress - service
Rainbow
ingress удобно роутит трафик внутри кластера. Просто снаружи выставить haproxy, чтобы править особенности руками, а базовые штуки отдать ingress
Oleg
В нашем случае это лишняя сущность
Rainbow
То есть в нашем случае это было бы haproxy - ingress - service
да, я и спрашивал почему не так. Просто интересно.
Rainbow
чтобы новый сервис развернуть нужно идти к админу?
Oleg
Нет
Rainbow
С ingress нужно дописать ресурс, а у вас как? К примеру новый сервс хочу замапить на /private/test/service
Oleg
Через лейблы и аннотации сервис автоматом паблишится на хапрокси
Oleg
Питонокостыль выбирает соответствующие сервисы по лейблам и берет настройки из аннотаций.
Andor
кажется этот костыль просто повторяет работу ингресса
Rainbow
тоже самое же делает ingress... 1 в 1. Только в виде ресурса ingress, а не демона сверху.
Oleg
Да, по сути так и есть. По этому ингресс и не используем в данный момент. Возможно в даньшейм логику переложим на ингресс, а на внешних балансировщиках костыль уберем. Сейчас устраивает такой вариант.
Andor
ваще если сделать не "раз в минуту", а по событиям из апи, то будет очень даже ок
Rainbow
У ingress только один минус - он жутко простой для пользователя. Можно забыться и так же просто наломать дров https://habr.com/company/southbridge/blog/340238/
Rainbow
ingress интегрируется с cert manager выпускать сертификаты letsencrypt становится так же просто, как и сам ingress. Один из самых жирных плюсов для меня.
Rainbow
Для кучи вкуснях типа service worker нужен https. для staging, test поддоменов и тп.
Alexander
Посоны, например я ввел новый нод в кластер, как распрелить нагрузку в кластере?
Alexander
Чтобы часть подов переехала на ноый нод?
Andor
поды не перескедулятся сами без пинка
Rainbow
replicas можно поменять если сильно хочется увидеть
Alexander
Ещё проблемка
Alexander
нода запустилась, после сбоя в электричестве
Alexander
но она Ready,SchedulingDisabled
Denis
У ingress только один минус - он жутко простой для пользователя. Можно забыться и так же просто наломать дров https://habr.com/company/southbridge/blog/340238/
Жесть какая, там такие детские проблемы, я думал все это уже в коммон классах ансиблей сидит у всех
Andrey
но она Ready,SchedulingDisabled
kubectl describe node и посмотри в taints
Andrey
ну или kubectl uncordon, если c кондишенами все норм
Rainbow
Жесть какая, там такие детские проблемы, я думал все это уже в коммон классах ансиблей сидит у всех
ну так не корректно говорить. То же самое что "хаха ansible", мы давно на "Amasow EKS нищеброды". Это абстракная фраза EKS крайне дорог =)
Denis
Я имел ввиду что после того как вы апнули ноду, наверняка там какой то коммон манифест бежит по ней, репы какие нить создаёт или доступы раскатывает. Я думал там же все эти сисцтлы зафиксированны
Stanislav
Народ, кто подскажет, если rbd поддерживает ReadWriteOnce и ReadOnlyMany, это значит я могу писать с одного контейнера и читать с многих или выбирать нужно только одно?! По логике понятно что первое, но на всякий случай уточняю.
Stanislav
только одно
печаль-беда, спс
Anton
почему может не резолвиться имя сервиса по service_name.namespace.svc.cluster.local, в то время как резолвится по service_name.namespace.svc.имя_кластера_которое_указал_при_установке_в_kubespray?
Anton
ответ вроде в вопросе, ты же зону задал. посмотри где используется этот параметр в ролях
Anton
ну я считал, что cluster.local вообще всегда должно резолвиться, внезависимости от того как у меня кластер называется
Anton
если у меня один сервис резолвит другой, он что, всегда должен знать имя кластера, нет же
Dmitry
если у меня один сервис резолвит другой, он что, всегда должен знать имя кластера, нет же
Не всегда. В случаае, если под, в котором ты хочешь зарезолвить сервис, находится в том же namespace что и сервис, который ты резолвиш, то можно использовать просто <имя_сервиса>, вместо полного <имя_сервиса>. <имя_namespace>. <имя_кластера>.local
Igor
ну я считал, что cluster.local вообще всегда должно резолвиться, внезависимости от того как у меня кластер называется
так в search /etc/resolv.conf нету cluster.local в случаем когда указывавешь другое при установке
Denis
а кто то kubespray'ем катал node_labels ? делаю вроде бы all: hosts: knode1: node_labels: cpuint: true а не работает