Denis
G72K
описал +- вот тут: https://github.com/kubernetes-incubator/kube-aws/issues/462
G72K
вкратце: создает ветку vanilla/stack куда просто вываливается дефолтный конфиг из kube-aws, затем на основе нее создается tailored/stack где все правки/дополнения/улучшения общие для всех кластеров, из них создается defaults/<AWS-account> которые по сути tailored/stack с заполненными полями вроде vpc-id, subnet id и т.д.,затем из них уже создается kluster/<kluster-name> где финальный конфиг конкретного кластера. таким образом изменения можно вносить на всех уровнях, "релизить" кластеры по будто это код ну и подтягивать всю свежесть из новых версий kube-aws относительно легко, без ручного переноса кастомизаций
G72K
десятком кластеров таким методом управлять получается довольно просто. при росте >20-30 кластеров наверно нужно будет дальше автоматизировать роботами
Vitalii
кто как разворачивает кубер?
coreos ignition конфиги. Шаблонизируем через Ansible. За основу брали coreos matchbox, но сильно всё переделано.
Logan
Oleg
а разработку как ведете? вот надо всю инфраструктуру из подов, а отдельный локальный сервис со своей машины
Denis
Oleg
у меня я девопс )
Oleg
на чем san разворачиваете?
Sergey
Ребята подскажите в чем может быть проблема, у нас периодически ingress начинает на все запросы отдавать 503, в логах повляется надписи наподобие
service default/company_1 does not have any active endpoints
service default/company_2 does not have any active endpoints
service default/company_3 does not have any active endpoints
Sergey
так происходит минут 5 потом все восстанавливается
Sergey
т.е. такое ощущение будто сервисы массово теряют endpoint
Sergey
при этом поды не пересоздаются
Logan
а в логах кубелета есть что-нибудь интересное?
Sergey
Роман
Изучаю куб.
Поднимаю тестовое приложение, типа вебсервера, который отображает на странице hostname (имя пода, в котором поднят контейнер). Создал нэймспейс, сервис и деплоймент. По умолчанию под не поднимается на мастер-ноде (10.0.0.10), но поднимается на node1 (10.0.0.11). Если я с node1 выполню curl http://127.0.0.1:30001, то всё хорошо - показывается hostname. Если я с мастер-ноды выполню curl http://127.0.0.1:30001 (порт этот есть в списке открытых) - у меня таймаут соединения. В связи с этим вопрос: что мне ещё нужно предпринять, чтобы схема заработала?
Реализовать хочу такую схему: допустим я поднял несколько реплик на разных нодах - что-то должно балансировать запросы между ними. Пускай это делает nginx. Сейчас я вижу только то, что мне вручную придётся править конфиг энджинкса и прописывать там ноды. Может это как-то по другому делается?
Роман
Ну и второе: где и что нужно разрешить, чтобы я с мастер-ноды мог выполнить curl http://10.0.0.11:30001? Сейчас у меня тоже таймаут, если я пытаюсь это сделать. Думаю, это потому, что каких-то прав нехватает...
Zon
А вот такой вопрос - чем лучше сделать простые (301/302) редиректы, если их нужно много и не хочется билдить для этого новые имаджи? Чтоб при этом можно было регэкспы задавать, а не просто мап
M
Sokolov
Привет всем. На работе внедряется Kubernetes. Где можно подробно и с примерами почитать? В доке? Или лучше есть? Может видео?
Logan
а вы не пробовали самостоятельно искать информацию?
Logan
а то такой вопрос выглядит даже не как хамство
Logan
для начала можно взять официальный док и курс на юдасити
Konstantin
lmgtfy
G72K
Artе́m
Ребят, можно вопрос?
Artе́m
Мне надо ноду развернуть, чтобы было, как здесь infura.io
Artе́m
https://github.com/ethereumproject/etherkube
Artе́m
может кто-то помочь с этим?
Konstantin
Помочь - сделать?
Logan
вот мне тоже интересно стало
Knyage
Коллеги, правильно ли я понимаю схему кластеризации мастер-нод:
каждый из процессов (etcd, kube-apiserver , kube-dns) должен быть запущен как docker контейнер. Каждый процесс объявить cервисом, с проброшенным наружу IP, ну и настроить Replication Controllers. Соответственно снаружи запросы на них будут поступать через какой-нибудь балансировщик (тот же nginx+, например).
Собственно требуется повысить отказоустойчиость самого кластера, чтобы при падении мастера (где у меня крутится апи и прочее), кластер оставался доступным. Может я чего не так понимаю 🤔
Буду благодарен, если кто подскажет, как лучше всего это должно быть спроектировано :)
G72K
etcd это отдельная песня.запускаете их нечетное количество >2 и все
G72K
матсер ноды: на каждой apiserver, scheduller , controller (ну и kubelet но он везде кроме etcd)
G72K
apiserver они stateless, так что все просто работает. scheduller и controller manager умеют leader election если передать соответствующий флаг. тогда они между собой через etсd будут договариваться кто из них главный, а остальные на подхвате
Artur
Всем привет. Подскажите что такое Deployments в контексте Kubernetes?
Etki
Какие вопросы возникли после прочтения оф.доки?
Sergej
"(etcd, kube-apiserver , kube-dns) должен быть запущен как docker контейнер. " можно и в качестве бинарника.
Dorian
православенее в докере
Dorian
бинари тоже работают
Knyage
Спасибо за ответы!
Dorian
С резервированием
Dorian
ахха
Artur
Knyage
Knyage
оп,спасибо! Пошел изучать :)
Etki
https://coreos.com/etcd/docs/latest/op-guide/clustering.html подозреваю что для третьей версии это
G72K
обновляете == заливаете новый yaml
Konstantin
есть кто работает с разной оркестрацией? docker swarm mode сильно отстаёт от кубера по функционалу?
Roman
Ребят, пытаюсь продумать как сделать правильно, но не получается с собой даже договориться. Подскажите, пожалуйста.
Есть сервис, который из себя представляет бинарь на go, общающийся с redis в качестве хранилки.
Допустым есть несколько нод в кластере kubernetes (предположим 4). Хочется размножить на эти ноды данный сервис.
С размножением go-шного бинарника в контейнере никаких проблем нет, делаем replicas 4 и забываем.
Как быть с редисом я не совсем понимаю, а конкретно - с консистентностью данных. Можно на каждой ноде сделать вольюм, который будет монтироваться по сети, но мне кажется что это костыль.
Может кто сталкивался с подобным, подскажите добрым словом.
Etki
вам нужно сменить хранилище. я не шучу.
Maksim
Ребят, пытаюсь продумать как сделать правильно, но не получается с собой даже договориться. Подскажите, пожалуйста.
Есть сервис, который из себя представляет бинарь на go, общающийся с redis в качестве хранилки.
Допустым есть несколько нод в кластере kubernetes (предположим 4). Хочется размножить на эти ноды данный сервис.
С размножением go-шного бинарника в контейнере никаких проблем нет, делаем replicas 4 и забываем.
Как быть с редисом я не совсем понимаю, а конкретно - с консистентностью данных. Можно на каждой ноде сделать вольюм, который будет монтироваться по сети, но мне кажется что это костыль.
Может кто сталкивался с подобным, подскажите добрым словом.
Кажется мне, проблема твоя вне плоскости кубера
Etki
если у вас не включен фсинк на каждый коммит в редисе, то вы и так уже в беде
Konstantin
смотря что он хранит в редисе, не сказано. И нужно ли его масштабировать в его случае вообще
Etki
данные, которые должны быть консистентными
Roman
вам нужно сменить хранилище. я не шучу.
да, я уже рассматривал этот вариант)
просто можно что сделать - 4 приложения на го, которые пишут в один редис. но этот редис находится на одной ноде. в случае выхода ноды из строя будут проблемы. о реплике я тоже думал, но это вариантик так себе. собрать кластер из редисов - вольюмы и костыли
Etki
Этот кластер все равно будет неконсистентным, там все гарантии только от однопоточного режима. В случае кластера эта отговорка уже понтяное дело не сработает.
Konstantin
редис для данных плохая затея
Etki
Если у вас жесткие требования к консистентности (требуется линеаризация операций, т.е. результат операции над записью сразу же виден последующим чтениям), то попробуйте riak, если у вас что-то попроще - то можно взять Кассандру (там на самом деле тоже можно делать CAS-операции, просто по умолчанию там нет никаких проверок, да и у riak бОльшая заточенность на разбор с конфликтами - те же счетчики у него должны работать как часы, у кассандры возможны аномалии).
Etki
(есть еще миллиард других вариантов, просто я их не знаю или недостаточно знаю, чтобы рекомендовать)
Roman
да можно тарантул взять даже🌚
вопрос был именно о редисе)
Roman
спасибо, ребят)
Maksim
Ещё чуток инфы. Вообще на офф сайте очень много интеренсого написано...
G72K
Etki
редис не нужен 😏
Pasha
Using Projected volumes | Kubernetes
https://kubernetes.io/docs/tasks/configure-pod-container/projected-volume/
Sergey
> We are excited to announce that we are working in partnership with both Google and IBM to bring Envoy to Kubernetes.
https://eng.lyft.com/envoy-7-months-later-41986c2fd443
https://news.ycombinator.com/item?id=14194026