Dmitry
не совсем понимаю задачу. Выкинуть порт в интернет и повесить авторизацию не подходит?
Ну задача с траблшутингом нормально решится через порт, думаю. А вообще, например локально запустить тестовый клиент который должен иметь доступ ко всем адресам... Но, скорее всего, я не правильно понимаю концепцию, и нужно использовать ingress
Салтыдык
ну, собственно, я про это и говорил. Как минимум, это нормальная практика
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?
Салтыдык
Посмотрел тесты... по идее будет достаточно положить db.yml charts: - stable/mysql - stable/postgresql и запустить helm db.yml | kubectl apply -f - ?
чарты хельма — это просто шаблоны, в которые вставляются нужные "значения". helm install --name my-release --namespace production -f my-values-for-prod.yml path_to_chart Если правильно синтаксис помню. Это вариант, где в кластере установлен tiller, ваш вариант выше — это просто генерация шаблона и деплой голым kubectl
Dmitry
Ну ок, а как это запилить в единый конфиг файл?
Салтыдык
что есть конфиг-файл?
Dmitry
Или нужно чарт отрендерить и сохранить как конфиг куба?
Dmitry
ну, который применим при помощи kubectl apply или ansible
Dmitry
Чтобы в итогде запустить одну команду а она все остальное развернет.
Салтыдык
да, чарт нужно пропустить через хельм и на выходе получатся сконкаченые манифесты кубернетеса (в теории, так ещё не делал)
Dmitry
да, чарт нужно пропустить через хельм и на выходе получатся сконкаченые манифесты кубернетеса (в теории, так ещё не делал)
Ну то есть "правильная" практика - хранить все в манифестах? А как же зависимость от helm? Я запарился.
Салтыдык
настройки как генерить манифесты находятся в values.yaml, который вы подсовываете хельму в определённый чарт. Так же можно использовать аргументы, которые переопределяют проперти в values.
Dmitry
Вот представим, что мы сдаем работу заказчику. Работа должна быть в репозитории, со списком внешних зависимостей
Салтыдык
с хельмом не особо сталкивался, написал свой шаблонизатор на sed'е и не парюсь
Салтыдык
да не, прост проще же
Dmitry
Ну ок, при таком раскладе как разворачивать известный софт который может поддерживаться коммьюнити?
Dmitry
типа mysql
bebebe
Салтыдык
Ну ок, при таком раскладе как разворачивать известный софт который может поддерживаться коммьюнити?
можно хельмом, можно свой чарт\манифест и поддерживать самому. Можно вообще оператор написать) Много вариантов. Можно один софт так развернуть, другой так
Dmitry
Вот в этом и запар) Меня интересует наиболее поддерживаемый сообществом вариант, похоже что. это helm
Салтыдык
это ойти стыд
ну для чего-то сложного — конечно седом не обойтись) Для ELK писал свой чарт
Dmitry
helm для коммьюнити, понятно. для своего - шаблонизатор либо манифесты для сред, выходит так?
Dmitry
тогда как хранить свзи с helm чартами?
Салтыдык
Вот в этом и запар) Меня интересует наиболее поддерживаемый сообществом вариант, похоже что. это helm
да, только вот к хельму существует 2 подхода деплоя: 1. использовать хельм чисто как шаблонизатор и просто генерить манифесты, а потом деплоить через kubectl. 2. использовать helm+tiller.
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
каждый делает как ему нравится, единого подхода как и везде в кубернетесе — нет
Ну вот спрашиваю личного мнения, как мне сохранить конфиг для nginx, mysql
Dmitry
с минимальной дупликацией апстримовского кода
Салтыдык
нужно понимать объём приложения, поделить его на логические части, если получится, и деплоить независимыми частями. Хранить как душе угодно.
Салтыдык
конкретнее подсказать не могу. На мой взгляд, деплой mysql и nginx — это настолько абстрактно, что можно и без helm-а справиться.
Dmitry
Я задаю очень базовые вопросы чтобы понять куда складывать дальнейшие знания.
Dmitry
Ну вот, https://github.com/kubernetes/charts/blob/d284317c2258f4e9d6a870d79db1e4095e441ac3/stable/lamp/examples/wordpress.yaml
Dmitry
это что?
Dmitry
это чарт или пример манифеста или пример параметров для чарта?
Dmitry
Helm
Ну вот я смотрю в эту сторону.
Салтыдык
это чарт или пример манифеста или пример параметров для чарта?
это values-файл для конкретной сборки той солянки, что доступна в чарте
bebebe
Ну вот я смотрю в эту сторону.
Респект таким пацанам
Dmitry
это values-файл для конкретной сборки той солянки, что доступна в чарте
Ок, понял. То есть мне надо как минимум value файл сохранить в репе. далее helm натравить на чарт с этими value.
Dmitry
а потом селать kube apply из того что получится, так?
Салтыдык
да, но помните, что chart'ы могут внезапно поменять свой синтаксис и уже вроде и не круто совсем)
Салтыдык
поэтому тут вариант — форк или 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