Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье демонстрируются следующие возможности.
- Запустите приложение Java на Oracle WebLogic Server (WLS).
- Создайте кластер WebLogic Server в AKS с помощью предложения Azure Marketplace.
- Создайте образ Docker для приложения, которая включает модели развертывания с помощью средств WebLogic Deploy Tooling (WDT).
- Разверните контейнерное приложение в кластере WebLogic Server в AKS с подключением к Microsoft Azure SQL.
В этой статье используется предложение Azure Marketplace для WebLogic Server, чтобы ускорить переход к AKS. Предложение автоматически подготавливает несколько ресурсов Azure, включая следующие ресурсы:
- Экземпляр реестра контейнеров Azure
- Кластер AKS
- Экземпляр контроллера входящего трафика шлюза приложений Azure (AGIC)
- Оператор WebLogic Kubernetes
- Образ контейнера, включая среду выполнения WebLogic
- Кластер WebLogic Server без приложения
Затем в статье описывается создание образа для обновления кластера WebLogic Server. Изображение показывает модели приложения и WDT.
Если вы предпочитаете менее автоматизированный подход к развертыванию WebLogic в AKS, ознакомьтесь с пошаговыми инструкциями, включенными в официальную документацию из Oracle для службы Azure Kubernetes.
Если вы заинтересованы в предоставлении отзывов или тесной работе с сценариями миграции с помощью команды разработчиков, разрабатывающей решения WebLogic для AKS, заполните этот короткий опрос по миграции WebLogic и включите контактные данные. Команда руководителей программ, архитекторов и инженеров будет быстро связаться с вами, чтобы начать тесное сотрудничество.
Предпосылки
- Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
- Убедитесь, что удостоверение Azure, используемое для входа и завершения работы этой статьи, имеет роль владельца в текущей подписке или роль участника и роль администратора доступа пользователей в текущей подписке. Общие сведения о ролях Azure см. в статье "Что такое управление доступом на основе ролей Azure" (Azure RBAC)? Дополнительные сведения о конкретных ролях, необходимых WLS в AKS, см. в статье о встроенных ролях Azure.
- У вас есть учетные данные для учетной записи единого входа Oracle. Сведения о создании учетной записи Oracle см. в разделе "Создание учетной записи Oracle".
- Примите условия лицензии для WebLogic Server.
- Посетите реестр контейнеров Oracle и войдите в систему.
- Если у вас есть право на поддержку, выберите Промежуточное программное обеспечение, а затем найдите и выберите weblogic_cpu.
- Если у вас нет прав на поддержку от Oracle, выберите Middleware, затем найдите и выберите weblogic.
- Примите лицензионное соглашение.
Замечание
Получите право на поддержку от Oracle, прежде чем перейти в рабочую среду. Сбой этого приводит к выполнению небезопасных образов, которые не исправлены для критических ошибок безопасности. Дополнительные сведения о критически важных обновлениях исправлений Oracle см. в разделе "Критические обновления исправлений", "Оповещения системы безопасности" и "Бюллетени " из Oracle.
- Подготовьте локальную машину с установленной Unix-подобной операционной системой, например, Ubuntu, Azure Linux, macOS, или Подсистема Windows для Linux.
-
Azure CLI. Используется
az --version
для проверки того, работает ли az. Этот документ был протестирован с версией 2.55.1. -
kubectl. Используется
kubectl version
для проверки того, работает ли kubectl. Этот документ был протестирован с версией 1.21.2. - Пакет средств разработки Java (JDK). В этой статье описывается установка Microsoft Build OpenJDK 11. Убедитесь, что
JAVA_HOME
переменная среды правильно задана в оболочках, в которых выполняются команды. - Maven 3.5.0 или более поздней версии.
- Убедитесь, что у вас установлена программа zip/unzip. Использовать
zip/unzip -v
для проверки, работает лиzip/unzip
.
-
Azure CLI. Используется
Создание базы данных SQL Azure
В этом разделе создается база данных SQL Azure с помощью проверки подлинности Microsoft Entra с включенным подключением к управляемому удостоверению.
Создайте группу ресурсов
Создайте группу ресурсов с помощью az group create. Так как группы ресурсов должны быть уникальными в пределах подписки, выберите уникальное имя. Простой способ иметь уникальные имена заключается в использовании сочетания ваших инициал, сегодняшней даты и некоторых идентификаторов. Например: abc1228rg
. В этом примере создается группа ресурсов с именем abc1228rg
в расположении eastus
:
export RESOURCE_GROUP_NAME="abc1228rg"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
Создайте сервер базы данных и базу данных
Создайте сервер с помощью команды az sql server create. В этом примере создается сервер с именем myazuresql20130213
пользователя администратора azureuser
и пароля администратора. заменив <your-password>
собственным паролем; Для получения дополнительной информации см. Краткое руководство: Создание одной базы данных - База данных SQL Azure.
Замечание
Несмотря на то, что вы используете имя пользователя и пароль здесь, эти учетные данные не предоставляются за пределами базы данных. Подключение между уровнем приложения и базой данных обеспечивается с помощью управляемых удостоверений.
export AZURESQL_SERVER_NAME="myazuresql20130213"
export AZURESQL_ADMIN_USER="azureuser"
export AZURESQL_ADMIN_PASSWORD="<your-password>"
export DATABASE_NAME="mysingledatabase20230213"
az sql server create \
--resource-group $RESOURCE_GROUP_NAME \
--name $AZURESQL_SERVER_NAME \
--location westus \
--admin-user $AZURESQL_ADMIN_USER \
--admin-password $AZURESQL_ADMIN_PASSWORD
Создайте базу данных с помощью команды az sql db create на уровне бессерверных вычислений.
az sql db create \
--resource-group $RESOURCE_GROUP_NAME \
--server $AZURESQL_SERVER_NAME \
--name $DATABASE_NAME \
--sample-name AdventureWorksLT \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
Настройка администратора Microsoft Entra
Сведения о том, как Azure SQL Server взаимодействует с управляемыми удостоверениями, см. в разделе "Подключение с помощью проверки подлинности Microsoft Entra".
Чтобы настроить учетную запись администратора Microsoft Entra на сервере SQL Azure на портале Azure, выполните следующие действия.
- На портале Azure откройте экземпляр Azure SQL
myazuresql20130213
. - Выберите "Параметры", а затем выберите идентификатор Microsoft Entra. На странице Microsoft Entra ID выберите Установить администратора.
- На странице "Добавить администратора" найдите пользователя, выберите пользователя или группу, чтобы быть администратором, а затем нажмите кнопку "Выбрать".
- В верхней части страницы идентификатора Microsoft Entra нажмите кнопку "Сохранить". Для пользователей и групп Microsoft Entra идентификатор объекта отображается рядом с именем администратора.
- Процесс изменения администратора может занять несколько минут. Затем новый администратор появится в поле идентификатора Microsoft Entra.
Создание управляемой идентичности, назначаемой пользователем
Затем в Azure CLI создайте удостоверение в подписке с помощью команды az identity create . Вы используете это управляемое удостоверение для подключения к вашей базе данных.
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myManagedIdentity
Создайте пользователя базы данных для управляемой идентичности
Теперь подключитесь от имени администратора Microsoft Entra к базе данных SQL Azure на портале Azure и создайте пользователя для управляемого удостоверения.
Сначала создайте правило брандмауэра для доступа к серверу SQL Azure на портале, как показано на следующих шагах:
- На портале Azure откройте экземпляр Azure SQL
myazuresql20130213
. - Выберите "Безопасность", а затем выберите "Сеть".
- В разделе "Правила брандмауэра" выберите "Добавить IPV4-адрес клиента".
- В разделе "Исключения" выберите "Разрешить службам и ресурсам Azure доступ к этому серверу".
- Нажмите кнопку "Сохранить".
После создания правила брандмауэра можно получить доступ к серверу SQL Azure на портале. Чтобы создать пользователя базы данных, выполните следующие действия.
Выберите "Параметры", а затем выберите базы данных SQL. Выберите
mysingledatabase20230213
.Выберите редактор запросов. На странице редактора запросов к базе данных SQL в разделе проверки подлинности Active Directory найдите сообщение, например
Logged in as user@contoso.com
.Выберите Продолжить как user@contoso.com, где
user
- имя вашей учетной записи администратора AD.После входа в систему в редакторе Запрос 1 выполните следующие команды, чтобы создать пользователя базы данных для управляемого удостоверения
myManagedIdentity
.CREATE USER "myManagedIdentity" FROM EXTERNAL PROVIDER ALTER ROLE db_datareader ADD MEMBER "myManagedIdentity"; ALTER ROLE db_datawriter ADD MEMBER "myManagedIdentity"; ALTER ROLE db_ddladmin ADD MEMBER "myManagedIdentity"; GO
В редакторе запросов 1 выберите "Выполнить ", чтобы выполнить команды SQL.
Если команды успешно выполнены, вы можете найти сообщение
Query succeeded: Affected rows: 0
.
Используйте следующую команду, чтобы получить строку подключения, которую вы используете в следующем разделе.
export CONNECTION_STRING="jdbc:sqlserver://${AZURESQL_SERVER_NAME}.database.windows.net:1433;database=${DATABASE_NAME};encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
echo ${CONNECTION_STRING}
Создание схемы для примера приложения
Выберите новый запрос , а затем в редакторе запросов выполните следующий запрос:
CREATE TABLE COFFEE (ID NUMERIC(19) NOT NULL, NAME VARCHAR(255) NULL, PRICE FLOAT(32) NULL, PRIMARY KEY (ID));
CREATE TABLE SEQUENCE (SEQ_NAME VARCHAR(50) NOT NULL, SEQ_COUNT NUMERIC(28) NULL, PRIMARY KEY (SEQ_NAME));
INSERT INTO SEQUENCE VALUES ('SEQ_GEN',0);
После успешного выполнения вы увидите сообщение о успешном выполнении запроса: затронутые строки: 1. Если вы не видите это сообщение, диагностируйте и устраните проблему, прежде чем продолжить.
Вы можете приступить к развертыванию WLS в рамках предложения AKS.
Развертывание webLogic Server в AKS
Выполните следующие действия, чтобы найти веб-сервер в предложении AKS и заполнить область "Основные сведения".
В строке поиска в верхней части портала Azure введите weblogic. В результатах автоматического поиска в разделе Marketplace выберите WebLogic Server в AKS.
Вы также можете перейти непосредственно к предложению WebLogic Server на AKS.
На странице предложения нажмите кнопку "Создать".
На панели «Основные сведения» убедитесь, что значение, отображаемое в поле «Подписка», совпадает с тем, в которое вы вошли в Azure. Убедитесь, что у вас есть роли, перечисленные в разделе предварительных требований для подписки.
В поле "Группа ресурсов " выберите "Создать" , а затем введите значение для группы ресурсов. Так как группы ресурсов должны быть уникальными в пределах подписки, выберите уникальное имя. Простой способ использовать уникальные имена — использовать сочетание инициалов, сегодняшней даты и некоторых идентификаторов, например
ejb0723wls
.В разделе Сведения об экземпляре выберите нужный регион для развертывания. Список регионов Azure, где доступен AKS, см. в разделе "Доступность региона AKS".
В разделе "Учетные данные для WebLogic" оставьте значение по умолчанию для имени пользователя для администратора WebLogic.
wlsAksCluster2022
Введите пароль для администратора WebLogic. Используйте то же значение для полей подтверждения и пароля для шифрования модели WebLogic.Нажмите кнопку Далее.
Выполните следующие действия, чтобы запустить процесс развертывания:
Прокрутите страницу до раздела, обозначенного как предоставление учетной записи Единого входа (SSO) Oracle Sign-On. Введите свои учетные данные для единого входа Oracle, указанные в предварительных условиях.
Убедитесь, что вы заметите шаги в поле сведений, начиная с принятия стандартных условий и ограничений Oracle, прежде чем продолжить.
В зависимости от того, имеет ли учетная запись единого входа Oracle право на поддержку Oracle, выберите соответствующий параметр для выбора типа образов WebLogic Server. Если у учетной записи есть право на поддержку, выберите обновленные образы WebLogic Server. В противном случае выберите Общие образы WebLogic Server.
Оставьте значение в выборе требуемого сочетания WebLogic Server... по умолчанию. У вас есть широкий спектр вариантов для версии WebLogic Server, JDK и ОС.
В разделе "Приложение " рядом с пунктом "Развертывание приложения"? выберите "Нет".
Ниже приведены шаги, которые позволяют консоли администрирования WebLogic Server и демонстрационному приложению быть доступными для общего доступа в интернет со встроенной надстройкой шлюза приложений. Дополнительные сведения см. в разделе "Что такое контроллер входящего трафика шлюза приложений"?
Выберите Далее, чтобы просмотреть панель TLS/SSL.
Нажмите Далее, чтобы просмотреть балансировку нагрузки.
Рядом с параметрами балансировки нагрузки выберите контроллер входящего трафика шлюза приложений.
В контроллере входящего трафика шлюза приложений должны отображаться все поля, предварительно заполненные значениями по умолчанию для виртуальной сети и подсети. Оставьте значения по умолчанию.
Чтобы создать вход для консоли администрирования, выберите Да.
Нажмите Далее, чтобы просмотреть панель DNS.
Нажмите кнопку "Далее", чтобы увидеть область "База данных.
Чтобы настроить подключение к базе данных с помощью управляемого удостоверения, выполните следующие действия.
- Для подключения к базе данных нажмите кнопку "Да".
- В разделе "Параметры подключения" для параметра "Выбор типа базы данных" откройте раскрывающееся меню и выберите Microsoft SQL Server (с поддержкой подключения без пароля).
- Для имени JNDI введите jdbc/WebLogicCafeDB.
- Для строки подключения DataSource введите строку подключения, полученную в последнем разделе.
- Выберите "Использовать подключение к источнику данных без пароля".
- Для пользовательского управляемого удостоверения выберите управляемое удостоверение, которое вы создали на предыдущем шаге. В этом примере его имя —
myManagedIdentity
. - Нажмите кнопку "Добавить".
Раздел параметров подключения должен выглядеть следующим образом:
Чтобы завершить развертывание, выполните следующие действия.
- Выберите Review + create. Убедитесь, что проверка проходит успешно. Если возникла ошибка, исправьте все проблемы проверки, а затем выберите "Проверить и создать" еще раз.
- Нажмите кнопку "Создать".
- Отслеживайте ход выполнения развертывания на странице «Развертывание в процессе».
В зависимости от сетевых условий и других действий в выбранном регионе развертывание может занять до 50 минут.
Замечание
Если вашей организации требуется развернуть рабочую нагрузку в корпоративной виртуальной сети без разрешенных общедоступных IP-адресов, можно выбрать внутреннюю службу Load Balancer. Чтобы настроить внутреннюю службу Load Balancer, выполните следующие действия на вкладке балансировки нагрузки :
Для параметров балансировки нагрузки выберите стандартную службу балансировщика нагрузки.
Выберите "Использовать внутреннюю подсистему балансировки нагрузки".
Добавьте в таблицу следующие строки:
Префикс имени службы Цель Порт wls-admin-internal
admin-server
7001 wls-cluster-internal
cluster-1
8001
Вкладка балансировки нагрузки должна выглядеть следующим образом:
После развертывания можно найти URL-адреса доступа к серверу администрирования и кластеру в выходных данных, помеченные как adminConsoleExternalUrl и clusterExternalUrl.
Проверка выходных данных развертывания
Выполните действия, описанные в этом разделе, чтобы убедиться, что развертывание выполнено успешно.
Если вы перешли с страницы Развертывание ведется, выполните следующие действия, чтобы вернуться на эту страницу. Если вы по-прежнему находитесь на странице с завершением развертывания, вы можете перейти к шагу 5 после следующего снимка экрана.
В углу любой страницы портала Azure выберите меню гамбургера и выберите группы ресурсов.
В поле с текстовым фильтром для любого поля введите первые несколько символов созданной ранее группы ресурсов. Если вы выполнили рекомендуемое соглашение, введите свои инициалы, выберите соответствующую группу ресурсов.
В области навигации в разделе "Параметры " выберите "Развертывания". Вы увидите упорядоченный список развертываний в этой группе ресурсов с последним первым.
Прокрутите до самой старой записи в этом списке. Эта запись соответствует развертыванию, начатому в предыдущем разделе. Выберите самое старое развертывание, как показано на следующем снимке экрана.
В области навигации выберите выходные данные. В этом списке показаны выходные значения из развертывания. Полезные сведения включаются в выходные данные.
Значение adminConsoleExternalUrl является полностью определённой, общедоступной ссылкой на консоль администрирования WebLogic Server для этого кластера AKS. Щелкните значок копирования рядом со значением поля, чтобы скопировать ссылку в буфер обмена. Сохраните это значение в стороне для дальнейшего использования.
Значение clusterExternalUrl — это полностью квалифицированная, видимая в Интернете ссылка на тестовое приложение, развернутое в WebLogic Server в этом кластере AKS. Щелкните значок копирования рядом со значением поля, чтобы скопировать ссылку в буфер обмена. Сохраните это значение в стороне для дальнейшего использования.
Значение shellCmdtoOutputWlsImageModelYaml — это строка base64 модели WDT, которая используется для создания образа контейнера. Сохраните это значение в стороне для дальнейшего использования.
Значение shellCmdtoOutputWlsImageProperties является строкой base64 свойств модели WDT, используемых для создания образа контейнера. Сохраните это значение в стороне для дальнейшего использования.
Значение shellCmdtoConnectAks — это команда Azure CLI для подключения к этому конкретному кластеру AKS.
Другие значения в выходных данных выходят за рамки этой статьи, но подробно описаны в руководстве пользователя WebLogic по AKS.
Настройка и развертывание примера приложения
Предложение подготавливает кластер WebLogic Server с помощью модели на изображении. В настоящее время в кластере WebLogic Server нет развернутого приложения.
В этом разделе обновляется кластер WebLogic Server путем развертывания примера приложения с помощью вспомогательного образа.
Ознакомьтесь с приложением
В этом разделе описано, как клонировать пример кода для этого руководства. Пример находится на сайте GitHub в репозитории weblogic-on-azure в папке javaee/weblogic-café/ . Ниже приведена структура файлов приложения.
weblogic-cafe
├── pom.xml
└── src
└── main
├── java
│ └── cafe
│ ├── model
│ │ ├── CafeRepository.java
│ │ └── entity
│ │ └── Coffee.java
│ └── web
│ ├── rest
│ │ └── CafeResource.java
│ └── view
│ └── Cafe.java
├── resources
│ ├── META-INF
│ │ └── persistence.xml
│ └── cafe
│ └── web
│ ├── messages.properties
│ └── messages_es.properties
└── webapp
├── WEB-INF
│ ├── beans.xml
│ ├── faces-config.xml
│ └── web.xml
├── index.xhtml
└── resources
└── components
└── inputPrice.xhtml
Чтобы клонировать репозиторий, используйте следующие команды:
# cd <parent-directory-to-check-out-sample-code>
export BASE_DIR=$PWD
git clone --single-branch https://github.com/microsoft/weblogic-on-azure.git --branch 20240201 $BASE_DIR/weblogic-on-azure
Если появится сообщение об отключенном состоянии HEAD, это сообщение безопасно игнорировать. Это просто означает, что вы просмотрели тег.
Используйте следующую команду, чтобы создать javaee/weblogic-café/:
mvn clean package --file $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/pom.xml
Пакет должен быть успешно создан и расположен в $BASE_DIR/weblogic-on-azure/javaee/weblogic-café/target/weblogic-café.war. Если пакет не отображается, перед продолжением необходимо выявить и устранить проблему.
Создание вспомогательного образа с помощью реестра контейнеров Azure
В этом разделе показано, как создать вспомогательный образ. Этот образ включает следующие компоненты:
- Файлы модели Model in Image
- Ваше приложение
- Файл архива драйвера подключения к базе данных Java (JDBC)
- Установка средств развертывания WebLogic
Вспомогательный образ — это образ контейнера Docker, содержащий приложение и конфигурацию. Оператор WebLogic Kubernetes объединяет вспомогательный образ с domain.spec.image
кластером AKS, который содержит веб-сервер, JDK и операционную систему. Дополнительные сведения о вспомогательных изображениях см. в документации Oracle по вспомогательным изображениям .
В этом разделе требуется терминал Linux с установленным Azure CLI и kubectl.
Чтобы создать образ, выполните следующие действия.
Используйте следующие команды, чтобы создать каталог для этапов моделей и приложений:
mkdir -p ${BASE_DIR}/mystaging/models cd ${BASE_DIR}/mystaging/models
Скопируйте значение shellCmdtoOutputWlsImageModelYaml , сохраненное из выходных данных развертывания, вставьте его в окно Bash и выполните команду. Команда должна выглядеть примерно так:
echo -e IyBDb3B5cmlna...Cgo= | base64 -d > model.yaml
Эта команда создает файл ${BASE_DIR}/mystaging/models/model.yaml с содержимым, аналогичным следующему примеру:
# Copyright (c) 2020, 2021, Oracle and/or its affiliates. # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # Based on ./kubernetes/samples/scripts/create-weblogic-domain/model-in-image/model-images/model-in-image__WLS-v1/model.10.yaml # in https://github.com/oracle/weblogic-kubernetes-operator. domainInfo: AdminUserName: "@@SECRET:__weblogic-credentials__:username@@" AdminPassword: "@@SECRET:__weblogic-credentials__:password@@" ServerStartMode: "prod" topology: Name: "@@ENV:CUSTOM_DOMAIN_NAME@@" ProductionModeEnabled: true AdminServerName: "admin-server" Cluster: "cluster-1": DynamicServers: ServerTemplate: "cluster-1-template" ServerNamePrefix: "@@ENV:MANAGED_SERVER_PREFIX@@" DynamicClusterSize: "@@PROP:CLUSTER_SIZE@@" MaxDynamicClusterSize: "@@PROP:CLUSTER_SIZE@@" MinDynamicClusterSize: "0" CalculatedListenPorts: false Server: "admin-server": ListenPort: 7001 ServerTemplate: "cluster-1-template": Cluster: "cluster-1" ListenPort: 8001 SecurityConfiguration: NodeManagerUsername: "@@SECRET:__weblogic-credentials__:username@@" NodeManagerPasswordEncrypted: "@@SECRET:__weblogic-credentials__:password@@" resources: SelfTuning: MinThreadsConstraint: SampleMinThreads: Target: "cluster-1" Count: 1 MaxThreadsConstraint: SampleMaxThreads: Target: "cluster-1" Count: 10 WorkManager: SampleWM: Target: "cluster-1" MinThreadsConstraint: "SampleMinThreads" MaxThreadsConstraint: "SampleMaxThreads"
Аналогичным образом скопируйте значение shellCmdtoOutputWlsImageProperties , вставьте его в окно Bash и выполните команду. Команда должна выглядеть примерно так:
echo -e IyBDb3B5cml...pFPTUK | base64 -d > model.properties
Эта команда создает файл ${BASE_DIR}/mystaging/models/model.properties с содержимым, аналогичным следующему примеру:
# Copyright (c) 2021, Oracle Corporation and/or its affiliates. # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. # Based on ./kubernetes/samples/scripts/create-weblogic-domain/model-in-image/model-images/model-in-image__WLS-v1/model.10.properties # in https://github.com/oracle/weblogic-kubernetes-operator. CLUSTER_SIZE=5
Чтобы создать файл модели приложения, выполните следующие действия.
Используйте следующие команды, чтобы скопировать weblogic-café.war и сохранить его в wlsdeploy/applications:
mkdir -p ${BASE_DIR}/mystaging/models/wlsdeploy/applications cp $BASE_DIR/weblogic-on-azure/javaee/weblogic-cafe/target/weblogic-cafe.war ${BASE_DIR}/mystaging/models/wlsdeploy/applications/weblogic-cafe.war
Используйте следующие команды, чтобы создать файл модели приложения с отображаемым содержимым. Сохраните файл модели в ${BASE_DIR}/mystaging/models/appmodel.yaml.
cat <<EOF >appmodel.yaml appDeployments: Application: weblogic-cafe: SourcePath: 'wlsdeploy/applications/weblogic-cafe.war' ModuleType: ear Target: 'cluster-1' EOF
Чтобы настроить подключение к источнику данных, выполните следующие действия.
Чтобы скачать и установить драйвер JDBC Microsoft SQL Server и расширение удостоверений Azure, следуйте следующим шагам. Эти компоненты позволяют подключаться к базе данных с использованием управляемого удостоверения Azure.
Чтобы скачать и установить драйвер Microsoft SQL Server JDBC в
wlsdeploy/externalJDBCLibraries
, используйте следующие команды:export DRIVER_VERSION="10.2.1.jre8" export MSSQL_DRIVER_URL="https://repo.maven.apache.org/maven2/com/microsoft/sqlserver/mssql-jdbc/${DRIVER_VERSION}/mssql-jdbc-${DRIVER_VERSION}.jar" mkdir ${BASE_DIR}/mystaging/models/wlsdeploy/externalJDBCLibraries curl -m 120 -fL ${MSSQL_DRIVER_URL} -o ${BASE_DIR}/mystaging/models/wlsdeploy/externalJDBCLibraries/mssql-jdbc-${DRIVER_VERSION}.jar
Чтобы установить расширение удостоверений Azure
wlsdeploy/classpathLibraries
, используйте следующие команды:curl -LO https://github.com/oracle/weblogic-azure/raw/refs/heads/main/weblogic-azure-aks/src/main/resources/azure-identity-extensions.xml mvn dependency:copy-dependencies -f azure-identity-extensions.xml mkdir -p ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/azureLibraries mkdir ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson # fix JARs conflict issue in GA images, put jackson libraries to PRE_CLASSPATH to upgrade the existing libs. mv target/dependency/jackson-annotations-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/ mv target/dependency/jackson-core-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/ mv target/dependency/jackson-databind-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/ mv target/dependency/jackson-dataformat-xml-*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/jackson/ # Thoes jars will be appended to CLASSPATH mv target/dependency/*.jar ${BASE_DIR}/mystaging/models/wlsdeploy/classpathLibraries/azureLibraries/
Используйте следующие команды для очистки ресурсов:
rm target -f -r rm azure-identity-extensions.xml
Подключитесь к кластеру AKS, скопируйте значение shellCmdtoConnectAks , сохраненное ранее, вставив его в окно Bash, а затем выполните команду. Команда должна выглядеть примерно так:
az account set --subscription <subscription>; az aks get-credentials \ --resource-group <resource-group> \ --name <name>
Вы должны увидеть выходные данные, аналогичные следующему примеру. Если вы не видите этот результат, обнаружьте и устраните проблему перед продолжением.
Merged "<name>" as current context in /Users/<username>/.kube/config
Экспортируйте модель подключения к базе данных и сохраните ее в ${BASE_DIR}/mystaging/models/dbmodel.yaml. Следующие шаги извлекают модель конфигурации базы данных из ConfigMap
sample-domain1-wdt-config-map
. Название соответствует формату<domain-uid>-wdt-config-map
, где<domain-uid>
задается при развертывании предложения. Если вы изменили значение по умолчанию, замените его собственным уникальным идентификатором домена.Ключ данных — <db-secret-name.yaml>. Чтобы получить имя секрета базы данных, используйте следующую команду:
export WLS_DOMAIN_UID=sample-domain1 export WLS_DOMAIN_NS=${WLS_DOMAIN_UID}-ns export DB_K8S_SECRET_NAME=$(kubectl get secret -n ${WLS_DOMAIN_NS} | grep "ds-secret" | awk '{print $1}')
Затем извлеките модель базы данных с помощью следующей команды:
kubectl get configmap sample-domain1-wdt-config-map -n ${WLS_DOMAIN_NS} -o=jsonpath="{['data']['${DB_K8S_SECRET_NAME}\.yaml']}" >${BASE_DIR}/mystaging/models/dbmodel.yaml
Наконец, используйте следующую команду, чтобы проверить содержимое dbmodel.yaml.
cat ${BASE_DIR}/mystaging/models/dbmodel.yaml
Выходные данные этой команды должны выглядеть следующим образом:
# Copyright (c) 2020, 2021, Oracle and/or its affiliates. # Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. resources: JDBCSystemResource: jdbc/WebLogicCafeDB: Target: 'cluster-1' JdbcResource: JDBCDataSourceParams: JNDIName: [ jdbc/WebLogicCafeDB ] GlobalTransactionsProtocol: OnePhaseCommit JDBCDriverParams: DriverName: com.microsoft.sqlserver.jdbc.SQLServerDriver URL: '@@SECRET:ds-secret-sqlserver-1727147748:url@@' PasswordEncrypted: '@@SECRET:ds-secret-sqlserver-1727147748:password@@' Properties: user: Value: '@@SECRET:ds-secret-sqlserver-1727147748:user@@' JDBCConnectionPoolParams: TestTableName: SQL SELECT 1 TestConnectionsOnReserve: true
Используйте следующие команды, чтобы создать архивный файл, а затем удалить папку wlsdeploy , которую больше не требуется:
cd ${BASE_DIR}/mystaging/models zip -r archive.zip wlsdeploy rm -f -r wlsdeploy
Используйте следующие команды, чтобы скачать и установить средство развертывания WebLogic (WDT) в промежуточном каталоге и удалить файлы weblogic-deploy/bin/*.cmd , которые не используются в средах UNIX:
cd ${BASE_DIR}/mystaging curl -m 120 -fL https://github.com/oracle/weblogic-deploy-tooling/releases/latest/download/weblogic-deploy.zip -o weblogic-deploy.zip unzip weblogic-deploy.zip -d . rm ./weblogic-deploy/bin/*.cmd
Чтобы очистить установщик WDT, выполните следующую команду:
rm weblogic-deploy.zip
Используйте следующие команды для создания файла docker:
cd ${BASE_DIR}/mystaging cat <<EOF >Dockerfile FROM busybox ARG AUXILIARY_IMAGE_PATH=/auxiliary ARG USER=oracle ARG USERID=1000 ARG GROUP=root ENV AUXILIARY_IMAGE_PATH=\${AUXILIARY_IMAGE_PATH} RUN adduser -D -u \${USERID} -G \$GROUP \$USER COPY --chown=\$USER:\$GROUP ./ \${AUXILIARY_IMAGE_PATH}/ USER \$USER EOF
az acr build
Выполните команду с помощью ${BASE_DIR}/mystaging/Dockerfile, как показано в следующем примере:export ACR_NAME=<value-from-clipboard> export IMAGE="wlsaks-auxiliary-image:1.0"
Используйте следующие команды, чтобы дважды проверить промежуточные файлы:
cd ${BASE_DIR}/mystaging find -maxdepth 2 -type f -print
Эти команды создают выходные данные, аналогичные следующему примеру:
./models/model.properties ./models/model.yaml ./models/appmodel.yaml ./models/dbmodel.yaml ./models/archive.zip ./Dockerfile ./weblogic-deploy/VERSION.txt ./weblogic-deploy/LICENSE.txt
Создайте изображение с
az acr build
, как показано в следующем примере.az acr build -t ${IMAGE} --build-arg AUXILIARY_IMAGE_PATH=/auxiliary -r ${ACR_NAME} --platform linux/amd64 .
При успешной сборке образа выходные данные выглядят примерно так:
... Step 1/9 : FROM busybox latest: Pulling from library/busybox Digest: sha256:9ae97d36d26566ff84e8893c64a6dc4fe8ca6d1144bf5b87b2b85a32def253c7 Status: Image is up to date for busybox:latest ---> 65ad0d468eb1 Step 2/9 : ARG AUXILIARY_IMAGE_PATH=/auxiliary ---> Running in 1f8f4e82ccb6 Removing intermediate container 1f8f4e82ccb6 ---> 947fde618be9 Step 3/9 : ARG USER=oracle ---> Running in dda021591e41 Removing intermediate container dda021591e41 ---> f43d84be4517 Step 4/9 : ARG USERID=1000 ---> Running in cac4df6dfd13 Removing intermediate container cac4df6dfd13 ---> e5513f426c74 Step 5/9 : ARG GROUP=root ---> Running in 8fec1763270c Removing intermediate container 8fec1763270c ---> 9ef233dbe279 Step 6/9 : ENV AUXILIARY_IMAGE_PATH=${AUXILIARY_IMAGE_PATH} ---> Running in b7754f58157a Removing intermediate container b7754f58157a ---> 4a26a97eb572 Step 7/9 : RUN adduser -D -u ${USERID} -G $GROUP $USER ---> Running in b6c1f1a81af1 Removing intermediate container b6c1f1a81af1 ---> 97d3e5ad7540 Step 8/9 : COPY --chown=$USER:$GROUP ./ ${AUXILIARY_IMAGE_PATH}/ ---> 21088171876f Step 9/9 : USER $USER ---> Running in 825e0abc9f6a Removing intermediate container 825e0abc9f6a ---> b81d6430fcda Successfully built b81d6430fcda Successfully tagged wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0 2024/08/28 03:06:19 Successfully executed container: build 2024/08/28 03:06:19 Executing step ID: push. Timeout(sec): 3600, Working directory: '', Network: '' 2024/08/28 03:06:19 Pushing image: wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0, attempt 1 The push refers to repository [wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image] ee589b3cda86: Preparing c1fd1adab3b9: Preparing d51af96cf93e: Preparing c1fd1adab3b9: Pushed d51af96cf93e: Pushed ee589b3cda86: Pushed 1.0: digest: sha256:c813eb75576eb07a179c3cb4e70106ca7dd280f933ab33a2f6858de673b12eac size: 946 2024/08/28 03:06:21 Successfully pushed image: wlsaksacru6jyly7kztoqu.azurecr.io/wlsaks-auxiliary-image:1.0 2024/08/28 03:06:21 Step ID: build marked as successful (elapsed time in seconds: 8.780235) 2024/08/28 03:06:21 Populating digests for step ID: build... 2024/08/28 03:06:22 Successfully populated digests for step ID: build 2024/08/28 03:06:22 Step ID: push marked as successful (elapsed time in seconds: 1.980158) 2024/08/28 03:06:22 The following dependencies were found: 2024/08/28 03:06:22 - image: registry: wlsaksacru6jyly7kztoqu.azurecr.io repository: wlsaks-auxiliary-image tag: "1.0" digest: sha256:c813eb75576eb07a179c3cb4e70106ca7dd280f933ab33a2f6858de673b12eac runtime-dependency: registry: registry.hub.docker.com repository: library/busybox tag: latest digest: sha256:9ae97d36d26566ff84e8893c64a6dc4fe8ca6d1144bf5b87b2b85a32def253c7 git: {} Run ID: ca1 was successful after 14s
Образ отправляется в ACR после успешной сборки.
Вы можете запустить
az acr repository show
, чтобы проверить, было ли изображение успешно отправлено в удалённый репозиторий. См. следующий пример:az acr repository show --name ${ACR_NAME} --image ${IMAGE}
Эта команда должна создать выходные данные, аналогичные следующему примеру:
{ "changeableAttributes": { "deleteEnabled": true, "listEnabled": true, "readEnabled": true, "writeEnabled": true }, "createdTime": "2024-01-24T06:14:19.4546321Z", "digest": "sha256:a1befbefd0181a06c6fe00848e76f1743c1fecba2b42a975e9504ba2aaae51ea", "lastUpdateTime": "2024-01-24T06:14:19.4546321Z", "name": "1.0", "quarantineState": "Passed", "signed": false }
Применение вспомогательного изображения
На предыдущих этапах вы создали вспомогательный образ, включая модели и WDT. Примените вспомогательный образ к кластеру WebLogic Server, выполнив следующие действия.
Примените вспомогательное изображение, исправив определение пользовательского ресурса домена (CRD) с помощью команды
kubectl patch
.Вспомогательный образ определен в
spec.configuration.model.auxiliaryImages
, как показано в следующем примере:spec: clusters: - name: sample-domain1-cluster-1 configuration: model: auxiliaryImages: - image: wlsaksacrafvzeyyswhxek.azurecr.io/wlsaks-auxiliary-image:1.0 imagePullPolicy: IfNotPresent sourceModelHome: /auxiliary/models sourceWDTInstallHome: /auxiliary/weblogic-deploy
Используйте следующие команды, чтобы значение
restartVersion
увеличить и применить с помощьюkubectl patch
вспомогательный образ к домену CRD, используя приведенное определение:export VERSION=$(kubectl -n ${WLS_DOMAIN_NS} get domain ${WLS_DOMAIN_UID} -o=jsonpath='{.spec.restartVersion}' | tr -d "\"") export VERSION=$((VERSION+1)) export ACR_LOGIN_SERVER=$(az acr show --name ${ACR_NAME} --query "loginServer" --output tsv) cat <<EOF >patch-file.json [ { "op": "replace", "path": "/spec/restartVersion", "value": "${VERSION}" }, { "op": "add", "path": "/spec/configuration/model/auxiliaryImages", "value": [{"image": "$ACR_LOGIN_SERVER/$IMAGE", "imagePullPolicy": "IfNotPresent", "sourceModelHome": "/auxiliary/models", "sourceWDTInstallHome": "/auxiliary/weblogic-deploy"}] }, { "op": "remove", "path": "/spec/configuration/model/configMap" } ] EOF kubectl -n ${WLS_DOMAIN_NS} patch domain ${WLS_DOMAIN_UID} \ --type=json \ --patch-file patch-file.json
Так как подключение к базе данных настроено на вспомогательном образе, выполните следующую команду, чтобы удалить ConfigMap:
kubectl delete configmap sample-domain1-wdt-config-map -n ${WLS_DOMAIN_NS}
Прежде чем продолжить, подождите, пока следующая команда не выдает следующие выходные данные для сервера администрирования и управляемых серверов:
kubectl get pod -n ${WLS_DOMAIN_NS} -w
NAME READY STATUS RESTARTS AGE
sample-domain1-admin-server 1/1 Running 0 20m
sample-domain1-managed-server1 1/1 Running 0 19m
sample-domain1-managed-server2 1/1 Running 0 18m
Для достижения этого состояния может потребоваться 5–10 минут. В следующем списке представлен обзор того, что происходит во время ожидания.
- Сначала вы должны увидеть, как выполняется
sample-domain1-introspector
. Это программное обеспечение ищет изменения в пользовательском ресурсе домена, чтобы он смог выполнить необходимые действия в кластере Kubernetes. - При обнаружении изменений инспектор домена убивает старые pods и запускает новые для развертывания изменений.
- Затем вы увидите завершение и перезапуск pod.
- Затем вы увидите, что два управляемых сервера завершаются и перезапускаются.
- Только когда все три "pod" показывают состояние
1/1 Running
, можно продолжить.
Проверка функциональности развертывания
Чтобы проверить функциональные возможности развертывания, просмотрите консоль администрирования WebLogic Server и пример приложения:
Вставьте значение adminConsoleExternalUrl в адресную строку веб-браузера, подключенного к Интернету. Вы увидите знакомый экран входа в консоль администрирования WebLogic Server.
Войдите с помощью имени пользователя
weblogic
и пароля, введенного при развертывании WebLogic Server на портале Azure. Помните, что данное значение — этоwlsAksCluster2022
.В поле "Структура домена" выберите "Службы".
В разделе "Службы" выберите источники данных.
На панели "Сводка источников данных JDBC " выберите "Мониторинг". Экран должен выглядеть примерно так, как показано в следующем примере. Вы обнаружили, что источник данных работает на управляемых серверах.
В поле "Структура домена" выберите "Развертывания".
В таблице "Развертывания" должна быть одна строка. Имя должно совпадать со
Application
значением в файле appmodel.yaml . Выберите имя.Перейдите на вкладку "Тестирование ".
Выберите weblogic-café.
На панели Параметры для weblogic-cafe выберите вкладку Тестирование.
Разверните значок + рядом с weblogic-cafe. Экран должен выглядеть примерно так, как показано в следующем примере. В частности, в столбце точки тестирования должны отображаться значения, аналогичные
http://sample-domain1-managed-server1:8001/weblogic-cafe/index.xhtml
столбцу "Точка тестирования ".Замечание
Гиперссылки в столбце "Точка тестирования " недоступны для выбора, так как мы не настроили консоль администрирования с внешним URL-адресом, на котором она запущена. В этой статье показана консоль администрирования WebLogic Server только путем демонстрации. Не используйте консоль администрирования WebLogic Server для каких-либо устойчивых изменений конфигурации при запуске webLogic Server в AKS. Облачная разработка WebLogic Server в AKS требует, чтобы любая устойчивая конфигурация была представлена в исходных образах docker или применена к работающему кластеру AKS с помощью методов CI/CD, таких как обновление модели, как описано в документации Oracle.
Ознакомьтесь со
context-path
значением развёрнутого образца приложения. Если вы развернули рекомендуемое приложение-пример, тоcontext-path
являетсяweblogic-cafe
.Создайте полностью квалифицированный URL-адрес для образца приложения, добавив
context-path
к значению clusterExternalUrl. Если вы установили рекомендуемое приложение, полный URL-адрес будет примерно такимhttp://wlsgw202401-wls-aks-domain1.eastus.cloudapp.azure.com/weblogic-cafe/
.Вставьте полный URL-адрес в веб-браузере, подключенном к Интернету. Если вы развернули рекомендуемое приложение, вы увидите результаты, аналогичные следующему снимку экрана:
Очистите ресурсы
Чтобы избежать расходов за использование Azure, необходимо удалить ненужные ресурсы. Если кластер больше не нужен, используйте команду az group delete . Следующая команда удаляет группу ресурсов, службу контейнеров, реестр контейнеров, базу данных и все связанные ресурсы:
az group delete --name <resource-group-name> --yes --no-wait
az group delete --name <db-resource-group-name> --yes --no-wait
Дальнейшие шаги
Дополнительные сведения о запуске WebLogic Server на AKS или виртуальных машинах см. по следующим ссылкам:
Дополнительные сведения о предложениях Oracle WebLogic в Azure Marketplace см. в статье Oracle WebLogic Server в Azure. Все эти предложения — по модели Bring-Your-Own-License. Предполагается, что у вас уже есть соответствующие лицензии с Oracle и имеются соответствующие лицензии для запуска предложений в Azure.
Azure Kubernetes Service