M
вроде работает
Dmitry
посмотрел на хардвей, буду пробовать)
@exename а ты по нему настраивал?
M
нет
M
первую установку делал по смеси coreos и мана в гите у k8s
M
ман уже выпилили вроде
Dmitry
на хабре есть перевод вроде
Dmitry
но сейчас они будут толкать народ в сторону kubeadm
Dmitry
потому что не каждый так с бубном сможет))
Dmitry
@exename @agadelshin спасибо большое за помощь!
пойду спать и завтра буду заново курить как запустить
Alexander
Я вчера провозился с этим кубэадмином пол дня, в итоге он насоздавал всякую чушь а кубернетис так и не запустил )
Sn00part
кубернетис сложный. какую именно часть не запустил)
Alexander
пол дня, это мало
Alexander
недельку как минимум надо
Sn00part
а в суровых погодных условиях до пяти месяцев)
Alexander
уже 1.4.1 зарелизили
Alexander
Да я так и понял )
Alexander
Но кстати второй вариант через weave нормально заработал
Igor
Успешно устанавливаем kubernetes ансиблом, но только на CentOS 7 пока. Роли ансибла свои, с фэйрволом.
Sn00part
а карго пробовали?
Dmitry
Igor
За основу брались не скрипты, а руководство по установке на RHEL. С contrib впоследствии был взят только README :)
Igor
Также еще с других руководств по нитке :)
Igor
Почти нигде не используется фэйрвол, пришлось по крупицам собирать инфу также
Igor
лучше по частям и самому - тогда приходит понимание
Dmitry
а разработчики что использую локально для того, чтобы писать микросервисы?) миникуб?
Igor
Сначала ETCD кластер или просто на мастер, потом flannel, 3 компонента: APIserver, Cotro;ler Manager иScheduler, потом kubelet и kubeproxy
Igor
ансиблом просто все делается потом то же самое что и руками, только в нужной последовательности
Igor
Рабочая демка: https://github.com/takama/k8sdemo
Dmitry
спасибо! сейчас попробую
Igor
Dashboard и SkyDNS там ставятся отдельно, одной коммандой - не по умолчанию.
Igor
Если понадобятся то в доке есть комманда как поставить
Igor
У нас в компании есть звено между разработчиками и девопсами, которые умеют и то и другое :)
Igor
Да оно, касательно конфигов - 100% идеальное решение: всю динамику только через переменные окружения ENV, всю статику залинковывать в контейнеры
Igor
Kubernetes может легко работать без SkyDNS если есть соглащение по именованию ENV, в демке про это упоминается
Igor
Кстати оно уже с переводом вроде в оригинале: https://12factor.net/ru/
Dmitry
а сервис дискавери?
мне напрямую нужно взаимодейтсвовать с etcd (он, как я понял, используется по умолчанию в кубернете) или там переменные среды будут обновляться и я должен их отслеживать их в самом приложении?
например:
имеем 2 сервиса:
1) принимающий запросы от клиента (браузера)
2) сервис аутентификации пользователя (к этому сервису ходят другие сервисы, до которых может достучаться пользователь; до сервиса аутентификации пользователь не может достучаться напрямую)
так вот, если сервис аутентификации отвалится или поднимается его реплика и уже будет 2 сервиса аутентификации, то как сервис, принимающий запросы от клиента, сможет узнать новый айпишник новой реплики?)
я собственно изза этого вопроса и начал кластер разворвачивать, чтобы смоделировать данную ситуацию и понять, как я должен писать код
Igor
У Kubernetes используется кластерный IP - именно он и заполнен в переменных окружения ENV. Обращение к сервису происходить по кластерному IP. Если одна из реплик отваливается, то поднимается другая реплика. С этим проблем нет
Etki
а сервис дискавери?
мне напрямую нужно взаимодейтсвовать с etcd (он, как я понял, используется по умолчанию в кубернете) или там переменные среды будут обновляться и я должен их отслеживать их в самом приложении?
например:
имеем 2 сервиса:
1) принимающий запросы от клиента (браузера)
2) сервис аутентификации пользователя (к этому сервису ходят другие сервисы, до которых может достучаться пользователь; до сервиса аутентификации пользователь не может достучаться напрямую)
так вот, если сервис аутентификации отвалится или поднимается его реплика и уже будет 2 сервиса аутентификации, то как сервис, принимающий запросы от клиента, сможет узнать новый айпишник новой реплики?)
я собственно изза этого вопроса и начал кластер разворвачивать, чтобы смоделировать данную ситуацию и понять, как я должен писать код
Тупо резолвишь днс с headless-сервисом раз в секунду-две-десять, подтягиваешь новые айпишники. Запросы делашеь настолько идемпотентными, насколько возможно, в случае провала либо делаешь ретрай на следующем сервере, либо сразу возвращаешь ошибку в случае неидемпотентности
Igor
Кластерный IP - это адрес сервиса, а не конкретной реплики. Обращение происходит к одной из живых реплик
Dmitry
Igor
не, там именно IP
Igor
ipv4
Dmitry
не, там именно IP
понял
получается IP, который не меняется в жизни контейнера с сервисом, верно?)
Dmitry
Igor
не меняется с регистрацией сервиса, даже если реплик нет
Dmitry
Etki
Etki
Там еще какие-то edge cases были, но я уже не вспомню сейчас
Igor
по хорошему еще нужно в продакшин поставить Ingres для балансировки правильной
Igor
по сути там HAProxy
Etki
Dmitry
если подключение к БД создалось, то уже никак)
Igor
Чтобы все было четко с TCP и балансировкой - используйте Ingres - HaProxy
Dmitry
но ведь если у меня 2 реплики бд, то один сервис подрубится к одной реплике, а другой - к другой
Igor
К БД тоже HAProxy и лучше отдельно, вне кластера Kubernetes
Etki
Igor
Балансировка к БД - отдельная тема
Dmitry
никто не дает таких гарантий
верно
но в случае, когда приложение само ходит и где-то спрашивает, не обновились ли айпишники, то приложение самостоятельно должно будет пересоздать подключение
Igor
У нас стоит Galera 7 нод мастер-мастер через HAProxy
Dmitry
Балансировка к БД - отдельная тема
да, скорее всего это так)
меня больше волновал запрос к внутренним самописным сервисам, с которыми нет необходимости держать TCP соединение
Dmitry
а как быть с secret токенами? например от AWS S3?
Dmitry
их тоже хранить в переменных среды?
Igor
Хранить можно где угодно, но в переменные среды они попадают хоть как
Dmitry
или есть файл с общими креденшиалами, которые линкуются во все контейнеры и все от них питаются?
Etki
Igor
Можно для этого запускать контейнер с секретами :)
Dmitry
Etki
не-не, это прям его фичаа
Dmitry
Etki
http://kubernetes.io/docs/user-guide/secrets/
Igor
secrets в Кубернетисе вроде
Etki
я до нее так и не дошел, но там все нормально с распределением секретов только для тех, кто должен их знать