Как развернуть сложное приложение в Kubernetes - PullRequest
1 голос
/ 24 октября 2019

Допустим, у меня есть классическое приложение с

  • Web
  • Backend
  • DB

Если я правильно понимаю, я создамразвертывание для каждого из них. Что если я захочу развернуть все за один шаг? Как я должен сгруппировать развертывания. Я читал кое-что о ярлыках и услугах, я совершенно не уверен, какая концепция является правильной. Есть два порта, с которыми необходимо столкнуться снаружи (http и debug). Просто для ясности, пропуская инициализацию БД и проверку готовности.

Как я могу развернуть все сразу?

Ответы [ 2 ]

4 голосов
/ 24 октября 2019

Для этого вам нужно несколько объектов Kubernetes, и есть несколько способов решить эту проблему.

Web - это зависит от того, что это такое. Это просто статические файлы JavaScript? В этом случае проще всего развернуть его с помощью решения CDN на любом облачном провайдере, локальном решении или, возможно, с использованием продукта на основе Kubernetes, например, KubeCDN .

* 1011. * Backend - при использовании Kubernetes мы создаем бэкэнд, который будет без состояния , следуя принципам Twelve Factor . Приложение такого типа развертывается в Kubernetes с использованием Deployment , которое развернет один или несколько экземпляров вашего приложения, возможно, эластично масштабируемого в зависимости от нагрузки. Перед всеми вашими экземплярами вам нужна служба , и вы хотите предоставить эту службу с помощью loadbalancer / proxy, используя Ingress .

DB - это приложение с состоянием , если оно развернуто в Kubernetes, то приложение такого типа развертывается как StatefulSet , и вам также нужно подумать о том, как с этим обращаться с хранилищем,возможно, он может обрабатываться с помощью Kubernetes Persistent Volume .

Как видите, для этой настройки требуется много объектов Kubernetes. Если вы используете простые декларативные файлы Kubernetes yaml, вы можете разместить их в каталоге, например, my-application/ и развернуть все файлы с помощью одной команды:

kubectl apply -f my-application/

Однако есть и другие альтернативы, например, использование Helm

2 голосов
/ 24 октября 2019

Используйте шлем. Вы создаете одну таблицу управления для каждого из ваших приложений и можете также связать их с зависимостями ( требования ). Затем вы можете легко развернуть их как одно приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...