Tutorial: Migración de Oracle WebLogic Server a Azure Kubernetes Service (AKS) dentro de una red virtual personalizada
En este tutorial se muestra cómo implementar la oferta de Oracle WebLogic Server (WLS) en Azure Kubernetes Service (AKS) que se integra con una red virtual personalizada en la suscripción del consumidor. La oferta de WLS en AKS le permite decidir si quiere crear una nueva red virtual o usar una existente.
En este tutorial, aprenderá a:
- Crear una red virtual personalizada y crear la infraestructura dentro de la red.
- Ejecutar Oracle WebLogic Server en AKS en la red virtual personalizada.
- Exponer Oracle WebLogic Server con Azure Application Gateway como equilibrador de carga.
- Validar la implementación correcta.
Requisitos previos
- Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Prepara una máquina local con un sistema operativo similar a Unix instalado (por ejemplo, Ubuntu, macOS o Subsistema de Windows para Linux).
- Instale la CLI de Azure 2.37.0 o superior para ejecutar los comandos de la CLI de Azure.
- Inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión en Azure con la CLI de Azure.
- En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para obtener más información sobre las extensiones, consulte Uso y administración de extensiones con la CLI de Azure.
- Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
- La oferta de Marketplace de WLS en AKS requiere permiso para crear una identidad administrada asignada por el usuario y asignar roles de Azure. Para asignar roles de Azure, debe tener los permisos
Microsoft.Authorization/roleAssignments/write
, como Administrador de acceso de usuario o Propietario. - Una cuenta de Oracle. Los pasos descritos en Oracle Container Registry le indicarán cómo aceptar el contrato de licencia para las imágenes de WebLogic Server. Tome nota de la contraseña y el correo electrónico de la cuenta de Oracle.
Crear un grupo de recursos
Cree un grupo de recursos con az group create. En este ejemplo se crea un grupo de recursos denominado myResourceGroup
en la ubicación eastus
:
export RESOURCE_GROUP_NAME="myResourceGroup"
az group create \
--name ${RESOURCE_GROUP_NAME} \
--location eastus
Crear una red virtual personalizada
Existen restricciones al crear una red virtual personalizada. Antes de crear la red virtual en su entorno, lea los artículos siguientes:
- Conceptos de redes de aplicaciones en Azure Kubernetes Service (AKS).
- Configuración de la infraestructura de Azure Application Gateway.
En el ejemplo de esta sección se crea una red virtual con el espacio de direcciones 192.168.0.0/16
y se crean dos subredes que se usan para AKS y Azure Application Gateway.
Primero, use az network vnet create para crear una red virtual. En el ejemplo siguiente se crea una red virtual predeterminada denominada myVNet
:
az network vnet create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myVNet \
--address-prefixes 192.168.0.0/16
A continuación, cree una subred para el clúster de AKS mediante az network vnet subnet create. En el ejemplo siguiente se crea una subred denominada myAKSSubnet
:
az network vnet subnet create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myAKSSubnet \
--vnet-name myVNet \
--address-prefixes 192.168.1.0/24
Después, cree una subred para Application Gateway mediante az network vnet subnet create. En el ejemplo siguiente se crea una subred denominada myAppGatewaySubnet
:
az network vnet subnet create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myAppGatewaySubnet \
--vnet-name myVNet \
--address-prefixes 192.168.2.0/24
A continuación, use el siguiente comando para obtener el identificador de recurso de subred de AKS y almacenarlo en una variable para usarlo más adelante en este artículo:
export AKS_SUBNET_ID=$(az network vnet subnet show \
--resource-group ${RESOURCE_GROUP_NAME} \
--vnet-name myVNet \
--name myAKSSubnet \
--query id \
--output tsv)
Creación de un clúster de AKS en la red virtual
Use el siguiente comando para crear un clúster de AKS en la red virtual y la subred mediante el comando az aks create.
Nota:
En este ejemplo se crea un clúster de AKS mediante kubenet y una identidad asignada por el sistema. La CLI de Azure concederá el rol de colaborador de red a la identidad asignada por el sistema después de crear el clúster.
Si quiere usar Azure CNI, consulte Configuración de redes de Azure CNI en AKS para crear un clúster de AKS habilitado para Azure CNI.
Si desea usar una identidad administrada asignada por el usuario, consulte Creación de un clúster de AKS con identidades administradas asignadas por el sistema.
az aks create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name myAKSCluster \
--generate-ssh-keys \
--enable-managed-identity \
--node-count 3 \
--network-plugin kubenet \
--vnet-subnet-id $AKS_SUBNET_ID \
--yes
Almacenamiento de aplicaciones Java EE en una cuenta de almacenamiento
Puede implementar una aplicación de Java EE junto con la implementación de la oferta de WLS en AKS. Debe cargar el archivo de aplicación (.war, .ear o .jar) en una cuenta de Azure Storage y un contenedor de almacenamiento preexistente dentro de esa cuenta.
Cree una cuenta de Azure Storage mediante el comando az storage account create, como se muestra en el ejemplo siguiente:
export STORAGE_ACCOUNT_NAME="stgwlsaks$(date +%s)"
az storage account create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${STORAGE_ACCOUNT_NAME} \
--location eastus \
--sku Standard_RAGRS \
--kind StorageV2
Cree un contenedor para almacenar blobs con el comando az storage container create. En el ejemplo siguiente se usa la clave de cuenta de almacenamiento para autorizar la operación de creación del contenedor. También puede usar su cuenta de Microsoft Entra para autorizar la operación de creación del contenedor. Para más información, consulte el artículo en el que se explica cómo autorizar el acceso a los datos de blobs o colas con la CLI de Azure.
export KEY=$(az storage account keys list \
--resource-group ${RESOURCE_GROUP_NAME} \
--account-name ${STORAGE_ACCOUNT_NAME} \
--query [0].value \
--output tsv)
az storage container create \
--account-name ${STORAGE_ACCOUNT_NAME} \
--name mycontainer \
--account-key ${KEY} \
--auth-mode key
A continuación, cargue la aplicación de Java EE en un blob mediante el comando az storage blob upload. En el ejemplo siguiente se carga la aplicación testwebapp.war.
curl -fsL https://aka.ms/wls-aks-testwebapp -o testwebapp.war
az storage blob upload \
--account-name ${STORAGE_ACCOUNT_NAME} \
--container-name mycontainer \
--name testwebapp.war \
--file testwebapp.war \
--account-key ${KEY} \
--auth-mode key
Para cargar varios archivos al mismo tiempo, consulte Creación, descarga y enumeración de blobs con la CLI de Azure.
Implementación de la oferta de WLS en AKS
En esta sección se muestra cómo aprovisionar un clúster de WLS con la instancia de AKS que creó anteriormente. Aprovisionará el clúster dentro de la red virtual personalizada y exportará nodos de clúster mediante Azure Application Gateway como equilibrador de carga. La oferta generará automáticamente un certificado autofirmado para la terminación TLS/SSL de Application Gateway. Para ver el uso avanzado de la terminación TLS/SSL con Application Gateway, consulte Controlador de entrada de Application Gateway.
En primer lugar, comience el proceso de implementación de un servidor WebLogic como se describe en la Guía del usuario de Oracle WebLogic Server en AKS, pero vuelva a esta página cuando llegue a Configurar clúster de AKS, como se muestra en la captura de pantalla siguiente.
Configuración del clúster de AKS
Ahora que tiene un clúster de AKS dentro de la red virtual, seleccione el clúster de AKS para la implementación.
- En ¿Crear un nuevo clúster de AKS?, seleccione No.
- En Seleccionar clúster de AKS, abra el menú desplegable y, a continuación, seleccione el clúster de AKS que creó, denominado
myAKSCluster
en este ejemplo. - En ¿Usar una imagen de WebLogic Server Docker preexistente de Oracle Container Registry?, seleccione Sí.
- En ¿Crear una nueva instancia de Azure Container Registry para almacenar imágenes de aplicación?, seleccione Sí.
- En Nombre de usuario para la autenticación de inicio de sesión único de Oracle, escriba el nombre de usuario de la cuenta de inicio de sesión único de Oracle.
- En Contraseña para la autenticación de inicio de sesión único de Oracle, escriba la contraseña de esa cuenta.
- En Confirmar contraseña, vuelva a escribir el valor del campo anterior.
- En Seleccionar combinación deseada de WebLogic Server, JDK y Operator System o etiqueta de Docker completa, mantenga el valor predeterminado.
- En Implementar el paquete de aplicación, seleccione Sí.
- En Paquete de aplicación (.war,.ear,.jar), seleccione Examinar.
- Seleccione la cuenta de almacenamiento que ha creado. El nombre comienza por
stgwlsaks
en este ejemplo. - Seleccione el contenedor en la página Contenedores. En este ejemplo se usa
mycontainer
. - Compruebe la aplicación que aparece en el contenedor. En este ejemplo se usa testwebapp.war.
- Elija Seleccionar.
- Seleccione la cuenta de almacenamiento que ha creado. El nombre comienza por
- Para el resto de campos, mantenga los valores predeterminados.
Ya ha terminado de configurar el clúster de AKS, la imagen base de WebLogic y la aplicación Java EE.
A continuación, configurará TLS/SSL de un extremo a otro en la consola de administración de WebLogic Server y el clúster en el puerto HTTPS (seguro), con su propio certificado en el panel Configuración de TLS/SSL. Para esta tarea, siga los pasos descritos en la Guía del usuario de Oracle WebLogic Server en AKS, pero vuelva a esta página cuando llegue a Redes, como se muestra en la captura de pantalla siguiente. Usará la siguiente sección para configurar las redes y volver a la guía de usuario de WLS en AKS para completar la implementación.
Configuración del controlador de entrada de Application Gateway
Siga estos pasos para configurar el controlador de entrada de Application Gateway dentro de la red virtual.
- En Conectar a Azure Application Gateway, seleccione Sí.
- En Configurar redes virtuales, en Red virtual, seleccione la red virtual que creó. En este ejemplo se usa
myVNet
enmyResourceGroup
. En Subred, seleccione la subred de Application Gateway. En este ejemplo se usamyAppGatewaySubnet
. - En la opción Seleccionar certificado TLS/SSL deseado, seleccione Generar un certificado de front-end autofirmado.
- En Crear entrada para la consola de administración, seleccione Sí para exponer la consola de administración de WebLogic.
- Mantenga los valores predeterminados para los demás campos.
Ahora puede continuar con los demás aspectos de la implementación de WLS, tal y como se describe en la Guía del usuario de Oracle WebLogic Server en AKS.
Validación la implementación correcta de WLS
En esta sección se muestra cómo validar rápidamente la correcta implementación del clúster de WLS y el controlador de entrada de Application Gateway.
Cuando finalice la implementación, seleccione Salidas. Encontrará la dirección URL externa de la Consola de administración de WebLogic y el clúster. Siga estas instrucciones para acceder a estos recursos:
- Para ver la consola de administración de WebLogic, copie primero el valor de la variable de salida
adminConsoleExternalUrl
. A continuación, pegue el valor en la barra de direcciones del explorador y pulse Entrar para abrir la página de inicio de sesión de la Consola de administración de WebLogic. - Para ver el clúster de WebLogic, copie primero el valor de la variable de salida
clusterExternalUrl
. A continuación, use este valor para construir la dirección URL de la aplicación de ejemplo aplicándola a la plantilla siguiente:${clusterExternalUrl}testwebapp/
. Ahora pegue la dirección URL de la aplicación en la barra de direcciones del explorador y pulse Entrar. Verá que la aplicación de ejemplo muestra la dirección privada y el nombre de host del pod al que se enruta el controlador de entrada de Application Gateway.
Limpieza de recursos
Si no va a seguir usando el clúster de WLS, elimine la red virtual y el clúster de WLS con los pasos siguientes de Azure Portal:
- Visite la página de información general del grupo de recursos
myResourceGroup
y seleccione Eliminar grupo de recursos. - Visite la página de información general del grupo de recursos que implementó la oferta de WLS en AKS y, a continuación, seleccione Eliminar grupo de recursos.
Pasos siguientes
Siga explorando las opciones para ejecutar WLS en Azure.