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


Развертывание WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift

В этой статье показано, как быстро противостоять IBM WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift (ARO) с помощью портал Azure.

В этой статье используется предложение Azure Marketplace для Open/WebSphere Liberty для ускорения пути к ARO. Предложение автоматически подготавливает несколько ресурсов, включая кластер ARO со встроенным реестром контейнеров OpenShift (OCR), операторами свободы и при необходимости образом контейнера, включая Liberty и ваше приложение. Чтобы просмотреть предложение, посетите портал Azure. Если вы предпочитаете вручную пошаговое руководство по запуску Liberty в ARO, которое не использует автоматизацию, включенную предложением, см . статью "Развертывание приложения Java с помощью Open Liberty/WebSphere Liberty" в кластере Azure Red Hat OpenShift.

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

Внимание

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

Примечание.

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

Бесплатная пробная подписка не имеет права на увеличение квоты. Перед запросом увеличения квоты обновите подписку на оплату по мере использования. Дополнительные сведения см. в статье об обновлении бесплатной учетной записи Azure или учетной записи Azure для учащихся.

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

  • Выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
  • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
  • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade. Для этой статьи требуется Azure CLI версии не ниже 2.31.0.

Примечание.

Вы также можете выполнить это руководство из Azure Cloud Shell. Этот подход имеет все предварительно установленные средства предварительных требований, за исключением Docker.

Получение секрета извлечения 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 с секретом извлечения.

Следующее содержимое является примером, скопированным на портале консоли 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 и субъекта-службы, доступ к ресурсам.

  1. Войдите в учетную запись Azure через портал Azure.

  2. Выберите Microsoft Entra ID.

  3. Щелкните Регистрация приложений.

  4. Выберите Создать регистрацию.

  5. Присвойте приложению имя, например "liberty-on-aro-app". Выберите поддерживаемый тип учетной записи, который определяет, кто может использовать приложение. После задания значений нажмите кнопку "Зарегистрировать", как показано на следующем снимке экрана. Для подготовки приложения требуется несколько секунд. Дождитесь завершения развертывания, прежде чем продолжить.

    Снимок экрана: портал Azure с страницей регистрации приложения.

  6. Сохраните идентификатор приложения (клиента) на странице обзора, как показано на следующем снимке экрана. Наведите указатель мыши на значение (отредактировано на снимке экрана) и выберите значок копирования, который отображается. Подсказка говорит Копировать в буфер обмена. Будьте осторожны, чтобы скопировать правильное значение, так как другие значения в этом разделе также имеют значки копирования. Сохраните идентификатор приложения в файл, чтобы его можно было использовать позже.

    Снимок экрана: портал Azure с идентификатором клиента субъекта-службы.

  7. Создайте новый секрет клиента, выполнив следующие действия.

    1. Выберите Сертификаты и секреты.
    2. Выберите секреты клиента, а затем новый секрет клиента.
    3. Укажите описание секрета и длительности. Закончив, нажмите кнопку Добавить.
    4. После добавления секрета клиента отображается значение секрета клиента. Скопируйте это значение, так как вы не сможете получить его позже.

Теперь у вас есть приложение Microsoft Entra, субъект-служба и секрет клиента.

Развертывание IBM WebSphere Liberty или Open Liberty в Azure Red Hat OpenShift

В этом разделе описано, как развернуть IBM WebSphere Liberty или Open Liberty в Azure Red Hat OpenShift.

В следующих шагах показано, как найти предложение и заполнить область "Основные сведения".

  1. В строке поиска в верхней части портал Azure введите Liberty. В результатах автоматического поиска в разделе Marketplace выберите IBM Liberty в ARO, как показано на следующем снимке экрана.

    Снимок экрана: портал Azure с IBM WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift в результатах поиска.

    Вы также можете перейти непосредственно к предложению с помощью этой ссылки портала.

  2. На странице предложения нажмите кнопку "Создать".

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

  4. Предложение должно быть развернуто в пустой группе ресурсов. В поле "Группа ресурсов" выберите "Создать" и введите значение для группы ресурсов. Так как группы ресурсов должны быть уникальными в пределах подписки, выберите уникальное имя. Простой способ создания уникальных имен — использовать сочетание ваших инициалов, текущей даты и некоторого идентификатора. Например, abc1228rg.

  5. Создайте переменную среды в оболочке для имени группы ресурсов.

    export RESOURCE_GROUP_NAME=<your-resource-group-name>
    
  6. В разделе "Сведения об экземпляре" выберите регион для развертывания. Список регионов Azure, где работает OpenShift, см. в разделе "Регионы Для Red Hat OpenShift 4.x" в Azure.

  7. После выбора региона нажмите кнопку "Далее".

Ниже показано, как заполнить область ARO, показанную на следующем снимке экрана:

Снимок экрана: портал Azure с панелью ARO IBM WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift ARO.

  1. В разделе "Создание нового кластера" выберите "Да".

  2. В разделе "Предоставление сведений о создании нового кластера" для секрета извлечения Red Hat введите секрет извлечения Red Hat, полученный в разделе "Получение секрета извлечения Red Hat". Используйте то же значение для подтверждения секрета.

  3. Введите идентификатор клиента субъекта-службы с идентификатором приложения (клиента) субъекта-службы, полученного в разделе "Создание субъекта-службы Microsoft Entra" из раздела портал Azure.

  4. Заполните секрет клиента субъекта-службы секретом приложения субъекта-службы, полученного в разделе "Создание субъекта-службы Microsoft Entra" из раздела портал Azure. Используйте то же значение для подтверждения секрета.

  5. После заполнения значений нажмите кнопку "Далее".

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

Снимок экрана: портал Azure с ibm WebSphere Liberty и Open Liberty в операторе Azure Red Hat OpenShift и области приложений.

  1. В разделе "Поддержка IBM?", нажмите кнопку "Да".

    Примечание.

    В этом кратком руководстве развертывается оператор WebSphere Liberty, поддерживаемый IBM, но вместо этого можно выбрать "Нет ", чтобы развернуть оператор Open Liberty.

  2. Оставьте параметр no по умолчанию для развертывания приложения?.

    Примечание.

    Это краткое руководство вручную развертывает пример приложения позже, но вы можете выбрать "Да " для развертывания приложения? Если вы предпочитаете.

  3. Выберите Review + create (Просмотреть и создать). Убедитесь, что в верхней части появится зеленое сообщение "Проверка пройдена ". Если сообщение не отображается, исправьте проблемы проверки, а затем нажмите кнопку "Проверить и создать еще раз".

  4. Нажмите кнопку создания.

  5. Отслеживание хода выполнения развертывания на странице " Развертывание".

В зависимости от сетевых условий и других действий в выбранном регионе развертывание может занять до 40 минут.

Проверка функциональности развертывания

В этом разделе показано, как убедиться, что развертывание выполнено успешно.

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

  1. В углу любой страницы портала выберите меню гамбургера и выберите группы ресурсов.

  2. В поле Фильтр для любого поля введите первые несколько символов ранее созданной группы ресурсов. Если вы следовали рекомендации по созданию имени, введите свои инициалы, а затем выберите соответствующую группу ресурсов.

  3. В области навигации в разделе Параметры выберите "Развертывания". Вы увидите упорядоченный список развертываний в этой группе ресурсов с последним первым.

  4. Прокрутите до самой старой записи в этом списке. Эта запись соответствует развертыванию, начатому в предыдущем разделе. Выберите самое старое развертывание, как показано на следующем снимке экрана.

    Снимок экрана: портал Azure с развертываниями IBM WebSphere Liberty и Open Liberty в Azure Red Hat OpenShift с выделенным самым старым развертыванием.

  5. В области навигации выберите выходные данные. В этом списке показаны выходные значения из развертывания, которые содержат некоторые полезные сведения.

  6. Откройте терминал и вставьте значение из поля cmdToGetKubeadminCredentials . Вы увидите учетную запись администратора и учетные данные для входа на портал консоли кластера OpenShift. Ниже приведен пример учетной записи администратора.

    az aro list-credentials --resource-group abc1228rg --name clusterf9e8b9
    {
      "kubeadminPassword": "xxxxx-xxxxx-xxxxx-xxxxx",
      "kubeadminUsername": "kubeadmin"
    }
    
  7. Вставьте значение из поля clusterConsoleUrl в веб-браузер, подключенный к Интернету, и нажмите клавишу ВВОД. Укажите имя пользователя администратора и пароль и войдите в систему.

  8. Убедитесь, что установлен соответствующий оператор Kubernetes для Liberty. В области навигации выберите "Операторы", а затем "Установленные операторы", как показано на следующем снимке экрана:

    Снимок экрана: портал консоли кластера Red Hat OpenShift с страницей

    Обратите внимание, установлен ли оператор WebSphere Liberty или оператор Open Liberty. Вариант оператора соответствует выбранному во время развертывания. Если вы выбрали IBM Supported, у вас есть оператор WebSphere Liberty. В противном случае у вас есть оператор Open Liberty. Эти сведения важно знать в последующих шагах.

  9. Скачайте и установите интерфейс командной строки OpenShift, выполнив действия, описанные в руководстве по установке интерфейса командной строки ocOpenShift, а затем вернитесь к этой документации.

  10. Перейдите в область выходных данных, скопируйте значение из поля 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 для использования с приложением:

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

    Примечание.

    На шаге "Основы" запишите значения для группы ресурсов, имени базы данных, <имени сервера.database.windows.net>, имени администратора сервера и пароля. Группа ресурсов базы данных называется <db-resource-group> далее в этой статье.

    На шаге Сеть для параметра Метод подключения задайте значение Общедоступная конечная точка, для параметра Разрешить доступ к серверу службам и ресурсам Azure укажите значение Да и для параметра Добавить текущий IP-адрес клиента укажите значение Да.

    Снимок экрана: портал Azure, на котором показана вкладка

  2. Создайте переменную среды в оболочке для имени группы ресурсов для базы данных.

    export DB_RESOURCE_GROUP_NAME=<db-resource-group>
    

Теперь, когда вы создали базу данных и кластер ARO, вы можете подготовить ARO для размещения приложения 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 20240223
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 . в документации по Свободе.

  1. Запустите приложение с помощью liberty:run, как показано в следующем примере. liberty:run также использует переменные среды, определенные в предыдущем разделе.

    cd ${BASE_DIR}/3-integration/connect-db/mssql
    mvn liberty:run
    
  2. Убедитесь, что приложение работает должным образом. В случае успеха в выходных данных команды должно появиться примерно такое сообщение: [INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.. http://localhost:9080/ Перейдите в браузер или https://localhost:9443/ в браузере и убедитесь, что приложение доступно, и все функции работают.

  3. Нажмите клавиши CTRL+C, чтобы остановиться.

Затем выполните следующие действия, чтобы контейнеризировать проект с помощью Docker и запустить его в качестве контейнера локально перед развертыванием в Azure:

  1. Чтобы создать образ, используйте следующие команды:

    cd ${BASE_DIR}/3-integration/connect-db/mssql/target
    docker buildx build --platform linux/amd64 -t javaee-cafe:v1 --pull --file=Dockerfile .
    
  2. Запустите образ с помощью следующей команды. Обратите внимание, что мы используем переменные среды, определенные ранее.

    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
    
  3. После запуска контейнера перейдите http://localhost:9080/ в браузер или https://localhost:9443/ в браузере, чтобы получить доступ к приложению.

  4. Нажмите клавиши CTRL+C, чтобы остановиться.

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

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

  1. Используйте следующие команды для идентификации исходного каталога и Файла 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
    
  2. Чтобы создать поток изображений, используйте следующую команду:

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

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

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

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

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

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

    cd ${BASE_DIR}/3-integration/connect-db/mssql/target
    oc apply -f db-secret.yaml
    

    Вы увидите выходные данные secret/db-secret-mssql created.

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

    oc apply -f webspherelibertyapplication.yaml
    
  3. Подождите, пока все модули 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
    
  4. Чтобы проверить результаты, выполните следующие действия.

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

      echo "route host: https://$(oc get route javaee-cafe --template='{{ .spec.host }}')"
      
    2. Скопируйте значение из выходных route host данных, откройте его в браузере и протестируйте приложение. Если веб-страница не отображается правильно, это связано с тем, что приложение по-прежнему начинается в фоновом режиме. Подождите несколько минут и повторите попытку.

    3. Добавьте и удалите несколько кофе, чтобы проверить функциональные возможности приложения и подключения к базе данных.

      Снимок экрана: работающее приложение.

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

Чтобы избежать расходов за использование Azure, необходимо удалить ненужные ресурсы. Если кластер больше не нужен, используйте команду az group delete, чтобы удалить группу ресурсов, кластер ARO, База данных 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 см. по следующим ссылкам: