Запустите несколько микросервисов docker image вместе на локальном устройстве с Minikube - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть несколько микросервисов около 20 или около того, чтобы проверить их услуги в моей локальной разработке. Микро-сервисы - это сервисы весенней загрузки со сборкой maven. Поэтому я хотел знать, когда мне нужно запускать их на моем aws сервере, могу ли я запускать все эти контейнеры по отдельности, как если бы они имели общую базу данных, так что это будет одна проблема, с которой я могу столкнуться. Или возможно ли запустить все эти службы вместе в одно docker изображение. Кроме того, мне нужно настроить его с помощью Kubernetes, чтобы я настроил Minikube в своем локальном устройстве, было бы полезно, если есть некоторые соображения, которые необходимо учитывать при работе с 20services на моем minikube или даже с Kubernetes env

PS: я знаю это это базовый c вопрос, но я не имею большого представления о Devops

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

В идеале у вас должно быть разное docker изображение для каждой из микроуслуг и создание kubernetes развертывания для каждой из микроуслуг. Это позволяет масштабировать отдельные микроуслуги независимо друг от друга. Также связь между микро сервисами должна быть через kubernetes service . Это делает связь стабильной, потому что IP-адреса служб и полное доменное имя не изменяются, даже если модули создаются, удаляются, масштабируются вверх и вниз.

Просто будьте осторожны с тем, сколько памяти и ЦП понадобятся сервисам micros и если система с миникубом столько ресурсов или нет. Если доступной памяти и ЦП узла Kubernetes недостаточно для планирования модуля, то модули будут зависать в состоянии ожидания.

0 голосов
/ 26 апреля 2020

Поскольку у вас слишком много микросервисов, я предлагаю вам создать кластер Kubernetes на AWS из 3-4 виртуальных машин ( подробнее здесь ). Затем попробуйте развернуть все ваши микросервисы на этом. Для этого вам нужно создать контейнеры индивидуально для каждой службы и создать развертывание kubernetes для каждой службы.

Я запускаю все эти контейнеры по отдельности, так как они могут иметь общую базу данных, поэтому это будет одна проблема, с которой я могу столкнуться.

Поскольку у вас есть общая база данных, я предлагаю вам запустить ваш сервер базы данных на отдельном хосте, а затем удаленно подключиться к вашей базе данных из ваших служб. Таким образом, вы сможете совместно использовать базу данных между вашими микросервисами.

...