Рубрики
Без рубрики

Развертывание приложения Quarkus без балансировщика нагрузки Kubernetes com

На сегодняшний день очень много, если falaem приложения, cloud native, когда мы говорим об этой концепции… С тегами kubernetes, java, cloud.

На сегодняшний день очень много, если falaem приложения, cloud native, когда мы говорим об этом понятии, мы имеем в виду приложения containerizadas, которые выполняются в облачной среде, масштабируемость, высокую доступность и отказоустойчивость. Много раз мы, разработчики, не мы, введенные в контексте инфраструктуры компании, в которых мы работаем, и это не есть видение того, как эта вселенная работает под капотом, но имеет большое значение знать эти понятия, для разработки приложений, которые будут действительно масштабируемость и высокая доступность.

В этой статье мы будем запускать приложение с Framework Quarkus, с помощью Minikube для запуска Kubernetes локально, и использовать Nginx Попадание Контроллер, чтобы сделать балансировки нагрузки запросов, что наше приложение для получения.

В этой статье необходимо, уже есть знания о том, что такое контейнеры.

Технология

Говоря немного о стек, который мы будем использовать в этой статье:

Kubernetes

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

Quarkus

Quercus é um framework с открытым исходным кодом desenvolvido бледно-Красная шляпа. Думал, для приложений, Cloud native, Quarkus принес инновации, обеспечивающий разработку Приложений на Java с низким потреблением памяти и быстрого запуска.

Хелм

Хелм-это менеджер пакетов для приложений, предназначенных для запуска в кластере Kubernetes.

Структура Проекта

Джонатас-гарсия/демо-quarkus-k8s

Проект, который мы выполним есть предложение довольно просто. Получает запрос HTTP GET для конечной точки “/host”, и отвечает на один объект, содержащий имя машины, на которой он работает, дата и текущее время. Таким образом, мы сможем проверить, если балансировка нагрузки осуществляется должным образом между экземплярами, которые будут запущены.

Файлы отношении конфигурации Хелм находятся в папке ” “Хелм” , в нем есть следующие файлы:

  • Chart.yaml – Содержит все сведения о приложении: название, описание, тип и версию.

  • values.yaml – Файл, который содержит значения параметров, которые мы используем файлы “настройка” Kubernetes. В этом случае мы указав “replicaCount”, что это количество экземпляров нашего приложения, некоторые сведения относительно контейнера и его базы данных на dockerhub, а также сведения порта приложения. Эти сведения вводятся по Хелм в файлы шаблонов Kubernetes которых мы и поговорим ниже.

Чтобы настроить наш deploy все файлы шаблонов Kubernetes, который находится в папке “хелм/templates” , который содержит следующую структуру.

  • deployment – Содержит файл dp.yaml, который является одним template Kubernetes, который мы используем, чтобы указать приложение, которое будет запускаться, например, имя изображения, количество экземпляров и некоторые метаданные, например, использовать этикетки для идентификации приложения. В этом случае мы определяем, что наш контейнер выполняет изображение jonathasgarcia/демо-quarkus-k8s, будет 4 экземпляров, а также определим некоторые другие метаданные.
  • service – Содержит файл с пакетом.yaml, template Kubernetes для создания пакета, то есть мы, подвергая наше приложение, чтобы доступ к внутренним/внешним. В этом случае, мы, указав, что при нашем кластере Kubernetes прием заявок в дверь 30081, вызов будет перенаправлен на порт 8080, который является воротами нашего приложения.
  • попадание – Содержит файл попадание.yaml файл, чтобы указать объект попадание, отвечающий за управление доступом на внешние почтовые службы, которые работают в нашем Kubernetes. В этом файле мы определяем, что звонки на маршрут/app перенаправляются в пакет, который мы создали выше. На Попадание также становится ответственным за проведение балансировки нагрузки между экземплярами доступны.

Важно вспомнить в этот момент, что эти файлы в github не получают значения непосредственно, они настроены, чтобы быть заполнены по Хелм в соответствии с файл values.yaml .

Выполнить

Запуск Minikube

minikube start

Контроллер доступа Habilitando без мини-куба

minikube addons enable ingress

Создание имен, в котором будет работать наше приложение.

kubectl create namespace backend

Запуск приложения, по крайней Хелм

helm install --namespace backend demo-quarkus ./helm 

В этой команде определим установки нашего приложения, передавая в котором namepace будет установлено, имя приложения и путь к папке находятся файлы конфигурации.

Мы можем проверить стручки выполняется с помощью команды

kubectl get pods -n backend

Чтобы сделать minikube доступным выполните следующую команду в другой терминал, и minikube предоставит один IP для доступа.

minikube tunnel

Доступ 172.17.171.187:30081/host у нас уже есть доступ к приложению через браузер, но в этом случае мы, перейдя непосредственно service, минуя попадание controller, поэтому если мы дадим некоторые F5 на экране мы увидим, что информация “hostname” не изменяется, так как балансировка нагрузки осуществляется через попадание.

Alessandro 172.17.171.187/app/host temos acesso a aplicação passando pelo контроллер входа, лембрандо для настройки пути “/app” для перенаправления в пакет из нашего приложения. Таким образом, то попадание получает запрос и перенаправляет вас на нашей службы, распределяя каждого запроса для каждого из экземпляров, которые находятся в реализации.

Обновление настройки с помощью Helm

Давайте предположим, что мы хотим уменьшить количество экземпляров 4-для всего 2. Esa informação é determinada pelo parâmetro “replicaCount” no nosso values.yaml .

helm upgrade demo-quarkus -n backend --set replicaCount=2 ./helm

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

Завершение

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

Оригинал: “https://dev.to/jonathasgarcia/deploy-de-aplicacao-quarkus-no-kubernetes-com-loadbalancer-3k1f”