Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье приводятся пошаговые инструкции по запуску 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".
Дополнительные сведения об Open Liberty см. на странице проекта Open Liberty. Для получения дополнительной информации о WebSphere Liberty см. страницу продукта WebSphere Liberty.
Эта статья предназначена помочь вам быстро приступить к развертыванию. Прежде чем перейти к производству, рекомендуется исследовать Tuning Liberty.
Если вы заинтересованы в предоставлении отзывов или тесной работе над вашими сценариями миграции вместе с инженерной командой, разрабатывающей решения WebSphere на 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 не соответствует этому требованию. Чтобы запросить увеличение лимита ресурсов, см. Стандартная квота: увеличение ограничений по сериям виртуальных машин. Обратите внимание на то, что бесплатная пробная подписка не дает права на увеличение квоты. Прежде чем запрашивать его, перейдите на подписку с оплатой по мере использования.
Предварительные условия
Локальный компьютер с установленной операционной системой, например Ubuntu, macOS или подсистема Windows для Linux.
Реализация Java Стандартная редакция (SE), версия 17, например, Eclipse Open J9.
Maven, версия 3.9.8 или более поздняя.
Docker для вашей ОС.
Azure CLI версии 2.61.0 или более поздней.
Кластер Azure Red Hat OpenShift 4. Чтобы создать кластер, следуйте инструкциям в статье "Создание кластера Azure Red Hat OpenShift 4", учитывая следующие различия:
Хотя инструкции, связанные с секретами доступа, помечены как необязательные, секрет доступа обязателен для этой статьи, особенно для создания кластера. Секрет загрузки позволяет кластеру Azure Red Hat OpenShift найти Open Liberty Operator.
В этой статье в качестве демонстрационной базы данных используется Azure MySQL. Номера SKU Azure MySQL недоступны во всех регионах, поэтому вы должны выбрать регион Azure, который работает, например
westus. Вы можете проверить наличие доступных номеров SKU MySQL в определенном регионе Azure с помощью следующей команды:az mysql flexible-server list-skus --location <location>Следующие переменные среды, определенные в разделе "Создание кластера Azure Red Hat OpenShift 4", используются далее в этой статье.
-
RESOURCEGROUP— имя группы ресурсов, в которой развернут кластер. -
CLUSTER— имя кластера.
-
Если вы планируете запускать в кластере приложения, интенсивно использующие память, укажите соответствующий размер виртуальной машины для рабочих узлов с помощью параметра
--worker-vm-size. Дополнительные сведения см. в следующих статьях:
Подключитесь к кластеру, выполнив действия, описанные в разделе "Подключение к кластеру Azure Red Hat OpenShift 4" с помощью следующих инструкций:
- Не забудьте выполнить действия, описанные в разделе "Установка интерфейса командной строки OpenShift", так как вы используете
ocкоманду далее в этой статье. - Сохраните URL-адрес консоли кластера. Оно должно выглядеть так:
https://console-openshift-console.apps.<random>.<region>.aroapp.io/. - Запишите учетные данные
kubeadmin. - Обязательно выполните действия, описанные в разделе "Подключение с помощью интерфейса командной строки OpenShift" с
kubeadminучетными данными.
- Не забудьте выполнить действия, описанные в разделе "Установка интерфейса командной строки OpenShift", так как вы используете
Установка оператора Open Liberty
После создания и подключения к кластеру выполните следующие действия, чтобы установить оператор Open Liberty. Главная начальная страница для Open Liberty Operator размещена на сайте GitHub.
Войдите в веб-консоль OpenShift из браузера, используя учетные данные пользователя
kubeadmin.Перейдите к Операторы>OperatorHub и найдите Open Liberty.
Выберите "Открыть свободу" в результатах поиска.
Выберите Установить.
На странице "Оператор установки" выполните следующие действия.
- Для канала обновления выберите самый последний канал v1.4.
- Для режима установки выберите Все пространства имен в кластере (по умолчанию).
- Для утверждения обновления выберите "Автоматически".
Нажмите кнопку "Установить" и подождите несколько минут до завершения установки.
Обратите внимание, что оператор Open Liberty успешно установлен и готов к использованию. Если он не готов, диагностируйте и устраните проблему, прежде чем продолжить.
Примечание.
В этом руководстве устанавливается оператор Open Liberty для управления приложениями Liberty в кластере Azure Red Hat OpenShift. Если вы хотите использовать оператор WebSphere Liberty, выполните действия, описанные в статье "Установка оператора WebSphere Liberty" для установки оператора WebSphere Liberty в кластере.
Создание пространства имен OpenShift для приложения Java
Чтобы создать пространство имен OpenShift для использования с приложением, выполните следующие действия.
Убедитесь, что вы вошли в веб-консоль OpenShift из браузера с помощью
kubeadminучетных данных.Выберите Administration (Администрирование)>Namespaces (Пространства имен)>Create Namespace (Создать пространство имен).
В поле "Имя" введите open-liberty-demo и нажмите кнопку "Создать", как показано на следующем снимке экрана.
Создание гибкого сервера базы данных Azure для MySQL
База данных Azure для MySQL модель развертывания гибкого сервера — это режим развертывания, предназначенный для более детального управления и гибкости функций управления базами данных и параметров конфигурации, чем режим развертывания одного сервера База данных Azure для MySQL. В этом разделе показано, как создать экземпляр гибкого сервера База данных Azure для MySQL с помощью Azure CLI. Для получения дополнительной информации см. краткое руководство: Создание экземпляра базы данных Azure для MySQL — гибкий сервер с помощью Azure CLI.
Используйте следующую команду в терминале для создания экземпляра гибкого сервера Базы данных Azure для MySQL. Замените <location>, на регион Azure, где есть доступные SKU, в котором вы хотите создать сервер, например, westus. Замените <server-admin-password> паролем, отвечающим требованиям к сложности паролей для гибкого сервера База данных Azure для MySQL.
export LOCATION=<location>
export ADMIN_PASSWORD='<server-admin-password>'
export ADMIN_USER=adminuser
export DATABASE_NAME=${RESOURCEGROUP}db
az mysql flexible-server create \
--name ${CLUSTER} \
--resource-group ${RESOURCEGROUP} \
--location $LOCATION \
--admin-user $ADMIN_USER \
--admin-password $ADMIN_PASSWORD \
--database-name $DATABASE_NAME \
--public-access 0.0.0.0 \
--yes
Примечание.
В этой статье описано, как создать гибкий сервер Azure для базы данных MySQL с аутентификацией MySQL. Более безопасная практика — использовать проверку подлинности Microsoft Entra для проверки подлинности подключения сервера базы данных. Azure Red Hat OpenShift в настоящее время не поддерживает идентификатор рабочей нагрузки Microsoft Entra, поэтому единственным доступным вариантом аутентификации остаётся MySQL.
Если появится сообщение об ошибке No available SKUs in this location, укажите другое расположение с помощью параметра --location и повторите попытку. Используйте следующую команду, чтобы перечислить доступные номера SKU в определенном расположении:
az mysql flexible-server list-skus --location <location>
Найдите расположение, которое имеет доступные номера SKU, а затем повторите предыдущую az mysql flexible-server create команду.
Создание сервера, базы данных, пользователя администратора и правила брандмауэра, которое принимает подключения из всех ресурсов Azure, занимает несколько минут. Если команда выполнена успешно, выходные данные выглядят примерно так:
{
"connectionString": "mysql <database-name> --host <server-name>.mysql.database.azure.com --user <server-admin-username> --password=<server-admin-password>",
"databaseName": "<database-name>",
"firewallName": "<firewall-name>",
"host": "<server-name>.mysql.database.azure.com",
"id": "/subscriptions/REDACTED/resourceGroups/<resource-group-of-the-OpenShift-cluster>/providers/Microsoft.DBforMySQL/flexibleServers/<server-name>",
"location": "<location>",
"password": "<server-admin-password>",
"resourceGroup": "<resource-group-of-the-OpenShift-cluster>",
"skuname": "Standard_B1ms",
"username": "<server-admin-username>",
"version": "8.0.21"
}
Подготовка приложения Liberty
В этом руководстве мы используем приложение Jakarta EE 10. Open Liberty совместим с Jakarta EE 10 и поддерживает полный профиль. Дополнительные сведения см. в API платформы Jakarta EE.
Запуск приложения в Open Liberty
Чтобы запустить приложение в Open Liberty, необходимо создать файл конфигурации сервера Open Liberty. Это нужно для того, чтобы подключаемый модуль Liberty Maven мог упаковать приложение для развертывания. Плагин Liberty Maven не требуется для развертывания приложения на OpenShift. Однако мы используем его в этом примере с режимом разработчика Open Liberty (dev). В режиме разработчика можно легко запускать приложение в локальной среде. Дополнительные сведения о liberty-maven-plugin см. в статье Создание веб-приложения с помощью Maven.
Выполните действия, описанные в этом разделе, чтобы подготовить пример приложения для дальнейшего использования в этой статье.
Ознакомьтесь с приложением
Используйте следующие команды, чтобы клонировать пример кода для этого руководства. Пример размещен на сайте GitHub.
git clone https://github.com/Azure-Samples/open-liberty-on-aro.git
cd open-liberty-on-aro
export BASE_DIR=$PWD
git checkout 20250429
cd ${BASE_DIR}/3-integration/connect-db/mysql
Если вы увидите сообщение о состоянии detached HEAD, это сообщение можно игнорировать. Это просто означает, что вы проверили тег.
В репозитории содержится несколько примеров. Мы используем 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 ${BASE_DIR}/3-integration/connect-db/mysql
# The following variables are used for deployment file generation
export DB_SERVER_NAME=$CLUSTER.mysql.database.azure.com
export DB_PORT_NUMBER=3306
export DB_NAME=$DATABASE_NAME
export DB_USER=$ADMIN_USER
export DB_PASSWORD=$ADMIN_PASSWORD
export NAMESPACE=open-liberty-demo
mvn clean install
(Необязательно) Локальное тестирование приложения
При необходимости можно запустить приложение локально, чтобы убедиться, что оно работает должным образом. Сначала необходимо добавить правило брандмауэра, чтобы разрешить локальному компьютеру подключаться к экземпляру гибкого сервера База данных Azure для MySQL. Чтобы добавить правило брандмауэра, выполните следующие действия.
- Войдите в портал Azure и перейдите к созданному ранее экземпляру гибкого сервера База данных Azure для MySQL.
- В левой области выберите "Параметры>сети".
- Выберите Добавить текущий IP-адрес клиента.
- Нажмите кнопку "Сохранить " и дождитесь добавления правила брандмауэра.
Выполните следующие действия, чтобы выполнить команду liberty:devc для локального запуска и тестирования проекта и образа контейнера перед тем, как столкнуться с какой-либо сложностью Azure. Дополнительные сведения о liberty:devc см. в документации плагина Liberty.
При необходимости запустите локальную среду Docker. Инструкции по запуску среды зависят от операционной системы узла.
Используйте следующие команды, чтобы запустить приложение в
liberty:devcрежиме:cd ${BASE_DIR}/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Убедитесь, что приложение работает правильно. В случае успеха в выходных данных команды должно появиться примерно такое сообщение:
[INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.. В браузере перейдите по адресуhttps://localhost:9443/, чтобы убедиться, что приложение доступно и все функции работают.Чтобы остановить
liberty:devcрежим, нажмите Control+C.
Подготовка образа приложения
Чтобы развернуть и запустить приложение Liberty в кластере Azure Red Hat OpenShift, контейнеризируйте приложение как образ Docker с помощью образов контейнеров Open Liberty или образов контейнеров WebSphere Liberty.
Создание приложения и отправка в поток изображений
Так как вы уже успешно запустили приложение в контейнере Docker Liberty с помощью liberty:devc команды, вы будете удаленно создавать образ в кластере, выполнив следующие действия:
Убедитесь, что вы войдите в интерфейс командной строки OpenShift с помощью
kubeadminучетных данных.Используйте следующие команды, чтобы определить исходный каталог и Dockerfile:
cd ${BASE_DIR}/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Используйте следующую команду, чтобы изменить проект на
open-liberty-demo:oc project $NAMESPACEЧтобы создать поток изображений, используйте следующую команду:
oc create imagestream javaee-cafe-mysqlЧтобы создать конфигурацию сборки, указывающую тег потока изображения выходных данных сборки, используйте следующую команду:
oc new-build --name javaee-cafe-mysql-config --binary --strategy docker --to javaee-cafe-mysql:v1Используйте следующую команду, чтобы запустить сборку, чтобы отправить локальное содержимое, контейнеризацию и выходные данные в тег потока изображений, указанный ранее:
oc start-build javaee-cafe-mysql-config --from-dir . --follow
Развертывание приложения в кластере Azure Red Hat OpenShift
Теперь вы можете развернуть пример приложения Liberty в кластере Azure Red Hat OpenShift, созданном ранее при работе с предварительными условиями.
Развертывание приложения из веб-консоли
Так как оператор Open Liberty используется для управления приложениями Liberty, нам необходимо создать экземпляр своего пользовательского определения ресурсов типа OpenLibertyApplication. Оператор заботится обо всех аспектах управления ресурсами OpenShift, необходимыми для развертывания. Чтобы создать этот экземпляр, выполните следующие действия.
Войдите в веб-консоль OpenShift из браузера, используя учетные данные пользователя
kubeadmin.Выберите проект, перейдя на Home>Projects>open-liberty-demo.
Перейдите к нагрузкам>секретам.
Выберите Создать>из YAML.
Замените созданный YAML на ваш, который находится в <путь к репозиторию>/3-integration/connect-db/mysql/target/db-secret.yaml.
Нажмите кнопку создания. Этот выбор возвращает вас на страницу секретных сведений .
Перейдите к Операторы>Установленные операторы.
В середине страницы вы увидите Open Liberty.
В предоставленных API выберите OpenLibertyApplication. Навигация по элементам в пользовательском интерфейсе отражает фактическую иерархию вложенности используемых технологий.
Выберите "Создать OpenLibertyApplication".
Выберите вид YAML в разделе Настроить через.
Замените созданный yaml вашим, который находится по адресу <путь к репозиторию>/3-integration/connect-db/mysql/target/openlibertyapplication.yaml.
Нажмите кнопку создания. Вы вернеесь в список OpenLibertyApplications.
Перейдите к Операторы>Установленные операторы>Open Liberty>OpenLibertyApplication.
Выберите javaee-café-mysql.
В середине страницы выберите Resources (Ресурсы).
В таблице выберите ссылку для javaee-café-mysql с типом маршрута.
На открывшейся странице щелкните ссылку в разделе Location (Расположение).
Домашняя страница приложения откроется в браузере.
Удаление приложения из веб-консоли
Когда вы закончите работу с приложением, выполните следующие действия, чтобы удалить приложение из Open Shift:
- В области навигации слева разверните элемент Операторы.
- Выберите Installed Operators (Установленные операторы).
- Выберите Open Liberty.
- В середине страницы выберите OpenLibertyApplication.
- Для javaee-café-mysql выберите вертикальное многоточие (три вертикальные точки), а затем выберите Delete OpenLibertyApplication.
- Выберите "Удалить ", чтобы удалить приложение.
Чтобы удалить секрет из Open Shift, выполните следующие действия.
- Перейдите к нагрузкам>секретам.
- Выберите db-secret-mysql.
- Выберите Действия>Удалить секрет.
- Выберите "Удалить ", чтобы удалить секрет.
Очистка ресурсов
Удалите кластер Azure Red Hat OpenShift, следуя шагам в Туториале: Удаление кластера Azure Red Hat OpenShift 4. Убедитесь, что база данных и все связанные ресурсы также удаляются.
Следующие шаги
Дополнительные сведения можно найти по следующим ссылкам:
- Open Liberty
- Azure Red Hat OpenShift
- Оператор Open Liberty
- Настройка сервера Open Liberty
- Плагин Liberty Maven
- Образы контейнеров Open Liberty
- Образы контейнеров WebSphere Liberty
Сведения о возможностях запуска продуктов WebSphere в Azure см. в статье "Что такое решения для запуска семейства продуктов WebSphere в Azure?"