Поделиться через


Развертывание приложения Java вручную с помощью Open Liberty/WebSphere Liberty в кластере Azure Red Hat OpenShift

В этой статье приводятся пошаговые инструкции по запуску Open/WebSphere Liberty в кластере Azure Red Hat OpenShift. В нем описано, как подготовить приложение Liberty, создать образ Docker приложения и запустить контейнерное приложение в кластере Azure Red Hat OpenShift.

В частности, вы узнаете, как выполнить следующие задачи:

  • Подготовка приложения Liberty
  • Создание образа приложения
  • Запустите контейнерное приложение в кластере Azure Red Hat OpenShift с помощью графического интерфейса и интерфейса командной строки

Более автоматизированное решение, которое ускоряет переход к кластеру Azure Red Hat OpenShift, см. в статье Развертывание IBM WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift с помощью предложения Azure Marketplace.

Дополнительные сведения об Open Liberty см. на странице проекта Open Liberty. Дополнительные сведения о WebSphere Liberty см . на странице продукта WebSphere Liberty.

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

Если вы заинтересованы в предоставлении отзывов или тесной работе с сценариями миграции с помощью группы разработчиков, разрабатывающей веб-sphere в решениях Azure, заполните этот короткий опрос по миграции WebSphere и включите контактные данные. Команда руководителей программ, архитекторов и инженеров будет быстро связаться с вами, чтобы начать тесное сотрудничество.

Внимание

Хотя Azure Red Hat OpenShift совместно работает, управляется и поддерживается Red Hat и Майкрософт для предоставления интегрированной поддержки, программного обеспечения, выполняемого на основе Azure Red Hat OpenShift, в том числе описанного в этой статье, распространяется на свои собственные условия поддержки и лицензии. Дополнительные сведения о поддержке Azure Red Hat OpenShift см. в статье "Жизненный цикл поддержки Azure Red Hat OpenShift 4". Дополнительные сведения о поддержке программного обеспечения, описанного в этой статье, см. на основных страницах этого программного обеспечения, как показано в статье.

Примечание.

Для создания и запуска кластера OpenShift в Azure Red Hat OpenShift требуется не менее 40 ядер. Стандартная квота ресурсов Azure для новой подписки Azure не соответствует этому требованию. Чтобы запросить увеличение лимита ресурсов, см . раздел "Стандартная квота: увеличение ограничений по рядам виртуальных машин". Обратите внимание на то, что бесплатная пробная подписка не дает права на увеличение квоты. Прежде чем запрашивать его, перейдите на подписку с оплатой по мере использования.

Необходимые компоненты

Выполните следующие предварительные требования для успешного использования этого руководства:

  1. Подготовьте локальный компьютер с установленной операционной системой Unix (например, Ubuntu, macOS или подсистема Windows для Linux).

  2. Установите реализацию Java выпуск Standard (SE) версии 17 или более поздней (например, Eclipse Open J9).

  3. Установите Maven 3.5.0 или более поздней версии.

  4. Установите Docker для своей операционной системы.

  5. Установите Azure CLI 2.0.75 или более поздней версии.

  6. Установите при envsubst необходимости.

  7. Клонируйте код этого примера в локальной системе. Пример размещен на сайте GitHub.

  8. Следуйте инструкциям из руководства по созданию кластера Azure Red Hat OpenShift 4.

    Хотя шаг "Получение секрета для извлечения Red Hat" помечен как необязательный, он необходим для работы с этой статьей. Секрет для извлечения позволяет кластеру Azure Red Hat OpenShift найти Open Liberty Operator.

    Если вы планируете запускать в кластере приложения, интенсивно использующие память, укажите соответствующий размер виртуальной машины для рабочих узлов с помощью параметра --worker-vm-size. Например, Standard_E4s_v3 — это минимальный размер виртуальной машины для установки Elasticsearch Operator в кластере. Дополнительные сведения см. в разделе:

  9. Подключитесь к кластеру, выполнив действия, описанные в руководстве по подключению к кластеру Azure Red Hat OpenShift 4.

    • Не забудьте выполнить действия, описанные в разделе "Установка интерфейса командной строки OpenShift", так как мы используем oc команду далее в этой статье.
    • Сохраните URL-адрес консоли кластера. Оно должно выглядеть так: https://console-openshift-console.apps.<random>.<region>.aroapp.io/.
    • Запишите учетные данные kubeadmin.
    • Обязательно выполните действия, описанные в разделе "Подключение с помощью интерфейса командной строки OpenShift" с kubeadmin учетными данными.

Установка Open Liberty OpenShift Operator

После создания и подключения к кластеру выполните следующие действия, чтобы установить оператор Open Liberty. Главная начальная страница для Open Liberty Operator размещена на сайте GitHub.

  1. Войдите в веб-консоль OpenShift из браузера, используя учетные данные пользователя kubeadmin.

  2. Перейдите к оператору>OperatorHub и найдите Open Liberty.

  3. Выберите "Открыть свободу" в результатах поиска.

  4. Выберите Установить.

  5. На странице "Оператор установки" проверьте канал обновления версии 1.3, все пространства имен в кластере (по умолчанию) для режима установки и автоматическогоутверждения обновления:

    Снимок экрана: создание подписки оператора Open Liberty.

  6. Нажмите кнопку "Установить " и подождите минуту или два, пока установка не завершится.

  7. Обратите внимание, что оператор Open Liberty успешно установлен и готов к использованию. Если он не готов, перед продолжением диагностики и устранения проблемы.

    Раздел установленных операторов, в котором показано, что Open Liberty Operator установлен.

Создание пространства имен OpenShift для приложения Java

Чтобы создать пространство имен OpenShift для использования с приложением, выполните следующие действия.

  1. Убедитесь, что вы вошли в веб-консоль OpenShift из браузера с помощью kubeadmin учетных данных.

  2. Выберите Administration (Администрирование)>Namespaces (Пространства имен)>Create Namespace (Создать пространство имен).

  3. В поле Name (Имя) укажите open-liberty-demo и нажмите кнопку Create (Создать), как показано ниже.

    Снимок экрана: создание пространства имен.

Создание Базы данных Azure для MySQL

Чтобы настроить База данных Azure для MySQL для использования с приложением, выполните следующие действия.

  1. Создайте гибкий сервер База данных Azure для MySQL, выполнив следующие действия: краткое руководство. Создание гибкого сервера База данных Azure для MySQL с помощью портал Azure. Базу данных можно развернуть в той же группе ресурсов, что и кластер OpenShift. Вернитесь к этому документу после создания базы данных.

    Примечание.

    На шаге "Основы" сохраните значения имени сервера.mysql.database.azure.com, имени пользователя администратора и пароля .

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

    1. В разделе "Общедоступный доступ" убедитесь, что выбран общедоступный доступ к этому ресурсу через Интернет с помощью общедоступного IP-адреса .
    2. Выберите "Разрешить общедоступный доступ" из любой службы Azure в Azure на этом сервере.
    3. Убедитесь, что адрес IPv4 клиента находится в списке разрешенных правил брандмауэра.
    4. Сохранение изменений.

    Снимок экрана: настройка сети базы данных mysql.

  3. Откройте базы данных "Параметры>базы данных>>" выберите "Добавить". Введите значение имени и нажмите кнопку "Сохранить", чтобы создать новую базу данных. Эта база данных имеет тип схемы как пользователь и используется для приложения позже.

    Примечание.

    Сохраните имя созданной базы данных.

Подготовка приложения Liberty

Мы используем приложение Java EE 8 в качестве примера в этом руководстве. Open Liberty — это сервер, полностью совместимый с Java EE 8, поэтому приложение будет работать без проблем. Сервер Open Liberty также полностью совместим с Jakarta EE 8.

Запуск приложения в Open Liberty

Чтобы запустить приложение в Open Liberty, необходимо создать файл конфигурации сервера Open Liberty. Это нужно для того, чтобы подключаемый модуль Liberty Maven мог упаковать приложение для развертывания. Подключаемый модуль Liberty Maven не требуется для развертывания приложения в OpenShift. Однако мы используем его в этом примере с режимом разработчика Open Liberty (dev). В режиме разработчика можно легко запускать приложение в локальной среде. Дополнительные сведения о liberty-maven-plugin см. в статье Создание веб-приложения с помощью Maven.

Выполните действия, описанные в этом разделе, чтобы подготовить пример приложения для дальнейшего использования в этой статье. Для этих действий используется Maven и liberty-maven-plugin.

Получение приложения для изменения

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

git clone https://github.com/Azure-Samples/open-liberty-on-aro.git
cd open-liberty-on-aro

В репозитории содержится несколько примеров. Мы используем open-liberty-on-aro/3-integration/connect-db/mysql. Ниже приведена структура файла приложения:

open-liberty-on-aro/3-integration/connect-db/mysql
├─ src/main/
│  ├─ aro/
│  │  ├─ db-secret.yaml
│  │  ├─ openlibertyapplication.yaml
│  ├─ liberty/config/
│  │  ├─ server.xml
│  ├─ java/
│  ├─ resources/
│  ├─ webapp/
├─ Dockerfile
├─ Dockerfile-wlp
├─ pom.xml

Каталоги java, java и webapp содержат исходный код примера приложения. В коде объявлен и используется источник данных с именем jdbc/JavaEECafeDB.

В каталоге aro мы разместили два файла развертывания. db-secret.xml используется для создания секретов с учетными данными подключения к базе данных. Файл openlibertyapplication.yaml используется для развертывания образа приложения.

В корневом каталоге мы помещали два файла Dockerfile. Dockerfile и Dockerfile-wlp используются для локальной отладки и создания образа для развертывания Azure Red Hat OpenShift, работы с Open Liberty и WebSphere Liberty соответственно.

В каталоге liberty/config server.xml используется для настройки подключения к базе данных для кластера Open Liberty и WebSphere Liberty.

Построить проект

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

cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql

# The following variables are used for deployment file generation
export DB_SERVER_NAME=<Server name>.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=<Database name>
export DB_USER=<Server admin username>
export DB_PASSWORD=<Server admin password>
export NAMESPACE=open-liberty-demo

mvn clean install

Локальное тестирование приложения

Выполните следующие действия, чтобы выполнить liberty:devc команду для локального запуска и тестирования образа проекта и контейнера перед выполнением любой сложности Azure. Дополнительные сведения о команде liberty:devc см. в документации по подключаемому модулю Liberty.

  1. При необходимости запустите локальную среду Docker. Инструкции для этой процедуры зависят от операционной системы сервера виртуальных машин.

  2. Используйте следующие команды, чтобы запустить приложение в liberty:devc режиме:

    cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql
    
    # If you are running with Open Liberty
    mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile
    
    # If you are running with WebSphere Liberty
    mvn liberty:devc -DcontainerRunOpts="-e DB_SERVER_NAME=${DB_SERVER_NAME} -e DB_PORT_NUMBER=${DB_PORT_NUMBER} -e DB_NAME=${DB_NAME} -e DB_USER=${DB_USER} -e DB_PASSWORD=${DB_PASSWORD}" -Dcontainerfile=Dockerfile-wlp
    
  3. Убедитесь, что приложение работает правильно. В случае успеха в выходных данных команды должно появиться примерно такое сообщение: [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.. В браузере перейдите по адресу https://localhost:9443/, чтобы убедиться, что приложение доступно и все функции работают.

  4. Чтобы остановить liberty:devc режим, нажмите клавиши Control+C.

Подготовка образа приложения

Чтобы развернуть и запустить приложение Liberty в кластере Azure Red Hat OpenShift, контейнеризируйте приложение как образ Docker с помощью образов контейнеров Open Liberty или образов контейнеров WebSphere Liberty.

Создание приложения и отправка в поток изображений

Так как вы уже успешно запустили приложение в контейнере Docker Liberty с помощью liberty:devc команды, вы будете удаленно создавать образ в кластере, выполнив следующие действия:

  1. Убедитесь, что вы войдите в интерфейс командной строки OpenShift с помощью kubeadmin учетных данных.

  2. Используйте следующие команды, чтобы определить исходный каталог и Dockerfile:

    cd <path-to-your-repo>/open-liberty-on-aro/3-integration/connect-db/mysql
    
    # If you are building with the Open Liberty base image, the existing Dockerfile is ready for you
    
    # If you are building with the WebSphere Liberty base image, uncomment and execute the following two commands to rename Dockerfile-wlp to Dockerfile
    # mv Dockerfile Dockerfile.backup
    # mv Dockerfile-wlp Dockerfile
    
  3. Используйте следующую команду, чтобы изменить проект на open-liberty-demo:

    oc project open-liberty-demo
    
  4. Чтобы создать поток изображений, используйте следующую команду:

    oc create imagestream javaee-cafe-mysql
    
  5. Чтобы создать конфигурацию сборки, указывающую тег потока изображения выходных данных сборки, используйте следующую команду:

    oc new-build --name javaee-cafe-mysql-config --binary --strategy docker --to javaee-cafe-mysql:v1
    
  6. Используйте следующую команду, чтобы запустить сборку, чтобы отправить локальное содержимое, контейнеризацию и выходные данные в тег потока изображений, указанный ранее:

    oc start-build javaee-cafe-mysql-config --from-dir . --follow
    

Развертывание приложения в кластере Azure Red Hat OpenShift

Теперь вы можете развернуть пример приложения Liberty в кластере Azure Red Hat OpenShift, созданном ранее при работе с предварительными условиями.

Развертывание приложения из веб-консоли

Так как мы используем оператор Open Liberty для управления приложениями Liberty, нам нужно создать экземпляр его пользовательского определения ресурсов типа OpenLibertyApplication. Оператор заботится обо всех аспектах управления ресурсами OpenShift, необходимыми для развертывания. Чтобы создать этот экземпляр, выполните следующие действия.

  1. Войдите в веб-консоль OpenShift из браузера, используя учетные данные пользователя kubeadmin.

  2. Разверните узел Home (Домашняя страница) и выберите Projects (Проекты)>open-liberty-demo.

  3. Выберите Operators (Операторы)>Installed Operators (Установленные операторы).

  4. В середине страницы вы увидите Open Liberty.

  5. В предоставленных API выберите OpenLibertyApplication. Навигация по элементам в пользовательском интерфейсе отражает фактическую иерархию вложенности используемых технологий.

    Схема хранения Azure Red Hat OpenShift Java.

  6. Выберите "Создать OpenLibertyApplication".

  7. Выберите представление YAML для настройки с помощью команды "Настроить".

  8. Замените созданный yaml вашим, который находится в <пути к репозиторию>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.

  9. Нажмите кнопку создания. Вы вернеесь в список OpenLibertyApplications.

  10. Перейдите к секретам рабочих>нагрузок.

  11. Выберите "Создать> из YAML".

  12. Замените созданный yaml вашим, который находится в <пути к репозиторию>/3-integration/connect-db/mysql/target/db-secret.yaml.

  13. Нажмите кнопку создания. Вы вернеесь на страницу сведений о секрете.

  14. Перейдите к операторам, установленным операторам>>OpenLibertyApplication.>

  15. Выберите javaee-café-mysql.

  16. В середине страницы выберите Resources (Ресурсы).

  17. В таблице выберите ссылку для javaee-café-mysql с типом маршрута.

  18. На открывшейся странице щелкните ссылку в разделе Location (Расположение).

Домашняя страница приложения откроется в браузере.

Удаление приложения из веб-консоли

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

  1. В области навигации слева разверните элемент Operators (Операторы).
  2. Выберите Installed Operators (Установленные операторы).
  3. Выберите "Открыть свободу".
  4. В середине страницы выберите OpenLibertyApplication.
  5. Для javaee-café-mysql выберите вертикальный многоточие (три вертикальные точки), а затем выберите Удалить OpenLibertyApplication.
  6. Выберите "Удалить ", чтобы удалить приложение.

Чтобы удалить секрет из Open Shift, выполните следующие действия.

  1. Перейдите к секретам рабочих>нагрузок.
  2. Выберите db-secret-mysql.
  3. Выберите "Действия>удалить секрет".
  4. Выберите "Удалить ", чтобы удалить секрет.

Очистка ресурсов

Удалите кластер Azure Red Hat OpenShift, выполнив действия, описанные в руководстве. Удаление кластера Azure Red Hat OpenShift 4. Убедитесь, что база данных и все связанные ресурсы также удаляются.

Следующие шаги

Дополнительные сведения можно найти по следующим ссылкам:

Сведения о возможностях запуска продуктов WebSphere в Azure см. в статье "Что такое решения для запуска семейства продуктов WebSphere в Azure?"