Развертывание WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift
В этой статье показано, как быстро противостоять IBM WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift с помощью портал Azure.
В этой статье используется предложение Azure Marketplace для Open/WebSphere Liberty для ускорения пути к Azure Red Hat OpenShift. Предложение автоматически подготавливает несколько ресурсов, включая кластер Azure Red Hat OpenShift с встроенным реестром контейнеров OpenShift (OCR), операторами свободы и при необходимости образом контейнера, включая Liberty и ваше приложение. Чтобы просмотреть предложение, посетите портал Azure. Если вы предпочитаете вручную пошаговое руководство по запуску Liberty в Azure Red Hat OpenShift, которое не использует автоматизацию, включенную предложением, см . статью "Вручную развертывание приложения Java с open Liberty/WebSphere Liberty" в кластере Azure Red Hat OpenShift.
Эта статья предназначена для быстрого развертывания. Прежде чем перейти к производству, вы должны исследовать Настройка Свободы.
Если вы заинтересованы в предоставлении отзывов или тесной работе с сценариями миграции с помощью группы разработчиков, разрабатывающей веб-sphere в решениях Azure, заполните этот короткий опрос по миграции WebSphere и включите контактные данные. Команда руководителей программ, архитекторов и инженеров будет быстро связаться с вами, чтобы начать тесное сотрудничество.
Внимание
Хотя ARO совместно работает, управляется и поддерживается Red Hat и Корпорацией Майкрософт для предоставления интегрированной поддержки, программного обеспечения, выполняемого на основе ARO, в том числе описанного в этой статье, распространяется на собственные условия поддержки и лицензионного соглашения. Дополнительные сведения о поддержке ARO см. в статье "Жизненный цикл поддержки Azure Red Hat OpenShift 4". Дополнительные сведения о поддержке программного обеспечения, описанного в этой статье, см. на основных страницах этого программного обеспечения, как описано в статье.
Примечание.
Для создания и запуска кластера OpenShift в Azure Red Hat OpenShift требуется не менее 40 ядер. Стандартная квота ресурсов Azure для новой подписки Azure не соответствует этому требованию. Чтобы запросить увеличение предела ресурсов, ознакомьтесь с разделом "Запрос на увеличение квот для неадаптируемых квот в увеличении квот виртуальных ЦП семейства виртуальных ЦП виртуальной машины". Так как тип квоты, для которой требуется запросить увеличение, является "нерегулируемым", необходимо отправить запрос в службу поддержки. Действия, описанные в запросе увеличения квот, не изменяемых, показывают, как именно отправить билет с правильным содержимым.
Бесплатная пробная подписка не имеет права на увеличение квоты. Перед запросом увеличения квоты обновите подписку на оплату по мере использования. Дополнительные сведения см. в статье об обновлении бесплатной учетной записи Azure или учетной записи Azure для учащихся.
Необходимые компоненты
- Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
- Локальный компьютер с установленной операционной системой unix (например, Ubuntu, macOS или подсистема Windows для Linux).
- Интерфейс командной строки Azure. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
- Выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других параметрах входа см. в статье "Вход в Azure с помощью Azure CLI".
- Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье "Использование расширений и управление ими" с помощью Azure CLI.
- Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade. Для этой статьи требуется Azure CLI версии не ниже 2.31.0.
- Реализация Java выпуск Standard (SE) версии 17 или более поздней (например, Eclipse Open J9).
- Maven версии 3.5.0 или более поздней.
- Docker для вашей ОС.
- Удостоверение Azure, используемое для входа, имеет роль участника и роль администратора доступа пользователей или роль владельца в текущей подписке. Общие сведения о ролях Azure см. в статье "Что такое управление доступом на основе ролей Azure" (Azure RBAC)?
Получение секрета извлечения Red Hat
Предложение Azure Marketplace, используемое в этой статье, требует секрета извлечения Red Hat. В этом разделе показано, как получить секрет извлечения Red Hat для Azure Red Hat OpenShift. Дополнительные сведения о секрете извлечения Red Hat и его необходимости см. в разделе "Получение секрета извлечения Red Hat" в разделе "Создание кластера Azure Red Hat OpenShift 4". Чтобы получить секрет извлечения для использования, выполните действия, описанные в этом разделе.
Используйте учетную запись Red Hat для входа на портал диспетчера кластеров OpenShift OpenShift, перейдя на консоль Red Hat OpenShift Hybrid Cloud Console. Возможно, потребуется принять дополнительные условия и обновить учетную запись, как показано на следующем снимке экрана. Используйте тот же пароль, что и при создании учетной записи.
После входа выберите OpenShift, а затем —Downloads. Выберите раскрывающийся список "Все категории" и выберите "Токены". В разделе "Секрет извлечения" выберите " Копировать " или "Скачать", как показано на следующем снимке экрана.
Следующее содержимое является примером, скопированным на портале консоли Red Hat, с кодами проверки подлинности, замененными xxxx...xxx
на .
{"auths":{"cloud.openshift.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"quay.io":{"auth":"xxx...xxx","email":"contoso-user@test.com"},"registry.connect.redhat.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"registry.redhat.io":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"}}}
Сохраните секрет в файле, чтобы его можно было использовать позже.
Создание субъекта-службы Microsoft Entra из портал Azure
Предложение Azure Marketplace, используемое в этой статье, требуется субъект-служба Microsoft Entra для развертывания кластера Azure Red Hat OpenShift. Предложение назначает субъекту-службе надлежащие привилегии во время развертывания без назначения ролей. Если у вас есть субъект-служба, готовый к использованию, пропустите этот раздел и перейдите к следующему разделу, где развертывается предложение.
Выполните следующие действия, чтобы развернуть субъект-службу и получить идентификатор приложения (клиента) и секрет из портал Azure. Дополнительные сведения см. в статье "Создание и использование субъекта-службы" для развертывания кластера Azure Red Hat OpenShift.
Примечание.
Необходимо иметь достаточные разрешения для регистрации приложения в клиенте Microsoft Entra. Если у вас возникли сложности, проверьте необходимые разрешения, чтобы убедиться в том, что в учетной записи можно создать удостоверение. Дополнительные сведения см. в разделе "Регистрация приложения Microsoft Entra" и создание субъекта-службы.
Войдите в учетную запись Azure через портал Azure.
Выберите Microsoft Entra ID.
Щелкните Регистрация приложений.
Выберите Создать регистрацию.
Присвойте приложению имя, например "liberty-on-aro-app". Выберите поддерживаемый тип учетной записи, который определяет, кто может использовать приложение. После задания значений нажмите кнопку "Зарегистрировать", как показано на следующем снимке экрана. Для подготовки приложения требуется несколько секунд. Дождитесь завершения развертывания, прежде чем продолжить.
Сохраните идентификатор приложения (клиента) на странице обзора, как показано на следующем снимке экрана. Наведите указатель мыши на значение (отредактировано на снимке экрана) и выберите значок копирования, который отображается. Подсказка говорит Копировать в буфер обмена. Будьте осторожны, чтобы скопировать правильное значение, так как другие значения в этом разделе также имеют значки копирования. Сохраните идентификатор приложения в файл, чтобы его можно было использовать позже.
Создайте новый секрет клиента, выполнив следующие действия.
- Выберите Сертификаты и секреты.
- Выберите секреты клиента, а затем новый секрет клиента.
- Укажите описание секрета и длительности. Закончив, нажмите кнопку Добавить.
- После добавления секрета клиента отображается значение секрета клиента. Скопируйте это значение, так как вы не сможете получить его позже.
Теперь у вас есть приложение Microsoft Entra, субъект-служба и секрет клиента.
Развертывание IBM WebSphere Liberty или Open Liberty в Azure Red Hat OpenShift
В этом разделе описано, как развернуть IBM WebSphere Liberty или Open Liberty в Azure Red Hat OpenShift.
В следующих шагах показано, как найти предложение и заполнить область "Основные сведения".
В строке поиска в верхней части портал Azure введите Liberty. В результатах автоматического поиска в разделе Marketplace выберите IBM Liberty в ARO, как показано на следующем снимке экрана.
Вы также можете перейти непосредственно к предложению с помощью этой ссылки портала.
На странице предложения нажмите кнопку "Создать".
На панели "Основные сведения" убедитесь, что значение, отображаемое в поле "Подписка", совпадает с ролями, перечисленными в разделе предварительных требований.
Предложение должно быть развернуто в пустой группе ресурсов. В поле "Группа ресурсов" выберите "Создать" и введите значение для группы ресурсов. Так как группы ресурсов должны быть уникальными в пределах подписки, выберите уникальное имя. Простой способ создания уникальных имен — использовать сочетание ваших инициалов, текущей даты и некоторого идентификатора. Например, abc1228rg.
Создайте переменную среды в оболочке для имени группы ресурсов.
export RESOURCE_GROUP_NAME=<your-resource-group-name>
В разделе "Сведения об экземпляре" выберите регион для развертывания. Список регионов Azure, где работает OpenShift, см. в разделе "Регионы Для Red Hat OpenShift 4.x" в Azure.
После выбора региона нажмите кнопку "Далее".
Ниже показано, как заполнить область ARO, показанную на следующем снимке экрана:
В разделе "Создание нового кластера" выберите "Да".
В разделе "Предоставление сведений о создании нового кластера" для секрета извлечения Red Hat введите секрет извлечения Red Hat, полученный в разделе "Получение секрета извлечения Red Hat". Используйте то же значение для подтверждения секрета.
Введите идентификатор клиента субъекта-службы с идентификатором приложения (клиента) субъекта-службы, полученного в разделе "Создание субъекта-службы Microsoft Entra" из раздела портал Azure.
Заполните секрет клиента субъекта-службы секретом приложения субъекта-службы, полученного в разделе "Создание субъекта-службы Microsoft Entra" из раздела портал Azure. Используйте то же значение для подтверждения секрета.
После заполнения значений нажмите кнопку "Далее".
Ниже показано, как заполнить область оператора и приложения , показанную на следующем снимке экрана, и запустить развертывание.
В разделе "Поддержка IBM?", нажмите кнопку "Да".
Примечание.
В этом кратком руководстве развертывается оператор WebSphere Liberty, поддерживаемый IBM, но вместо этого можно выбрать "Нет ", чтобы развернуть оператор Open Liberty.
Оставьте параметр no по умолчанию для развертывания приложения?.
Примечание.
Это краткое руководство вручную развертывает пример приложения позже, но вы можете выбрать "Да " для развертывания приложения? Если вы предпочитаете.
Выберите Review + create (Просмотреть и создать). Убедитесь, что в верхней части появится зеленое сообщение "Проверка пройдена ". Если сообщение не отображается, исправьте проблемы проверки, а затем нажмите кнопку "Проверить и создать еще раз".
Нажмите кнопку создания.
Отслеживание хода выполнения развертывания на странице " Развертывание".
В зависимости от сетевых условий и других действий в выбранном регионе развертывание может занять до 40 минут.
Проверка функциональности развертывания
В этом разделе показано, как убедиться, что развертывание выполнено успешно.
Если вы перейдете от страницы развертывания , выполните следующие действия, чтобы вернуться на эту страницу. Если вы все еще находитесь на странице, на которую показано, что развертывание завершено, можно перейти к шагу 5.
В углу любой страницы портала выберите меню гамбургера и выберите группы ресурсов.
В поле Фильтр для любого поля введите первые несколько символов ранее созданной группы ресурсов. Если вы следовали рекомендации по созданию имени, введите свои инициалы, а затем выберите соответствующую группу ресурсов.
В области навигации в разделе "Параметры" выберите "Развертывания". Вы увидите упорядоченный список развертываний в этой группе ресурсов с последним первым.
Прокрутите до самой старой записи в этом списке. Эта запись соответствует развертыванию, начатому в предыдущем разделе. Выберите самое старое развертывание, как показано на следующем снимке экрана.
В области навигации выберите выходные данные. В этом списке показаны выходные значения из развертывания, которые содержат некоторые полезные сведения.
Откройте терминал и вставьте значение из поля cmdToGetKubeadminCredentials . Вы увидите учетную запись администратора и учетные данные для входа на портал консоли кластера OpenShift. Ниже приведен пример учетной записи администратора.
az aro list-credentials --resource-group abc1228rg --name clusterf9e8b9 { "kubeadminPassword": "xxxxx-xxxxx-xxxxx-xxxxx", "kubeadminUsername": "kubeadmin" }
Вставьте значение из поля clusterConsoleUrl в веб-браузер, подключенный к Интернету, и нажмите клавишу ВВОД. Укажите имя пользователя администратора и пароль и войдите в систему.
Убедитесь, что установлен соответствующий оператор Kubernetes для Liberty. В области навигации выберите "Операторы", а затем "Установленные операторы", как показано на следующем снимке экрана:
Обратите внимание, установлен ли оператор WebSphere Liberty или оператор Open Liberty. Вариант оператора соответствует выбранному во время развертывания. Если вы выбрали IBM Supported, у вас есть оператор WebSphere Liberty. В противном случае у вас есть оператор Open Liberty. Эти сведения важно знать в последующих шагах.
Скачайте и установите интерфейс командной строки OpenShift, выполнив действия, описанные в руководстве по установке интерфейса командной строки
oc
OpenShift, а затем вернитесь к этой документации.Перейдите в область выходных данных, скопируйте значение из поля cmdToLoginWithKubeadmin , а затем вставьте его в терминал. Выполните команду, чтобы войти на сервер API кластера OpenShift. Вы должны увидеть выходные данные, аналогичные следующему примеру в консоли:
Login successful. You have access to 71 projects, the list has been suppressed. You can list all projects with 'oc projects' Using project "default".
Создание базы данных SQL Azure
Ниже приведены инструкции по созданию отдельной базы данных База данных SQL Azure для использования с приложением:
Создайте одну базу данных в База данных SQL Azure, выполнив действия, описанные в кратком руководстве. Создайте одну базу данных База данных SQL Azure, тщательно отметив различия, описанные в следующем примечание. Базу данных можно развернуть в той же группе ресурсов, что и кластер OpenShift. Вернитесь к этой статье после создания и настройки сервера базы данных.
Примечание.
На шаге "Основы" запишите значения для группы ресурсов, имени базы данных, <имени сервера.database.windows.net>, имени администратора сервера и пароля. Группа ресурсов базы данных называется
<db-resource-group>
далее в этой статье.На шаге Сеть для параметра Метод подключения задайте значение Общедоступная конечная точка, для параметра Разрешить доступ к серверу службам и ресурсам Azure укажите значение Да и для параметра Добавить текущий IP-адрес клиента укажите значение Да.
Создайте переменную среды в оболочке для имени группы ресурсов для базы данных.
export DB_RESOURCE_GROUP_NAME=<db-resource-group>
Теперь, когда вы создали базу данных и кластер Azure Red Hat OpenShift, вы можете подготовить кластер Azure Red Hat OpenShift для размещения приложения WebSphere Liberty.
Настройка и развертывание примера приложения
Выполните действия, описанные в этом разделе, чтобы развернуть пример приложения в среде выполнения Liberty. Эти действия используют 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 20240920
cd 3-integration/connect-db/mssql
Если появится сообщение об отключенном состоянии HEAD, это сообщение безопасно игнорировать. Это просто означает, что вы проверили тег.
В репозитории содержится несколько примеров. Мы используем 3-integration/connect-db/mssql/. Ниже приведена структура файла приложения:
mssql
├─ src/main/
│ ├─ aro/
│ │ ├─ db-secret.yaml
│ │ ├─ openlibertyapplication.yaml
│ │ ├─ webspherelibertyapplication.yaml
│ ├─ docker/
│ │ ├─ Dockerfile
│ │ ├─ Dockerfile-ol
│ ├─ liberty/config/
│ │ ├─ server.xml
│ ├─ java/
│ ├─ resources/
│ ├─ webapp/
├─ pom.xml
Каталоги java, java и webapp содержат исходный код примера приложения. В коде объявлен и используется источник данных с именем jdbc/JavaEECafeDB
.
В каталоге aro есть три файла развертывания. db-secret.xml используется для создания секретов Kubernetes с учетными данными подключения к базе данных. Файл webspherelibertyapplication.yaml используется в этом кратком руководстве для развертывания приложения WebSphere Liberty. Используйте файл openlibertyapplication.yaml , чтобы развернуть приложение Open Liberty, если вы развернули оператор Open Liberty в разделе "Развертывание IBM WebSphere Liberty или Open Liberty в Azure Red Hat OpenShift".
В каталоге Docker есть два файла для создания образа приложения с помощью Open Liberty или WebSphere Liberty. Эти файлы — Dockerfile и Dockerfile-ol соответственно. Файл Dockerfile используется для создания образа приложения с помощью WebSphere Liberty в этом кратком руководстве. Аналогичным образом используйте файл Dockerfile-ol для создания образа приложения с помощью Open Liberty, если вы развернули оператора Open Liberty в разделе Deploy IBM WebSphere Liberty или Open Liberty в Azure Red Hat OpenShift.
В каталоге liberty/config файл server.xml используется для настройки подключения к базе данных для кластера Open Liberty и WebSphere Liberty.
Сборка проекта
Теперь, когда вы собрали необходимые свойства, вы можете создать приложение с помощью следующих команд. Файл POM для проекта считывает множество переменных из среды. В рамках сборки Maven эти переменные используются для заполнения значений в файлах YAML, расположенных в src/main/aro. Вы можете сделать что-то подобное для приложения за пределами Maven, если вы предпочитаете.
cd ${BASE_DIR}/3-integration/connect-db/mssql
# The following variables are used for deployment file generation into target.
export DB_SERVER_NAME=<server-name>.database.windows.net
export DB_NAME=<database-name>
export DB_USER=<server-admin-login>@<server-name>
export DB_PASSWORD=<server-admin-password>
mvn clean install
(Необязательно) Локальное тестирование проекта
Теперь вы можете запустить и протестировать проект локально перед развертыванием в Azure, выполнив следующие действия. Для удобства мы используем liberty-maven-plugin
. Дополнительные сведения о liberty-maven-plugin
см. в статье Создание веб-приложения с помощью Maven. Для приложения можно сделать что-то подобное с помощью любого другого механизма, например локальной интегрированной среды разработки. Вы также можете использовать вариант, предназначенный liberty:devc
для разработки с контейнерами. Дополнительные сведения см liberty:devc
. в документации по Свободе.
Запустите приложение с помощью
liberty:run
, как показано в следующем примере.liberty:run
также использует переменные среды, определенные в предыдущем разделе.cd ${BASE_DIR}/3-integration/connect-db/mssql mvn liberty:run
Убедитесь, что приложение работает должным образом. В случае успеха в выходных данных команды должно появиться примерно такое сообщение:
[INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.
.http://localhost:9080/
Перейдите в браузер илиhttps://localhost:9443/
в браузере и убедитесь, что приложение доступно, и все функции работают.Нажмите клавиши CTRL+C, чтобы остановиться.
Затем выполните следующие действия, чтобы контейнеризировать проект с помощью Docker и запустить его в качестве контейнера локально перед развертыванием в Azure:
Чтобы создать образ, используйте следующие команды:
cd ${BASE_DIR}/3-integration/connect-db/mssql/target docker buildx build --platform linux/amd64 -t javaee-cafe:v1 --pull --file=Dockerfile .
Запустите образ с помощью следующей команды. Обратите внимание, что мы используем переменные среды, определенные ранее.
docker run -it --rm -p 9080:9080 -p 9443:9443 \ -e DB_SERVER_NAME=${DB_SERVER_NAME} \ -e DB_NAME=${DB_NAME} \ -e DB_USER=${DB_USER} \ -e DB_PASSWORD=${DB_PASSWORD} \ javaee-cafe:v1
После запуска контейнера перейдите
http://localhost:9080/
в браузер илиhttps://localhost:9443/
в браузере, чтобы получить доступ к приложению.Нажмите клавиши CTRL+C, чтобы остановиться.
Создание образа и отправка в поток изображений
Когда вы удовлетворены состоянием приложения, вы создаете образ удаленно в кластере, выполнив следующие действия.
Используйте следующие команды для идентификации исходного каталога и Файла Dockerfile:
cd ${BASE_DIR}/3-integration/connect-db/mssql/target # If you are deploying the application with WebSphere Liberty Operator, the existing Dockerfile is ready for you # If you are deploying the application with Open Liberty Operator, uncomment and execute the following two commands to rename Dockerfile-ol to Dockerfile # mv Dockerfile Dockerfile.backup # mv Dockerfile-ol Dockerfile
Чтобы создать поток изображений, используйте следующую команду:
oc create imagestream javaee-cafe
Чтобы создать конфигурацию сборки, указывающую тег потока изображения выходных данных сборки, используйте следующую команду:
oc new-build --name javaee-cafe-config --binary --strategy docker --to javaee-cafe:v1
Используйте следующую команду, чтобы запустить сборку, чтобы отправить локальное содержимое, контейнеризацию и выходные данные в тег потока изображений, указанный ранее:
oc start-build javaee-cafe-config --from-dir . --follow
Развертывание и тестирование приложения
Чтобы развернуть и протестировать приложение, выполните следующие действия.
Используйте следующую команду, чтобы применить секрет базы данных:
cd ${BASE_DIR}/3-integration/connect-db/mssql/target oc apply -f db-secret.yaml
Вы увидите выходные данные
secret/db-secret-mssql created
.Используйте следующую команду, чтобы применить файл развертывания:
oc apply -f webspherelibertyapplication.yaml
Подождите, пока все модули pod не будут запущены и запущены успешно с помощью следующей команды:
oc get pods -l app.kubernetes.io/name=javaee-cafe --watch
Вы должны увидеть выходные данные, аналогичные следующему примеру, чтобы указать, что выполняются все модули pod:
NAME READY STATUS RESTARTS AGE javaee-cafe-67cdc95bc-2j2gr 1/1 Running 0 29s javaee-cafe-67cdc95bc-fgtt8 1/1 Running 0 29s javaee-cafe-67cdc95bc-h47qm 1/1 Running 0 29s
Чтобы проверить результаты, выполните следующие действия.
Используйте следующую команду, чтобы получить узел ресурса Route, развернутого с помощью приложения:
echo "route host: https://$(oc get route javaee-cafe --template='{{ .spec.host }}')"
Скопируйте значение из выходных
route host
данных, откройте его в браузере и протестируйте приложение. Если веб-страница не отображается правильно, это связано с тем, что приложение по-прежнему начинается в фоновом режиме. Подождите несколько минут и повторите попытку.Добавьте и удалите несколько кофе, чтобы проверить функциональные возможности приложения и подключения к базе данных.
Очистка ресурсов
Чтобы избежать расходов за использование Azure, необходимо удалить ненужные ресурсы. Если кластер больше не нужен, используйте команду az group delete для удаления группы ресурсов, кластера Azure Red Hat OpenShift, База данных SQL Azure и всех связанных ресурсов.
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
az group delete --name $DB_RESOURCE_GROUP_NAME --yes --no-wait
Следующие шаги
Дополнительные сведения о развертывании семейства IBM WebSphere в Azure см. в статье "Что такое решения для запуска семейства продуктов WebSphere в Azure?"