Мы только что переехали в kubernetes для управления контейнерами при моем запуске. У меня есть пара мнений по этому поводу:
Если цель состоит в том, чтобы просто распределить приложение эликсира по «роду» узлов и / или машин, Kubernetes добавляет немало сложности и приближения к этой цели. В итоге вы получаете не только кривую изучения распределения BEAM, но и саму экосистему kubernetes.
Однако приложения kubernetes и elixir могут очень хорошо работать вместе, особенно если развертывание вашего приложения более сложное, чем проекты с чистым elixir. Например, у нас есть пользовательские службы, запускаемые из javascript, python, elixir и golang при развертывании нашего приложения (не говоря уже о дюжине случайных инструментов).
Kubernetes помогает расширить возможности для распределения и управления узлами для всех этих сервисов с помощью одной стратегии.
Чтобы ответить на ваш вопрос: это может быть хорошей идеей, но я бы рекомендовал сначала научиться управлять программой эликсир, распространяемой отдельно. Это не так просто, как все считают, но лучше, чем большинство технологий программирования для других языков IMO. Вот хорошее руководство по началу работы с распределенным эликсиром / эрлангом: http://engineering.pivotal.io/post/how-to-set-up-an-elixir-cluster-on-amazon-ec2/.
Вы можете выделить эту кривую обучения, и как только вы почувствуете себя комфортно, переходите к кубернетам. Вот действительно хороший ресурс по началу работы с роением через kubernetes: http://bitwalker.org/posts/2016-08-04-clustering-in-kubernetes/
Ой, один последний комментарий: преимущества решения обеих кривых обучения заключаются в том, что вы в конечном итоге получаете мощь распределенного эликсира, остальная часть развертывания вашего приложения может не отставать, а экосистема kubernetes обеспечивает множество очень крутых технологий, таких как автоматическое масштабирование, помогающее разблокировать вас из облачного провайдера и т. д.