George
кривоват. Ну, и есть альтернативы. Выше по топику можно найти. kubeadm, например. Но в общем - все на любителя
Pavel
Metal3 такой сырой что у меня до сих пор руки мокрые
George
ну тем более. зачем лишние обертки
George
я просто не в курсе
Sergey
ну тем более. зачем лишние обертки
Хотя для того, что бы не тащить свой велосипед для сэтапа ха контр плейн
Pavel
Это бареметал провайдер для cluster-api
George
хз
Sergey
При чем, у меня такой есть, и меня ипет его поддерживать
Sergey
Кубспрей далеко не квистисенция говна
George
я видел вообще сольтовые стейты для разворачивания куба. Так что можно сказать повидал все
George
в общем, все жесть и не покрывает все кейсы. И на фоне этого инсталлер опеншифта выглядит прям няшкой
George
свои писать == писать под свою инфру, без необходимости тащить все возможные конфигурации
George
в результате - у соседа это может не взлететь
Sergey
в общем, все жесть и не покрывает все кейсы. И на фоне этого инсталлер опеншифта выглядит прям няшкой
Это вендорлок, как и любое готовое решение, плюс, до недавнего времени, сильно отставал от мейнстрима
Pavel
Кубеспрей норм
Pavel
Тегами если научиться пользоваться
George
я бы предложил не вдаваться в холивар. Истио туда накатывается - да, все, вопрос закрыт
Sergey
Так что из разреза вендорлока и попытки сделать максимально универсально кубспрей наименьшее зло
George
допускаю
Sergey
Называя какое-то решение говном, уже провоцируете холивар, а потом, в неудобной позиции - ой все
Sergey
Не надо так и не будет пустого бурления
Vadim
То есть ему четыре месяца, понятно что сырой, но что именно не завелось?
Stanislav
https://www.ascent24.io/kubernetes/the-battle-of-kubernetes/
George
Ну это же Энтерпрайз решение же и за деньги вроде как
Есть бесплатный okd. Минус - миграции между версиями делаете сами.
Dmitry
Прошу прощения за нубский вопрос, возможно здесь не принято их задавать. В таком случае сразу его удалю. Кто-нибудь использует кубернетес на железе? Такой случай: арендованное железо, хостинг Hetzner, доступа к свитчам и роутерам соотвесвтенно нет, и возможности такой не дают. Кластер поднять то поднял, некоторые мелкие приложения из compose файлов трансформировал в абстракции кубернетес и задеплоил. А вот как на них трафик пустить, это не очень понятно. Знаю про metalb, но там либо вариант с BGP на роутерах к которым доступа нет, либо L2 сеть которой строго говоря тоже нет (есть VLAN) между хостами, и как я понял metallb должен иметь какой-то пул адресов, которые назначает на определенные ноды. В принципе закупить можно адресов, но для их переключения требуется обращаться в API hetzner, и я не могу понять, могу ли я кастомизировать metallb чтобы он так делал. Подумываю nginx на отдельном хосте поднять, и тулзу к нему написать, которая смотрит в API kubernetes и узнает для какого приложения на какие ноды направлять трафик, но мне кажется должно быть что-то по проще. Я думал с ingerss nginx могу сделать что-то подобное. Например обозначить какую-то группу нод - (ноды для ingerss), которые будут смотреть наружу портами 80, 443 и направлять трафик на нужные поды, но так и не понял, можно ли это сделать вообще. Направьте пожалуйста в правильную ли я сторону вообще копаю.
Mikhail [azalio]
Прошу прощения за нубский вопрос, возможно здесь не принято их задавать. В таком случае сразу его удалю. Кто-нибудь использует кубернетес на железе? Такой случай: арендованное железо, хостинг Hetzner, доступа к свитчам и роутерам соотвесвтенно нет, и возможности такой не дают. Кластер поднять то поднял, некоторые мелкие приложения из compose файлов трансформировал в абстракции кубернетес и задеплоил. А вот как на них трафик пустить, это не очень понятно. Знаю про metalb, но там либо вариант с BGP на роутерах к которым доступа нет, либо L2 сеть которой строго говоря тоже нет (есть VLAN) между хостами, и как я понял metallb должен иметь какой-то пул адресов, которые назначает на определенные ноды. В принципе закупить можно адресов, но для их переключения требуется обращаться в API hetzner, и я не могу понять, могу ли я кастомизировать metallb чтобы он так делал. Подумываю nginx на отдельном хосте поднять, и тулзу к нему написать, которая смотрит в API kubernetes и узнает для какого приложения на какие ноды направлять трафик, но мне кажется должно быть что-то по проще. Я думал с ingerss nginx могу сделать что-то подобное. Например обозначить какую-то группу нод - (ноды для ingerss), которые будут смотреть наружу портами 80, 443 и направлять трафик на нужные поды, но так и не понял, можно ли это сделать вообще. Направьте пожалуйста в правильную ли я сторону вообще копаю.
Последний вариант выглядит реалистичным в вашей ситуации. Используйте NodePort (ingress nginx)
ᴅⁱᵐⁱᴅʳ0ˡ
Прошу прощения за нубский вопрос, возможно здесь не принято их задавать. В таком случае сразу его удалю. Кто-нибудь использует кубернетес на железе? Такой случай: арендованное железо, хостинг Hetzner, доступа к свитчам и роутерам соотвесвтенно нет, и возможности такой не дают. Кластер поднять то поднял, некоторые мелкие приложения из compose файлов трансформировал в абстракции кубернетес и задеплоил. А вот как на них трафик пустить, это не очень понятно. Знаю про metalb, но там либо вариант с BGP на роутерах к которым доступа нет, либо L2 сеть которой строго говоря тоже нет (есть VLAN) между хостами, и как я понял metallb должен иметь какой-то пул адресов, которые назначает на определенные ноды. В принципе закупить можно адресов, но для их переключения требуется обращаться в API hetzner, и я не могу понять, могу ли я кастомизировать metallb чтобы он так делал. Подумываю nginx на отдельном хосте поднять, и тулзу к нему написать, которая смотрит в API kubernetes и узнает для какого приложения на какие ноды направлять трафик, но мне кажется должно быть что-то по проще. Я думал с ingerss nginx могу сделать что-то подобное. Например обозначить какую-то группу нод - (ноды для ingerss), которые будут смотреть наружу портами 80, 443 и направлять трафик на нужные поды, но так и не понял, можно ли это сделать вообще. Направьте пожалуйста в правильную ли я сторону вообще копаю.
Сделай вип ип на нодах
Игорь
Прошу прощения за нубский вопрос, возможно здесь не принято их задавать. В таком случае сразу его удалю. Кто-нибудь использует кубернетес на железе? Такой случай: арендованное железо, хостинг Hetzner, доступа к свитчам и роутерам соотвесвтенно нет, и возможности такой не дают. Кластер поднять то поднял, некоторые мелкие приложения из compose файлов трансформировал в абстракции кубернетес и задеплоил. А вот как на них трафик пустить, это не очень понятно. Знаю про metalb, но там либо вариант с BGP на роутерах к которым доступа нет, либо L2 сеть которой строго говоря тоже нет (есть VLAN) между хостами, и как я понял metallb должен иметь какой-то пул адресов, которые назначает на определенные ноды. В принципе закупить можно адресов, но для их переключения требуется обращаться в API hetzner, и я не могу понять, могу ли я кастомизировать metallb чтобы он так делал. Подумываю nginx на отдельном хосте поднять, и тулзу к нему написать, которая смотрит в API kubernetes и узнает для какого приложения на какие ноды направлять трафик, но мне кажется должно быть что-то по проще. Я думал с ingerss nginx могу сделать что-то подобное. Например обозначить какую-то группу нод - (ноды для ingerss), которые будут смотреть наружу портами 80, 443 и направлять трафик на нужные поды, но так и не понял, можно ли это сделать вообще. Направьте пожалуйста в правильную ли я сторону вообще копаю.
там же есть vSwitch, в который можно маршрутизировать публичную /29
Just a baka
Прошу прощения за нубский вопрос, возможно здесь не принято их задавать. В таком случае сразу его удалю. Кто-нибудь использует кубернетес на железе? Такой случай: арендованное железо, хостинг Hetzner, доступа к свитчам и роутерам соотвесвтенно нет, и возможности такой не дают. Кластер поднять то поднял, некоторые мелкие приложения из compose файлов трансформировал в абстракции кубернетес и задеплоил. А вот как на них трафик пустить, это не очень понятно. Знаю про metalb, но там либо вариант с BGP на роутерах к которым доступа нет, либо L2 сеть которой строго говоря тоже нет (есть VLAN) между хостами, и как я понял metallb должен иметь какой-то пул адресов, которые назначает на определенные ноды. В принципе закупить можно адресов, но для их переключения требуется обращаться в API hetzner, и я не могу понять, могу ли я кастомизировать metallb чтобы он так делал. Подумываю nginx на отдельном хосте поднять, и тулзу к нему написать, которая смотрит в API kubernetes и узнает для какого приложения на какие ноды направлять трафик, но мне кажется должно быть что-то по проще. Я думал с ingerss nginx могу сделать что-то подобное. Например обозначить какую-то группу нод - (ноды для ingerss), которые будут смотреть наружу портами 80, 443 и направлять трафик на нужные поды, но так и не понял, можно ли это сделать вообще. Направьте пожалуйста в правильную ли я сторону вообще копаю.
Используют, хотя и изолировано (квм). Меняем в деплое kind ингресса на nodeport и полетели. Спереди nginx обычный (вместо metallb, привыкли, нам удобно).
Just a baka
там же есть vSwitch, в который можно маршрутизировать публичную /29
Всвитч там НУ ТАКОЙ, лучше не надо. Ну или хорошо потестить, у нас на одинаковых по конфигурации железках разные сетевки и имелись проблемы (hetzner) В идеале надо пихать все в одну стойку и брать свитч, но это азаза не супер надежно по отказам.
Dmitry
там же есть vSwitch, в который можно маршрутизировать публичную /29
Да вроде можно. Но мне механика все равно не очень понятна. Как metallb сможет на каку-то ноду назначить один из этих адресов, да и переключать эти адреса можно же подсетями а не по отдельности , возможно мне не хватает каких-то сетевых знаний или понимания как работает metallb.
Dmitry
Последний вариант выглядит реалистичным в вашей ситуации. Используйте NodePort (ingress nginx)
Спасибо, буду копать в эту сторону тоже. Меня там просто смутила картинка, где трафик приходит на ингресс, затем уходит не на ту ноду, а из нее идет в правильную ноду. У нас некоторые приложения бывают забивают гигабитный канал между бэком и nginx и не хотелось бы гонять этот трафик по рандомным нодам.
Dmitry
Используют, хотя и изолировано (квм). Меняем в деплое kind ингресса на nodeport и полетели. Спереди nginx обычный (вместо metallb, привыкли, нам удобно).
А подробнее можно. Спереди nginx, который не под контролем kubernetes? А как он узнает куда трафик направлять?
Just a baka
А подробнее можно. Спереди nginx, который не под контролем kubernetes? А как он узнает куда трафик направлять?
Да, спереди nginx, у которого просто в апстримы забиты все ноды, где крутятся поды ингресса. Если одна отвалится, ответит другая. Без хелсчеков, правда, но тут можно глянуть на haproxy, если сильно надо.
Just a baka
Так вы же гоняете весь трафик по всем нодам. Такой вариант у меня не прокатит.
Трафик пойдет на другую ноду только при событии согласно конфигурации proxy_next_upstream 🤔
Dmitry
Трафик пойдет на другую ноду только при событии согласно конфигурации proxy_next_upstream 🤔
Ну так у вас же ingress на каждой ноде. На каждую ноду уходит трафик, а от туда ingress знает на какой его под направить, который может находиться вообще на другой ноде, правильно?
Just a baka
И вот тут как раз хорошо заходит нормальная локалка))
Dmitry
Понятно. То есть у вас поды ингресса крутяться на определенных нодах, и на этих нодах больше ничего нет. Я просто чего боюсь. Есть приложения которые могут забить весь трафик, между балансером и бэком. И если этот трафик будет ходить по большему количеству узлов, тем хуже. Может я зря боюсь конечно. Пугает ситуация, когда один нагруженный по трафику под с бэком прилетит на ноду, с другим нагруженным подом по трафику. А в случае с nginx который стоит перед ингресами, могут возникнуть как проблемы с сетью между nginx и ингресом так и между ингресами и нодами. И весь кластер рухнет.
Just a baka
Понятно. То есть у вас поды ингресса крутяться на определенных нодах, и на этих нодах больше ничего нет. Я просто чего боюсь. Есть приложения которые могут забить весь трафик, между балансером и бэком. И если этот трафик будет ходить по большему количеству узлов, тем хуже. Может я зря боюсь конечно. Пугает ситуация, когда один нагруженный по трафику под с бэком прилетит на ноду, с другим нагруженным подом по трафику. А в случае с nginx который стоит перед ингресами, могут возникнуть как проблемы с сетью между nginx и ингресом так и между ингресами и нодами. И весь кластер рухнет.
Но этот трафик не дублируется через все каналы на все ноды с ингрессами, а распределяется между ними по раунд-робину в дефолтной конфигурации. Один запрос - один коннект к одному ингрессу - один коннект к поду сервиса, грубо говоря. А для разнесения конфликтующих/жирных/etc подов по разным нодам надо почитать про antiaffinity
Just a baka
P.S. если прям совсем жара, можно спец ноды под ингрессы жирных сервисов поднять и настроить внешний балансер гнать запросы до этих сервисов только туда
George
Но ещё надо учитывать, что коллега захочет наверняка rook, после чего коннект между кластера ляжет совсем
Dmitry
Понял вас. Спасибо за помощь всем. В принципе все варианты, о которых я писал жизнеспособные 1) metallb + vswitch и публичные адреса (я правда пока еще не понял как это будет работать, нужно разобраться) 2) nginx ingress + nodeport - выбираем группу узлов условных балансировщиков и вешаем туда только nginx ингресы 3) внешний балансировщик(или несколько) - которые направля.n трафик на все ингресы кластера.
Lucky SB
Выделить пару узлов под ингресс кнтрлеры. Запцскать их с хостнетворк тру
Lucky SB
Pacemaker озадачить менять файловер ип хетцнера
Lucky SB
Металлб в топку
Just a baka
Pacemaker озадачить менять файловер ип хетцнера
Там переключение до 50 секунд занимает, кек
Lucky SB
Два фейловера. 50% трафика будет недоступно минуту
Lucky SB
Или за клоудфларе прячьтесь
Dmitry
Выделить пару узлов под ингресс кнтрлеры. Запцскать их с хостнетворк тру
А вот по поводу host network - пишут нерекомендуется так как не безопасно. Что имеется в виду? Что страшного в том, что ingress будет получать трафик через внешнюю сеть? Ведь в этом по сути его задача и состоит. Или это имеется в виду вообще в целом про любые поды, которые не нужно светить наружу, тогда странно что они это пишут про ingress controller.
Dmitry
Или за клоудфларе прячьтесь
Трафик динамический, не статика. Статика у нас итак вся через CDN.
Lucky SB
Трафик динамический, не статика. Статика у нас итак вся через CDN.
Сф умеет без кеширования проксировать. Использовать его как отказоустойчивый балансировщик
Dmitry
Интересно, надо будет взглянуть. Спасибо за наводки, очень помогли.
George
А ещё клаудфлейр отличная тема для днс хостинга
Grigorii
Прошу прощения за нубский вопрос, возможно здесь не принято их задавать. В таком случае сразу его удалю. Кто-нибудь использует кубернетес на железе? Такой случай: арендованное железо, хостинг Hetzner, доступа к свитчам и роутерам соотвесвтенно нет, и возможности такой не дают. Кластер поднять то поднял, некоторые мелкие приложения из compose файлов трансформировал в абстракции кубернетес и задеплоил. А вот как на них трафик пустить, это не очень понятно. Знаю про metalb, но там либо вариант с BGP на роутерах к которым доступа нет, либо L2 сеть которой строго говоря тоже нет (есть VLAN) между хостами, и как я понял metallb должен иметь какой-то пул адресов, которые назначает на определенные ноды. В принципе закупить можно адресов, но для их переключения требуется обращаться в API hetzner, и я не могу понять, могу ли я кастомизировать metallb чтобы он так делал. Подумываю nginx на отдельном хосте поднять, и тулзу к нему написать, которая смотрит в API kubernetes и узнает для какого приложения на какие ноды направлять трафик, но мне кажется должно быть что-то по проще. Я думал с ingerss nginx могу сделать что-то подобное. Например обозначить какую-то группу нод - (ноды для ingerss), которые будут смотреть наружу портами 80, 443 и направлять трафик на нужные поды, но так и не понял, можно ли это сделать вообще. Направьте пожалуйста в правильную ли я сторону вообще копаю.
У меня тоже железки в хецнере. Решил пока на их облаке поднять несколько edge серверов и на них поставить nginx-ingress, в разных локациях. 2 месяца пока, аварий не было. >Подумываю nginx на отдельном хосте поднять, и тулзу к нему написать, Просто возьми несколько инстансов в облаке, выдай им taintы(чтобы только nginx ingress мог там хоститься) и хельмом поставь nginx-ingress, он будет слушать 80/443 порты на этих инстансах и проксировать трафик куда надо.
Anonymous
А ещё клаудфлейр отличная тема для днс хостинга
Пару раз кф лежал в этом месяце тупо не проксили трафф
Vadim
народ а после создания ноды, если виртуалке больше ресурсов дать, кубер же не увидит, надо пересоздавать ноду?
Vadim
увидит?, не знаю это же вопрос
Vadim
тут в чате вроде кто то писал, поэтому запомнил
George
по идее должен
George
хотя я бы проверил на практике )
Pavel
Должен, в опеншифте все взлетело
Vadim
Ок , спасибо
inqfen
Я менял, все ок видит
inqfen
Емнип воркер мастеру кроме подов на нем докладывается о ресурсах вообще/занятых
inqfen
Чтобы replication controller мог планировать где поды поднимать