Автор оригинала: Corneil du Plessis.
1. Обзор
В этом учебнике мы покажем, как развернуть приложение из нашей Bootstrap простое приложение с использованием весенней загрузки учебник для Открытый .
В рамках этого мы будем:
- Установка и настройка инструментов разработки Openshift.
- Создайте проект Openshift и развертывание MyS’L.
- Настройка приложения для Весеннее облако Kubernetes .
- Создание и развертывание приложения в контейнере с использованием Ткань8 Maven плагин и протестировать и масштабировать приложение.
2. Конфигурация с открытым смещением
Во-первых, мы должны установить мини- , локальный одноувный кластер Openshift и Открытый клиентский .
Перед использованием Minishift необходимо настроить разрешения для пользователя-разработчика:
minishift addons install --defaults minishift addons enable admin-user minishift start oc adm policy --as system:admin add-cluster-role-to-user cluster-admin developer
Теперь мы хотим использовать консоль Openshift для создания сервиса MyS’L. Мы можем запустить URL-адрес браузера, используя:
minishift console
Если вы не вошли в систему автоматически, используйте разработчик/разработчик.
Создание проекта под названием baeldung-демо а затем создать службу баз данных MyS’L из каталога. Обеспечить baeldung-db для Службы баз данных, baeldung_db для имени базы данных MyS’L и оставьте другие значения по умолчанию.
Теперь у нас есть услуга и секреты для доступа к базе данных. Принять к сведению URL-адрес соединения базы данных: mysql://baeldung-db:3306/baeldung_db
Мы также должны разрешить приложениям читать конфигурацию, такую как Kubernetes Secrets и ConfigMaps:
oc create rolebinding default-view --clusterrole=view \ --serviceaccount=baeldung-demo:default --namespace=baeldung-demo
3. Весеннее облако Зависимостей Kubernetes
Мы будем использовать Весеннее облако Kubernetes проект, позволяющий облачным API для Kubernetes, которые лежат в основе Openshift:
openshift org.springframework.cloud spring-cloud-kubernetes-dependencies 0.3.0.RELEASE pom import org.springframework.cloud spring-cloud-dependencies Greenwich.RELEASE pom import org.springframework.cloud spring-cloud-starter-kubernetes-config org.springframework.boot spring-boot-starter-actuator
Мы также будем использовать Плагин Fabric8 Maven для создания и развертывания контейнера:
io.fabric8 fabric8-maven-plugin 3.5.37 fmp resource build
4. Конфигурация приложения
Теперь мы должны обеспечить конфигурацию, чтобы обеспечить правильные весенние профили и Секреты Kubernetes вводятся в качестве экологических переменных .
Давайте создадим фрагмент YAML в src/main/fabric8 так что плагин Fabric8 Maven будет использовать его при создании конфигурации развертывания.
Нам также нужно добавить раздел для привода Spring Boot, так как по умолчанию в Fabric8 все еще пытается получить доступ к /здравоохранение вместо /актуатор/здоровье:
spec: template: spec: containers: - env: - name: SPRING_PROFILES_ACTIVE value: mysql - name: SPRING_DATASOURCE_USER valueFrom: secretKeyRef: name: baeldung-db key: database-user - name: SPRING_DATASOURCE_PASSWORD valueFrom: secretKeyRef: name: baeldung-db key: database-password livenessProbe: httpGet: path: /actuator/health port: 8080 scheme: HTTP initialDelaySeconds: 180 readinessProbe: httpGet: path: /actuator/health port: 8080 scheme: HTTP initialDelaySeconds: 30
Далее, Мы спасем ConfigMap в openshift/configmap.yml , это содержит данные для application.properts с URL-адресом MyS’L:
apiVersion: v1 kind: ConfigMap metadata: name: spring-boot-bootstrap data: application.properties: |- spring.datasource.url=jdbc:mysql://baeldung-db:3306/baeldung_db
Перед взаимодействием с Openshift с помощью клиента командной строки нам необходимо войти в систему . В правом верхнем справа от веб-консоли находится значок пользователя, из которого мы можем выбрать выпадают меню с пометкой “Копия входа команды”. Затем используйте в оболочке:
oc login https://192.168.42.122:8443 --token=
Давайте убедитесь, что мы используем правильный проект:
oc project baeldung-demo
А потом мы загружаем ConfigMap :
oc create -f openshift/configmap.yml
5. Развертывание
Во время развертывания плагин Fabric8 Maven пытается определить настроенный порт. Существующая application.properts файл в нашем примере приложения использует выражение для определения порта, который плагин не может разобрать. Таким образом, мы должны прокомментировать строку:
#server.port=${port:8080}
от текущего application.properts .
Теперь мы готовы к развертыванию:
mvn clean fabric8:deploy -P openshift
Мы можем наблюдать за ходом развертывания до тех пор, пока не увидим запуск нашего приложения:
oc get pods -w
Следует предоставить список:
NAME READY STATUS RESTARTS AGE baeldung-db-1-9m2cr 1/1 Running 1 1h spring-boot-bootstrap-1-x6wj5 1/1 Running 0 46s
Перед тестированием приложения необходимо определить маршрут:
oc get routes
Распечатают маршруты в текущем проекте:
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD spring-boot-bootstrap spring-boot-bootstrap-baeldung-demo.192.168.42.122.nip.io spring-boot-bootstrap 8080 None
Теперь давайте проверим, работает ли наше приложение, добавив книгу:
http POST http://spring-boot-bootstrap-baeldung-demo.192.168.42.122.nip.io/api/books \ title="The Player of Games" author="Iain M. Banks"
Ожидая следующего вывода:
HTTP/1.1 201 { "author": "Iain M. Banks", "id": 1, "title": "The Player of Games" }
6. Масштабирование приложения
Давайте масштабировать развертывание для запуска 2 экземпляров:
oc scale --replicas=2 dc spring-boot-bootstrap
И мы можем использовать те же шаги, что и раньше, чтобы наблюдать за его развертыванием, получать маршруты и тестировать конечную точку.
Openshift предоставляет широкий спектр опций для управление производительностью и масштабированием за пределами сферы действия этой статьи.
7. Заключение
В этом учебнике мы:
- Установлены и настроены инструменты разработки Openshift и локалированная среда
- Развернута служба MyS’L
- Создана конфигурация ConfigMap и развертывания для обеспечения свойств подключения базы данных
- Построен и развернут контейнер для нашего настроенного приложения Spring Boot, и
- Проверено и масштабировано приложение.
Для получения более подробной информации, проверить подробная документация Openshift .
Полный исходный код наших примеров здесь, как всегда, более на GitHub .