Size: a a a

Kubernetes — русскоговорящее сообщество

2020 February 25

L

Lucky SB in Kubernetes — русскоговорящее сообщество
Dmitriy Onishko
в общем получается лучше обойтись без metallb ?
это вопрос религиозный.
лично я считаю металлб убогими костылями с кучей проблем и подпорок.

и если бы у меня была задача обеспечить отказоустойчивость в L2-сети, то я взял бы pacemaker, который бы доп. адрес таскал бы между двумя узлами. А на этих узлах был бы прибит ingress controller с hostNetwork: true строчкой в аннотации.
и никаких тебе NAT-через-SNAT-в-DNAT, и никакой зависимости от k8s API при перездах fip
источник

k

kvaps in Kubernetes — русскоговорящее сообщество
Dmitriy Onishko
Ребята а как работает metallb? есть непонятка.
16 кубер kubespray
установлен metallb в роли loadballancer
ingress-nginx получил у metlalb ипшник 10.5.0.50 который доступен на всех нодах
я думал что я смогу с любой ноды обращаться к этому единому ип 10.5.0.50 но по факту получается что я к портам nginx достучаться могу только с ноды на которой стоит ingress-nginx
на всех остальных получаю
~# telnet 10.5.0.50 80
Trying 10.5.0.50...
telnet: Unable to connect to remote host: Connection refused

в ipmi сервака в консоле вижу IPVS no destination available
внутри кластера metallb не используется, снаружи кластера у тебя должен быть доступ к LoadBalancer IP, попробуй arping и смотри логи спикера запущенного на тойже ноде где и workload он должен отвечать arpreply
источник

c

corsars in Kubernetes — русскоговорящее сообщество
Lucky SB
это вопрос религиозный.
лично я считаю металлб убогими костылями с кучей проблем и подпорок.

и если бы у меня была задача обеспечить отказоустойчивость в L2-сети, то я взял бы pacemaker, который бы доп. адрес таскал бы между двумя узлами. А на этих узлах был бы прибит ingress controller с hostNetwork: true строчкой в аннотации.
и никаких тебе NAT-через-SNAT-в-DNAT, и никакой зависимости от k8s API при перездах fip
Ну я за metalB. Поскольку это еще и tcp балансировщик чего нет в K8 в штатной поставке. Всякие там nginx-ы идут лесом - полноценный балансировщик там только в nginx+
источник

k

kvaps in Kubernetes — русскоговорящее сообщество
> и если бы у меня была задача обеспечить отказоустойчивость в L2-сети, то я взял бы pacemaker, который бы доп. адрес таскал бы между двумя узлами.

вполне годный вариант, если тебе нужен 1-2 адреса, не больше
источник

c

corsars in Kubernetes — русскоговорящее сообщество
kvaps
внутри кластера metallb не используется, снаружи кластера у тебя должен быть доступ к LoadBalancer IP, попробуй arping и смотри логи спикера запущенного на тойже ноде где и workload он должен отвечать arpreply
Да @kvaps прав - посмотри что за сеть выделена metalB контроллером для спикеров и на каком IP и достижима ли она снаружи (маршруты)
источник

AK

Alexey Kudryavtsev in Kubernetes — русскоговорящее сообщество
Кстати да, тоже интересно про LB. Вот допустим мы подняли k8s у себя на серверах.... и как с интернетов получить доступ к сервисам, которые крутятся в кубере? metalB тут как раз поможет?
источник

ВЕ

Валентин Еловский... in Kubernetes — русскоговорящее сообщество
corsars
Ну я за metalB. Поскольку это еще и tcp балансировщик чего нет в K8 в штатной поставке. Всякие там nginx-ы идут лесом - полноценный балансировщик там только в nginx+
так metallb сам - не является "штатной поставкой". Так что если надо балансировку - ставишь что-то. Что нравится - то и ставишь
источник

ВЕ

Валентин Еловский... in Kubernetes — русскоговорящее сообщество
Alexey Kudryavtsev
Кстати да, тоже интересно про LB. Вот допустим мы подняли k8s у себя на серверах.... и как с интернетов получить доступ к сервисам, которые крутятся в кубере? metalB тут как раз поможет?
ingress для этого
источник

c

corsars in Kubernetes — русскоговорящее сообщество
Валентин Еловский
ingress для этого
только для http проектов легоньких для прода а тем более для бэка не рекомендую
источник

k

kvaps in Kubernetes — русскоговорящее сообщество
corsars
Ну я за metalB. Поскольку это еще и tcp балансировщик чего нет в K8 в штатной поставке. Всякие там nginx-ы идут лесом - полноценный балансировщик там только в nginx+
в смысле?
источник

c

corsars in Kubernetes — русскоговорящее сообщество
kvaps
в смысле?
опыт есть  печальный со штаными ingress - только нормальные TCP балансировщики могут разрулить backend и они или коммерческие стоят денег или как metalB который Google опубликовала в прошлом году. фишка в том что сервисы штатные не могут TCP балансировку как и LB роль
источник

k

kvaps in Kubernetes — русскоговорящее сообщество
Alexey Kudryavtsev
Кстати да, тоже интересно про LB. Вот допустим мы подняли k8s у себя на серверах.... и как с интернетов получить доступ к сервисам, которые крутятся в кубере? metalB тут как раз поможет?
Смотря что за сервисы запущенны в кластере, на них вполне может и внешний haproxy роутить, например
источник

A

Alexander in Kubernetes — русскоговорящее сообщество
corsars
опыт есть  печальный со штаными ingress - только нормальные TCP балансировщики могут разрулить backend и они или коммерческие стоят денег или как metalB который Google опубликовала в прошлом году. фишка в том что сервисы штатные не могут TCP балансировку как и LB роль
Такое ощущение, что ты целиком упускаешь из виду существование service-ов
источник

c

corsars in Kubernetes — русскоговорящее сообщество
Alexander
Такое ощущение, что ты целиком упускаешь из виду существование service-ов
Я про них и говорю - не вариант, там же надо замкнуть на них DNS чтобы отношения внутри app label ссылались. а TCP они не могут - только коммерческие балансировщики. Было опыт с этими сервисами
источник

A

Alexander in Kubernetes — русскоговорящее сообщество
corsars
Я про них и говорю - не вариант, там же надо замкнуть на них DNS чтобы отношения внутри app label ссылались. а TCP они не могут - только коммерческие балансировщики. Было опыт с этими сервисами
Что значит "tcp не могут"?
источник

c

corsars in Kubernetes — русскоговорящее сообщество
kvaps
Смотря что за сервисы запущенны в кластере, на них вполне может и внешний haproxy роутить, например
это не вариант - проходили уже.
источник

ВЕ

Валентин Еловский... in Kubernetes — русскоговорящее сообщество
corsars
опыт есть  печальный со штаными ingress - только нормальные TCP балансировщики могут разрулить backend и они или коммерческие стоят денег или как metalB который Google опубликовала в прошлом году. фишка в том что сервисы штатные не могут TCP балансировку как и LB роль
ну не всем нужна tcp балансировка, мне http балансировки вполне достаточно
источник

c

corsars in Kubernetes — русскоговорящее сообщество
Alexander
Что значит "tcp не могут"?
долго объяснять, посмотри доку - они только HTTP
источник

c

corsars in Kubernetes — русскоговорящее сообщество
Валентин Еловский
ну не всем нужна tcp балансировка, мне http балансировки вполне достаточно
Ну да, но мы же идем по другому пути - все завернуть в кубер 😉
источник

A

Alexander in Kubernetes — русскоговорящее сообщество
corsars
долго объяснять, посмотри доку - они только HTTP
Ты путаешь service-ы и ingress-ы
источник