kay
кто может подсказать оффициальный контейнер с curl внутри? желательно minimal
kay
типа alpine
kay
нашел. docker.
Alexander
в ubuntu вроде есть, но он не минимальный
Pavel
По поводу сети тоже интересно
Pavel
какие Pros/Cons
Pavel
Flannel/Weave/VPN
Sergei
weave - скорость говно.
flannel на udp - скорость говно
flannel на vxlan - скорость норм, но говно ввиду инкапсуляции.
VPN - это общее слово, непонятно, что здесь имеется в виду.
calico/custom routed - збс.
yolkov
http://chunqi.li/2015/11/15/Battlefield-Calico-Flannel-Weave-and-Docker-Overlay-Network/
Sergei
отличный тест.
ничего о скорости сходимости.
ничего о скорости передачи данных.
ничего о потреблении cpu.
Anonymous
мне тоже не понравился поста, разве что даёт какую-то вводную
Anonymous
всё равно всё самим
Anonymous
подскажите, http://kubernetes.io/docs/getting-started-guides/scratch/#etcd дошёл до запуска etcd, kubectl у меня всё ещё ругается на
The connection to the server 10.128.13.22 was refused - did you specify the right host or port?
Anonymous
из запущенного у меня: докер, kubelet, kube-proxy через системд
Anonymous
ну и соответственно что-то должно висеть
Oct 7 13:37:34 by1-depl-k8s-1 kubelet: E1007 13:37:34.675115 6293 reflector.go:203] pkg/kubelet/kubelet.go:387: Failed to list *api.Service: Get https://10.128.13.22/api/v1/services?resourceVersion=0: dial tcp 10.128.13.22:443: getsockopt: connection refused
Anonymous
что я не доконфигурил?
Anonymous
kubelet/kube-proxy хотят в апи, апи поднимается подом, его ещё поднять не успел, или нет?
Sergei
порт.
Anonymous
kubeletа порт нужно задать, да?
Anonymous
куда его?
Sergei
Get https://10.128.13.22/api/v1/services?resourceVersion=0
Pavel
ну хоть какой то тест
Sergei
судя по всему идет обращение на 443-й порт. а нужно, вероятно, на какой-то другой.
Anonymous
kay
Вот кстати как получить последние евенты? что-то типа tail -f -1 ?
Pavel
правильно я понимаю что большинство живут с calico? и это как бы сейчас recommended?
Anonymous
а openvswitch?
yolkov
я сразу калико настраивал исходя из обзоров. но я пока только играюсь и в бою не использую
Sergei
я использовал кастомную сеть с выделением /24 на хост.
kay
насчет tail и -1: вот такое решение придумал:
curl "http://localhost:8080/api/v1/watch/events?resourceVersion=$(curl -s http://localhost:8080/api/v1/events | jq -r '.metadata.resourceVersion')"
yolkov
Sergei
Ну без автоматики/calico/anything else.
Всё хозяйство делится на зоны. В моем случае это кусочки датацентров.
N зон (до ~256 с выбранной адресацией). Каждая зона содержит до ~250 нод. Также в каждой зоне содержится 2 или более GW. На GW присутствуют внешние адреса. Они обеспечивают NAT во внешний мир и связность с остальными зонами. Внутри зоны - один L2-домен.
Между всеми GW построен multipoint GRE, на него выделена /23 сеть. Между всеми GW ходит OSPF. На каждом GW исходящий в сторону внешних сетей натится в провайдерскую сеть.
На каждую зону выделяется /24 сеть для хостов и /16 сеть для контейнеров. Например, 172.16.$zone.$node - адрес ноды, 10.$zone.$node.0/24 - сеть для контейнеров. Бридж создается вне докера, на него навешивается со стороны хоста адрес 10.$zone.$node.1. Докеру указано выдавать адреса из 10.$zone.$node.0/24.
В каждой зоне ходит свой отдельный OSPF (связанный с backbone OSPF через GW). Каждая нода анонсирует свою подсеть для контейнеров в этот OSPF. Все остальные ноды на площадке ловят эти маршруты и прописывают их себе в таблицу маршрутизации. Также эти анонсы ловят GW и передают на остальные площадки, возможно агрегируя маршрут.
voilla.
В принципе, все можно построить на статической маршрутизации, но:
1) OSPF обеспечивает очень быструю сходимость сети.
2) OSPF обеспечивает ECMP-роутинг между площадками и во внешний мир. Если необходимо увеличить пропускную способность - можно поставить больше GW на площадку.
3) По сравнению с решением dumb L2, L2-домены остаются весьма небольшого размера, лишая нас стандартных L2-проблем
4) Решение потенциально хорошо дружит с сетевым железом и в других архитектурах (например, когда нет возможности иметь L2-домен на зону).
Вообще, получилось что-то вроде calico, только на OSPF и без cli-tools.
yolkov
👍
Sergei
тут есть проблема с потенциальным недостатком адресов.
ждем ipv6 в k8s.
yolkov
а виртуальную подсеть для сервисов как приземляли?
Sergei
а зачем ее приземлять? она существует же только в пределах хоста.
yolkov
или все было в облаке?
yolkov
у меня много ресурсов вне облак, я потихоньку хочу переносить по сервисам внутрь куба
yolkov
пока NodePort спасает
yolkov
но не гибко
Sergei
а, вопрос как трафик снаружи внутрь попадает?
Vladimir
А есть кто на Azure? Какой конфиг? Какие подводные камни?
yolkov
у нас своя АС, потом свой слой балансеров и за ними уже слой нгинксов, дальше уже много разных внутренних сервисов
yolkov
пока что сторонние сервисы засовываю в куб
Alexander
Из подводных камней, это сети между подписками и нет нормального распределенного хранилища.
Alexander
Распределенное хранилище имеется ввиду ceph или подобное.
Alexander
Я просто поднял 3 виртуалки Ubuntu на трех подписках и уже игрался с ними
Vladimir
Ясно, спасибо. Вот еще в AWS можно их ELB к сервисам прикручивать. А азуровские балансеры можно так?
Zon
Да, но они TCP онли
Alexander
балансерами не игрался
Vladimir
спасибо
Zon
ну, TCP/UDP, не L7
Zon
Вольюмы тоже работают
Vladimir
понял
kay
Костыль, но зато я теперь kubernetes events не теряю
https://github.com/kayrus/elk-kubernetes#forward-kubernetes-events-into-kibanaelasticsearch
M
Энибади с логами в ELK в кубере, как вы его чистите, чтобы он не рос бесконечно?
kay
индексы чисть
M
Руками? Или есть что то по расписанию?
kay
есть
kay
https://github.com/elastic/curator
M
Да я его тоже загуглил, есть какая нить бестпрактиз как его запускать совместно с курьером?
kay
ну либо крон
kay
либо под с sleep
kay
и while true
M
Т9 рулит
M
Ясно, спасибо)
M
https://hub.docker.com/r/lukaspronto/docker-curator-cron/
M
Вот еще нагуглилось, мб кому то пригодится
Anonymous
А вот еще вопрос что с этими логами делать ибо их доструя ) может дашборды какие
kay
да в чем проблема? делай сам.
kay
строишь, например, запросы только ошибочных логов. и анализируешь
Anonymous
Лениво, вдруг че есть )
kay
ну с таким подходом тебе никакие kibana не нужны )
Anonymous
логи тогда можно в /dev/null гнать, чтобы место не занимали)
Etki
а у него есть шардинг?
Zon
У ластика точно есть
Anonymous
всем утро
я тут думал что самый хитрожопый и смогу статику пихать в configmap чтобы потом ее nginx подхватывал
но по факту выяснилось что configmap не умеет директории :)
в связи с этим хочу поднять вопрос еще раз: кто как статику деплоит?