Салтыдык
ну, собственно, я про это и говорил. Как минимум, это нормальная практика
Dmitry
вообще, 1. можно ли как-то подключиться к weave сети с мака? 2. Так вообще делают?
Dmitry
weave/flannel/calico..
Салтыдык
ну в теории очень даже реально, но на практике такого не видел. Может кто другой ответит
Dmitry
Ок, мне важно знать что юзают обычные люди))
Dmitry
спасибо
Dmitry
Вот еще, тупой базовый вопрос. (Я пробую мир куба, хотя всю жизнь работаю с амазоном). вот есть helm charts. и есть stable/mysql. В доках написано как вручную задеплоить. А как это запихнуть в что-то а-ля docker-compose? Народ пишет счто создает common.yml, prod.yml итд. Есть где-то базовые примеры структуры репозоитория со всем этим добром?
Dmitry
хочу сориентироваться на низшем уровне, типа "куда мне вписать `stable/mysql`", докер композ все понятно и явно, тут не особо). Копировать charts в свой репозиторий как-то не хочется.
Dmitry
Посмотрел тесты... по идее будет достаточно положить db.yml
charts:
- stable/mysql
- stable/postgresql
и запустить helm db.yml | kubectl apply -f - ?
Dmitry
(в простейшем виде, конечно)
Dmitry
и да, какие best practices? каждый конфиг под своим неймспейсом запускать?
Dmitry
Ну вот есть деплой kubernetes конфига через ansible, оно вообще одобряется? Модуль kubernetes?
Dmitry
Ну ок, а как это запилить в единый конфиг файл?
Салтыдык
что есть конфиг-файл?
Dmitry
Или нужно чарт отрендерить и сохранить как конфиг куба?
Dmitry
ну, который применим при помощи kubectl apply или ansible
Dmitry
Чтобы в итогде запустить одну команду а она все остальное развернет.
Салтыдык
да, чарт нужно пропустить через хельм и на выходе получатся сконкаченые манифесты кубернетеса (в теории, так ещё не делал)
Dmitry
Салтыдык
настройки как генерить манифесты находятся в values.yaml, который вы подсовываете хельму в определённый чарт.
Так же можно использовать аргументы, которые переопределяют проперти в values.
Dmitry
Вот представим, что мы сдаем работу заказчику. Работа должна быть в репозитории, со списком внешних зависимостей
Салтыдык
с хельмом не особо сталкивался, написал свой шаблонизатор на sed'е и не парюсь
bebebe
Салтыдык
да не, прост проще же
Dmitry
Ну ок, при таком раскладе как разворачивать известный софт который может поддерживаться коммьюнити?
Dmitry
типа mysql
bebebe
Dmitry
Вот в этом и запар) Меня интересует наиболее поддерживаемый сообществом вариант, похоже что. это helm
Салтыдык
это ойти стыд
ну для чего-то сложного — конечно седом не обойтись)
Для ELK писал свой чарт
Dmitry
helm для коммьюнити, понятно. для своего - шаблонизатор либо манифесты для сред, выходит так?
Dmitry
тогда как хранить свзи с helm чартами?
Dmitry
tiller рабоатет как шаблонизатор - деплой на стороне сервера, так?
Салтыдык
Условно — да.
Прочитайте лучше доку по helm:
https://github.com/kubernetes/helm
Салтыдык
Краткий ответ: Helm has two parts: a client (helm) and a server (tiller)
Dmitry
Обязательно. Но все же вопрос, как это все хранится в репе ?
Dmitry
в докер компоуз, например, мы описываем службы и деплоим именно этот файл. Там образы с тех или иных репозиториев явно прописаны... Что у меня в случае с helm (в случае с tiller)? не похоже что я должен хранить манифесты...
Салтыдык
тут тоже несколько подходов. Кому как нравится.
Кто-то хранит чарты\манифесты рядом с софтом, а кто-то отдельный репо только с манифестами\чартами делает.
Dmitry
Ну вот отдельный репо вариант.
Dmitry
я хочу задеплоить mysql из чарта по стандарту. Скажем, что мой репо деплоит mysql и nginx. Есть какой-то conventional подход как это все хранить? в доках не особенно про подходы
Салтыдык
каждый делает как ему нравится, единого подхода как и везде в кубернетесе — нет
Салтыдык
можете по чату тут поискать, много холиваров было
Dmitry
Dmitry
с минимальной дупликацией апстримовского кода
Салтыдык
нужно понимать объём приложения, поделить его на логические части, если получится, и деплоить независимыми частями. Хранить как душе угодно.
Салтыдык
конкретнее подсказать не могу. На мой взгляд, деплой mysql и nginx — это настолько абстрактно, что можно и без helm-а справиться.
Dmitry
Я задаю очень базовые вопросы чтобы понять куда складывать дальнейшие знания.
Dmitry
Ну вот, https://github.com/kubernetes/charts/blob/d284317c2258f4e9d6a870d79db1e4095e441ac3/stable/lamp/examples/wordpress.yaml
Dmitry
это что?
Dmitry
это чарт или пример манифеста или пример параметров для чарта?
bebebe
Dmitry
Helm
Ну вот я смотрю в эту сторону.
bebebe
Dmitry
а потом селать kube apply из того что получится, так?
Салтыдык
да, но помните, что chart'ы могут внезапно поменять свой синтаксис и уже вроде и не круто совсем)
Dmitry
Салтыдык
поэтому тут вариант — форк или submodule
Dmitry
А, речь про содержание а не синтаксис.
Салтыдык
про сам чарт. Сегодня есть поддержка мускула в этом чарте, а завтра уже нет.
Dmitry
вот я о чем и задумываюсь, в ansible есть requirements.yml где это все решается, типа requireemnts.txt для python.
Dmitry
Теперь к самому важному. Как мне описать список чартов и сохранить это, а потом натравить н это helm?
Dmitry
Не каждый же раз вручную вводить helm install --name mysql stable/mysql ?
Салтыдык
именно так, для апгрейда и релоада всяких конфигов у хельма есть механизм upgrade
Dmitry
Ну представим что там 40 чартов для всей инфраструктуры надо. Я даю всю работу заказчику, он должен 40 раз запустить это? или обернуть в bashскрипт? неуженли встроенного механизма зависимостей нет?
Dmitry
(я доки почитаю, конечно)
Салтыдык
в скрипт
Салтыдык
ещё раз напоминаю — хельм по большей части просто шаблонизатор
Dmitry
ну официально он называется The Kubernetes Package Manager
bebebe
так же можно обратить внимание на ansible-container
bebebe
но там порог вхождения/внедрения больше чем helkm
Dmitry
ммм, спасибо
Dmitry
Видимо как раз то что я искал
Dmitry
но он чарты уже не берет, похоже.
Dmitry
Последний раз когда я его смотрел, это был docker-compose на стеройдах
bebebe
он с чартами не работает. а умеет сам шипать в k8s/openshift