Развертывание пружинных загрузочных микро сервисов с K8 в производстве - PullRequest
0 голосов
/ 19 сентября 2019

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

1) Deploy each *.war file into a apache tomcat docker container, and using the service discovery mechanism of k8's.
2) Run each application normally using "java -jar *.war" into pods and expose their ports using port binding.

Спасибо.

Ответы [ 2 ]

3 голосов
/ 19 сентября 2019

Канонический способ развертывания приложений в Kubernetes заключается в следующем:

  1. Упакуйте каждый компонент приложения в образ контейнера и загрузите его в реестр контейнеров (например, Docker Hub)
  2. Создайте ресурс Развертывание для каждого контейнера, который запускает контейнер как модуль (или набор реплик модулей) в кластере
  3. Отображение модулей в каждом развертывании с помощью Сервис , чтобы к ним могли получить доступ другие Модули или пользователь
1 голос
/ 19 сентября 2019

Я бы предложил использовать встроенный сервер Tomcat в файле Springboot .jar для развертывания ваших микросервисов.Ниже приведен ответ @weibeld, который я также использую для развертывания своих приложений Springboot.

  1. Упакуйте каждый компонент приложения в образ контейнера и загрузите его в реестр контейнеров (например, Docker Hub).)

Вы можете использовать Стрела , чтобы легко создавать безупречное изображение.Изображение контейнера может быть построено с использованием maven plugin .

mvn compile jib:build -Djib.to.image=MY_REGISRY_IMAGE:MY_TAG -Djib.to.auth.username=USER -Djib.to.auth.password=PASSWORD

Создание ресурса развертывания для каждого контейнера, который запускает контейнер как модуль (или набор реплик модулей) в кластере

Создайте свою файловую структуру развертывания .yml и настройте параметры развертывания так, как вам нужно.

kubectl create deployment my-springboot-app --image MY_REGISRY_IMAGE:MY_TAG --dry-run -o yaml > my-springboot-app-deployment.yml

Создайте развертывание:

kubectl apply -f my-springboot-app-deployment.yml

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

kubectl expose развертывания my-springboot-app --port = 8080 --target-port = 8080 --dry-run -o yaml> my-springboot-app-service.yml

kubectl apply -f my-springboot-app-service.yml

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