Vladimir
хорошо вчера посидели. всем спасибо
denis
Всем привет, пришел за советом.
denis
Если вкратце: хочу разворачивать версии приложения (мультиконтейнерного) на разных сабдоменах. Есть мысль запускать каждую версию как отдельный сервис, при этом каждый контейнер будет отдельным подом. А вот как запрос по сабдомену пробросить на конкретный сервис и где в сервисе описать, какой сабдомен он слушает – с этим вообще непонятно. Буду рад услышать, в каком направлении копать
Ivan
@yolkov заметка про Helm — https://hackernoon.com/the-missing-ci-cd-kubernetes-component-helm-package-manager-1fe002aac680#.21d0bc8hm
Ivan
в частности см. --values и --set
yolkov
спс
Etki
Если вкратце: хочу разворачивать версии приложения (мультиконтейнерного) на разных сабдоменах. Есть мысль запускать каждую версию как отдельный сервис, при этом каждый контейнер будет отдельным подом. А вот как запрос по сабдомену пробросить на конкретный сервис и где в сервисе описать, какой сабдомен он слушает – с этим вообще непонятно. Буду рад услышать, в каком направлении копать
просто балансировщик поставить, который разбирает хост и скидывает на соответствующий неймспейс или сервис, составляя имя этого неймспейса или сервиса на лету я буквально вчера сюда же за советом по подобной штуке обращался, у меня просто стоит nginx, который ловит <build>.<project>.<environment>.ci.company.name и перебрасывает на ingress.<project>-<environment>-<build>.svc.cluster.local
Alexander
Раз есть традиция. Доброе утро! Или день > Какой у вас проект или где работаете? Проекта нет, k8s только изучаю > В чём вы специалист? Так, админю по-немножку > Чем можете быть интересны или полезны сообществу? Да я ж пока и не знаю ничего. Что вот так сразу? >Чем интересно сообщество вам? Опытом с k8s. Но я глупыми вопросами не достаю > Откуда вы? Москва > Как узнали про группу? https://github.com/goq/telegram-list/blob/master/README.md - вот отсюда > В сообщении нужно указать тэг #whois
engelbart
Я нууб, вопрос такой. Есть 4-5 железных серверов, по которым рукми мигруют разные доккер конетейнеры с микросервисами. Конечно надоело, но там довольно старое всё, на заре докера сделано. Авто-масштабирования и такое всякое не нужны. Скорее решаются задачи резервирования. Кубернетес большой оверкилл для этого? или можно/нужно посмотреть/попробовать.
engelbart
Напахнуло мудростью. Сказать то чо хотел ?
Gleb
Если не хочешь заморочек, то попробуй hashicorp Nomad
Gleb
И то, не помню, решит ли все.
Olsen
хз, принято ли тут, но хочется высказать благодарность и респект @DenisIzmaylov за часть из тех материалов, которые отсматриваю на youtube крайнюю неделю. ну и всем привет, спасибо что когда-то добавили, начали созревать вопросы, правда, скорее, немного философского толка: а много кто здесь реально перешел на coreos подходы, начал использовать потому что знал конкретно чего именно хочет от платформы, а не "наткнулся и изучил, оказалось подходящим, а там привыкнем", ну и какие масштабы у реальных боевых штук (только не больших корпоративных облаках, где куча людей могут этим заниматься, а, скорее, о выборе для использования в проектах которые имеют выше среднего вычислительные нагрузки (по ощущениям, т.е., без цифр), но саппортится это все будет совсем небольшим количеством людей. ну и верно ли будет предположить что среди вас есть те кто коммитил во что-нибудь из частей coreos и его насадок?
Denis
Мимими :) Всем вполный вперёд!
Olsen
Мимими :) Всем вполный вперёд!
форма очень удачная оказалась много годе (ну, первой стала 7я, вроде, лекция субботника, где части объясняются), знаешь, информативности там не сильно больше чем на сайте, но подается так что ты понимаешь концептуально, подходит ли для задачи и те ли дроиды что ищешь. в двух словах - еще для прошлого проекта (биллинговая штука одна), мы три года назад спроектировали архитектуру под которую не хватало инструментов (в итоге по части вещей пришлось обойтись полумерами, но, так или иначе, 600к действий над nosql за полторы секунды - это ок показатель на одном юните и отсутствие возможности вбивать костыли).
Olsen
а теперь к вопросам: в конце первого сообщения философские вопросы почему-то интересны. 1. глобальный кэш etcd - ощущение, что к нему ни у кого нет критики вообще ни у кого, это нравится, но настораживает. хочется про траблы и "грабли" 2. недоработки, ограничения внутренних днс, что там с srv поддоменами, нескольким a записям или можно ли подружить с внешними днс (роут58, например) 3. вычислительно все красиво и здорово, но что курить для раздумления правил фэн-шуйного хранения данных (ок, шардинг, реплики...), а какие есть coreos ориентированые идеи для распределенных fs, хранилищах ключей и внутрикластерной CA, например (были кейсы, когда микросервисам внутри системы нельзя было доверять друг-другу и вообще все где фигурируют финансы нужно было подписывать, а в ряде случаев, шифровать при общении с кем угодно, навернякак кто-то это уже продумал). 4. какие реальные ощущения от скорости реакции кластера на то, что происходит с его содержимым (образно, если я запущу вагрантовый вариант coreos на десктопе, проброшу все порты к нему, добавлю в кластер и решу все сервисы готовить и обкатывать на локальной ноде кластера, а в продакшн оно улетает не по команде, а просто ради ресурсов и само же "множится до нужного количества и расселяется" после клонирования сервиса/пачки сервисов с признаками продакшн хотелок. странный кейс, но идею "ждать от кластера того что бы он продолжал себя вести идеально" описывает корректно, думаю.) 5. если верно понимаю, то у нод порты для "общения между собой" обычно торчат наружу и можно повынимать кучу разных конфигов просто зная что спрашивать (или мне показалось?)
Olsen
6. есть способ окончательного раздупления подходов (не логически, а вот это ментальное противоборство, хз, у меня дискомфорт почему-то некий, то ли с непривычки, но пора бы уже, то ли потому что смотрю на этот "склад" как-то близко, но не совсем так, как положено джентельмену) формата 6*2*4 * 3env_ver = количество коробок
Etki
Я нууб, вопрос такой. Есть 4-5 железных серверов, по которым рукми мигруют разные доккер конетейнеры с микросервисами. Конечно надоело, но там довольно старое всё, на заре докера сделано. Авто-масштабирования и такое всякое не нужны. Скорее решаются задачи резервирования. Кубернетес большой оверкилл для этого? или можно/нужно посмотреть/попробовать.
По личным ощущениям - с проектами попроще кубера выходило геморнее, чем с ним, кое-где вообще физически нет авторизации и возможности посмотреть, на какой порт забиндился сервис (не то чтобы тебе это по описанию было нужно, но может возникнуть другая аналогичная проблема). Лучше, конечно, попробовать, можно взять бесплатный триал в google cloud и попробовать его в деле пару дней.
Olsen
примерно такие. так важны нюансы потому, что coreos сильно соответствует некому набору потребностей некого подхода, который после внедрения крайне сильно сократит мне некие внешние "попоболи" (образно, если все будет работать как как заявлено, а классические и привычные инструменты, вроде всего что умеет днс =), обернутые сертами запросы, сквозной кэш которому плевать на мастера, автоподнималки и переселялки, ну и декларативное описание среды...) при этом, перед окончательным решением хочется убедиться что не появится неких дополнительных попоболей связаных не с "переходом" на coreos, а с "особенностями или некорректностями" реализаций чего-нибудь внутри системы
Olsen
как-то так.
Etki
а теперь к вопросам: в конце первого сообщения философские вопросы почему-то интересны. 1. глобальный кэш etcd - ощущение, что к нему ни у кого нет критики вообще ни у кого, это нравится, но настораживает. хочется про траблы и "грабли" 2. недоработки, ограничения внутренних днс, что там с srv поддоменами, нескольким a записям или можно ли подружить с внешними днс (роут58, например) 3. вычислительно все красиво и здорово, но что курить для раздумления правил фэн-шуйного хранения данных (ок, шардинг, реплики...), а какие есть coreos ориентированые идеи для распределенных fs, хранилищах ключей и внутрикластерной CA, например (были кейсы, когда микросервисам внутри системы нельзя было доверять друг-другу и вообще все где фигурируют финансы нужно было подписывать, а в ряде случаев, шифровать при общении с кем угодно, навернякак кто-то это уже продумал). 4. какие реальные ощущения от скорости реакции кластера на то, что происходит с его содержимым (образно, если я запущу вагрантовый вариант coreos на десктопе, проброшу все порты к нему, добавлю в кластер и решу все сервисы готовить и обкатывать на локальной ноде кластера, а в продакшн оно улетает не по команде, а просто ради ресурсов и само же "множится до нужного количества и расселяется" после клонирования сервиса/пачки сервисов с признаками продакшн хотелок. странный кейс, но идею "ждать от кластера того что бы он продолжал себя вести идеально" описывает корректно, думаю.) 5. если верно понимаю, то у нод порты для "общения между собой" обычно торчат наружу и можно повынимать кучу разных конфигов просто зная что спрашивать (или мне показалось?)
5 - https://github.com/kayrus/kubelet-exploit это единственная уязвимость такого рода, о которой слышал. kayrus сидит здесь же, скорее всего подскажет позже, актуально ли это еще. В GKE это решают просто фаерволлом.
Olsen
а не там где происходят вычисления, преимущественно.
Olsen
(формулировка не идеальна, но гипотеза такова, что эксплойты могут быть просто нишевыми, а не невозможными)
Etki
м?
Etki
Про кэш etcd впервые слышу, можно поподробней? Про dns не уверен, что правильно понял вопрос, но внутренний сервис резолвится либо в один псевдоайпишник (который разруливает iptables/userland proxy), либо в несколько "прямых" айпишников, либо указывает на другой адрес (внешний или внутренний). SRV-записи должны создаваться.
Etki
Про хранение данных - тоже уточнить бы, в каком контексте идет вопрос. Правила непосредственно разнесения узлов приложения (будь то база данных или распределенная фс) устанавливает скорее само приложение. Общая рекомендация - стараться не заносить в куб хранение данных, если иначе никак, то либо хранить на подключаемом сетевом хранилище (это не [только] nfs, полный список https://kubernetes.io/docs/user-guide/persistent-volumes/#types-of-persistent-volumes), либо - самый опасный путь - хранить прямо на машине и разгребать всякие проблемы управления шедулингом.
Etki
я сейчас только в контексте куба говорю. корку тут вряд ли много народа гоняет, но я практически уверен, что и в корке, и в кубе etcd кэшем не является
Olsen
всем ведь нет нет, да и хочется иметь сквозну k-v хранилку за которой не нужно следить
Etki
single source of truth скорее. Я честно скажу, что не ковырял исходники куба, но, насколько понимаю, все состояние кластера лежит там и только там.
Olsen
ну да
Olsen
там и только там
Olsen
но кто нам мешает хранить там еще что-то?
Etki
Если вопрос в применимости в качестве кэша, то он под это дело не очень хорошо заточен, шардинга нет, держаться in-memory он, насколько знаю, не умеет.
Olsen
образно, если раньше, когда проксмокс и опенвз... короче, издавна любил сквозной мемкэш для всех относящихся к проекту виртуалкок
Etki
Его все равно можно поднять на tmpfs и читать с наименьшей консистентностью, но проще взять заточенное под это дело решение и не мучать
Olsen
сильно хвалил проверку наличия на мастере при отсутствии на слейве, ttl и еще разное.
Etki
А тот etcd, который управляет коркой/кубом трогать конечно не стоит (если я конечно правильно понял вопрос)
Olsen
писать в него тоже может кто угодно локально, с доставкой всем
Etki
у него нет локальной записи, все равно на мастер уйдет
Olsen
ну, уйдет, но думать об этом, по сути, не нужно, верно?
Etki
я бы все-таки об этом думал
Olsen
?
Olsen
всмысле
Olsen
вернее, почему?
Etki
переизбрание мастера устраивает stw всему кластеру, например
Olsen
про выборы у меня тоже есть вопрос, но он прикладной, потом пока не задал.
Etki
не то чтобы у меня это было в продакшене и я такой весь из себя спец, просто проще взять решение, которое само заботится о том, какие узлы отвечают по какому ключу
Etki
etcd все-таки про консенсус
Etki
кэш про быстрое извлечение данных
Olsen
не против, если я более глупые, чем выше вопросы буду задавать про термины?)
Olsen
stw - ?
Etki
я постоянно путаю термины, поэтому боюсь их использовать. я про шардинг, когда каждый узел в кластере обрабатывает определенный диапазон ключей
Etki
stop the world
Olsen
etcd все-таки про консенсус
консенсус = все данные есть у всех, а если нет - спросить у тех, кто может быть, перед тем как отчаяться.
Etki
нет
Olsen
ну, образно, смотри (можно на ты?)
Etki
конечно
Olsen
есть мемкэшд, мастер, n слейвов
Etki
консенсус - это обязательно спросить у всех (в данном случае спросить у кластера, являешься ли мастером, чтобы иметь право отдать значение)
Etki
боюсь, мы сильно в сторону ушли, и нам завтра надают по шапке за тонну сообщений
Olsen
любое приложение выполняемое где угодно в любой момент просто локально спросит и получит ответ, если ему нужен кусок контекста, json schema, права, ссылки на урлы, серты, внешние сервисы + понимание как подписаны ключи для доступа к ним и у кого про них спросить
Olsen
консенсус - это обязательно спросить у всех (в данном случае спросить у кластера, являешься ли мастером, чтобы иметь право отдать значение)
ох. там рафт же. рафт это когда если давно не слышал новостей от мастера - начинаешь балотироваться и рассказывать соседям. дальше чем больше соседей тебе поверили, тем скорее станешь мастером и начнешь хвастаться уже об этим (если начнешь). есть ты хочешь стать мастером, но получил сообщение от мастера - ты начинаешь просто слушаться. по сути, это значит, что следующим мастером (распространителем инфы) станет тот, кто быстрее всех при текущем "расселении" умудрился распространить среди большинства свою кандидатуру (а значит и с распространение справится лучше других)
Olsen
ну, да ладно. спасибо за комменты, в любом случае.
Etki
ох. там рафт же. рафт это когда если давно не слышал новостей от мастера - начинаешь балотироваться и рассказывать соседям. дальше чем больше соседей тебе поверили, тем скорее станешь мастером и начнешь хвастаться уже об этим (если начнешь). есть ты хочешь стать мастером, но получил сообщение от мастера - ты начинаешь просто слушаться. по сути, это значит, что следующим мастером (распространителем инфы) станет тот, кто быстрее всех при текущем "расселении" умудрился распространить среди большинства свою кандидатуру (а значит и с распространение справится лучше других)
Нет, если запрос идет не с weak consistency, даже мастер обязан обратиться к кластеру и убедиться, что он является мастером. Иначе ни о каком linearizability нельзя говорить, потому что история может разойтись на двух нодах, которые одновременно считают себя мастеарми. Я не с потолка это беру https://github.com/coreos/etcd/issues/741
engelbart
неплохое объяснение рафта
Andrey
Замечу, что etcd не только k-v хранилище, но ещё и очереди отлично реализованы. используем, конечно, отдельный от k8s инстанс
Etki
очереди? в etcd?