Implementación manual de una aplicación Java con Open Liberty o WebSphere Liberty en un clúster de Azure Kubernetes Service (AKS)
Este artículo proporciona una guía manual paso a paso para ejecutar Open/WebSphere Liberty en Azure.
En concreto, en este artículo se explica cómo realizar las siguientes tareas:
- Ejecutar una aplicación Java, Java EE, Yakarta EE o Microprofile en el runtime en Open Liberty o WebSphere Liberty.
- Compile la imagen de Docker de la aplicación con
az acr build
imágenes de contenedor de Liberty. - Implementar la aplicación contenedorizada en un clúster de Azure Kubernetes Service (AKS) mediante el operador de Liberty.
El operador de Liberty simplifica la implementación y administración de las aplicaciones que se ejecutan en clústeres de Kubernetes. Con el operador de Open Liberty o WebSphere Liberty, también puede realizar operaciones más avanzadas, como recopilar seguimientos y volcados.
Para obtener una solución más automatizada que acelere el recorrido a AKS, consulte Implementación de una aplicación Java con Open Liberty/WebSphere Liberty en un clúster de Azure Kubernetes Service (AKS).
Para más información sobre Open Liberty, consulte la página del proyecto Open Liberty. Para más información sobre IBM WebSphere Liberty, consulte la página del producto de WebSphere Liberty.
Este artículo está diseñado para ayudarle a llegar rápidamente a la implementación. Antes de ir a producción, debe explorar Tuning Liberty.
Si está interesado en proporcionar comentarios o trabajar estrechamente en sus escenarios de migración con el equipo de ingeniería que desarrolla WebSphere en soluciones de Azure, rellene esta breve encuesta sobre la migración de WebSphere e incluya la información de contacto. El equipo de administradores de programas, arquitectos e ingenieros se pondrá en contacto rápidamente con usted para iniciar una estrecha colaboración.
Requisitos previos
- Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Prepare una máquina local con Windows, macOS o Linux instalado.
- Instale la CLI de Azure 2.61.0 o posterior para ejecutar 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.
- Instale una implementación de Java Standard Edition (SE), versión 17 (por ejemplo, Eclipse Open J9).
- Instale Maven versión 3.5.0 o posterior.
- Asegúrese de que Git está instalado.
- Asegúrese de que se le haya asignado el rol
Owner
o los rolesContributor
yUser Access Administrator
en la suscripción. Para comprobar la asignación, siga los pasos descritos en Enumeración de asignaciones de roles de Azure mediante Azure Portal.
Inicio de sesión en Azure
Si no lo ha hecho aún, inicie sesión en la suscripción de Azure con el comando az login y siga las instrucciones de la pantalla.
az login
Nota:
Puede ejecutar la mayoría de los comandos de la CLI de Azure en PowerShell igual que en Bash. La diferencia solo existe cuando se usan variables. En las secciones siguientes, la diferencia se aborda en diferentes pestañas cuando sea necesario.
Si hay varios inquilinos de Azure asociados a sus credenciales de Azure, debe indicar en qué inquilino desea iniciar sesión. Puede hacerlo con la opción --tenant
. Por ejemplo, az login --tenant contoso.onmicrosoft.com
.
Crear un grupo de recursos
Un grupo de recursos de Azure es un grupo lógico en el que se implementan y administran recursos de Azure.
Cree un grupo de recursos llamado java-liberty-project
mediante el comando az group create en la eastus2
ubicación. Este grupo de recursos se usa más adelante para crear la instancia de Azure Container Registry y el clúster de AKS.
export RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus2
Creación de una instancia de Container Registry
Use el comando az acr create para crear una instancia de Container Registry. En el ejemplo siguiente se crea una instancia de Container Registry denominada youruniqueacrname
. Asegúrese de que youruniqueacrname
es único en Azure.
Nota:
En este artículo se usa el mecanismo de autenticación sin contraseña recomendado para Container Registry. Todavía es posible usar el nombre de usuario y la contraseña con docker login
después de usar az acr credential show
para obtener el nombre de usuario y la contraseña. El uso de nombre de usuario y contraseña es menos seguro que la autenticación sin contraseña.
export REGISTRY_NAME=youruniqueacrname
az acr create \
--resource-group $RESOURCE_GROUP_NAME \
--name $REGISTRY_NAME \
--sku Basic
Después de un corto tiempo, debería ver una salida JSON que contiene las siguientes líneas:
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "java-liberty-project",
A continuación, recupere el servidor de inicio de sesión de la instancia de Container Registry. Necesitará este valor al implementar la imagen de aplicación en el clúster de AKS más adelante.
export LOGIN_SERVER=$(az acr show \
--name $REGISTRY_NAME \
--query 'loginServer' \
--output tsv)
Creación de un clúster de AKS
Use el comando az aks create para crear un clúster de AKS. En el ejemplo siguiente se crea un clúster denominado myAKSCluster
con un nodo. El comando tarda varios minutos en completarse.
export CLUSTER_NAME=myAKSCluster
az aks create \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--node-count 1 \
--generate-ssh-keys \
--enable-managed-identity
Transcurridos unos minutos, el comando se completa y devuelve información en formato JSON sobre el clúster, incluida la siguiente salida:
"nodeResourceGroup": "MC_java-liberty-project_myAKSCluster_eastus2",
"privateFqdn": null,
"provisioningState": "Succeeded",
"resourceGroup": "java-liberty-project",
Asociación de la instancia de Container Registry al clúster de AKS
Ejecute el comando az aks update para adjuntar la instancia de Container Registry al clúster de AKS para que el clúster de AKS se autentique para extraer imágenes de la instancia de Container Registry, como se muestra en el ejemplo siguiente:
az aks update \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--attach-acr $REGISTRY_NAME
Conexión al clúster de AKS
Para administrar un clúster de Kubernetes, usará kubectl, el cliente de línea de comandos de Kubernetes. Para instalar kubectl
localmente, use el comando az aks install-cli, como se muestra en el ejemplo siguiente:
az aks install-cli
Para configurar kubectl
para conectarse a su clúster de Kubernetes, use el comando az aks get-credentials. Con este comando se descargan las credenciales y se configura la CLI de Kubernetes para usarlas.
az aks get-credentials \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--overwrite-existing \
--admin
Nota:
El comando anterior usa la ubicación predeterminada para el archivo de configuración de Kubernetes, ~/.kube/config
. Puede especificar otra ubicación para el archivo de configuración de Kubernetes con la opción --file
.
Para comprobar la conexión al clúster, use el comando kubectl get para devolver una lista de los nodos del clúster.
kubectl get nodes
La salida del ejemplo siguiente muestra el nodo único creado en los pasos anteriores. Asegúrese de que el estado del nodo es Listo:
NAME STATUS ROLES AGE VERSION
aks-nodepool1-xxxxxxxx-yyyyyyyyyy Ready <none> 76s v1.29.9
Crear una instancia de Azure SQL Database
En esta sección, creará una base de datos única de Azure SQL Database para usarla con la aplicación.
En primer lugar, establezca variables de entorno relacionadas con la base de datos. Reemplace <your-unique-sql-server-name>
por un nombre único para el servidor de Azure SQL Database.
export SQL_SERVER_NAME=<your-unique-sql-server-name>
export DB_NAME=demodb
Ejecute el siguiente comando en el terminal para crear una base de datos única en Azure SQL Database y establecer el usuario que ha iniciado sesión actual como administrador de Microsoft Entra. Para más información, consulte Inicio rápido: Creación de una base de datos única: Azure SQL Database.
export ENTRA_ADMIN_NAME=$(az ad signed-in-user show --query userPrincipalName --output tsv)
az sql server create \
--name $SQL_SERVER_NAME \
--resource-group $RESOURCE_GROUP_NAME \
--enable-ad-only-auth \
--external-admin-principal-type User \
--external-admin-name $ENTRA_ADMIN_NAME \
--external-admin-sid $(az ad signed-in-user show --query id --output tsv)
az sql db create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name $DB_NAME \
--edition GeneralPurpose \
--compute-model Serverless \
--family Gen5 \
--capacity 2
A continuación, agregue la dirección IP local a las reglas de firewall del servidor de Azure SQL Database para permitir que la máquina local se conecte a la base de datos para realizar pruebas locales más adelante.
export AZ_LOCAL_IP_ADDRESS=$(curl -s https://whatismyip.akamai.com)
az sql server firewall-rule create \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP \
--start-ip-address $AZ_LOCAL_IP_ADDRESS \
--end-ip-address $AZ_LOCAL_IP_ADDRESS
Nota:
Cree un servidor de Azure SQL server con la autenticación de SQL deshabilitada para conocer las consideraciones de seguridad. Solo microsoft Entra ID se usa para autenticarse en el servidor. Si necesita habilitar la autenticación de SQL, consulte az sql server create para obtener más información.
Creación de una conexión de servicio en AKS con Service Connector
Ejecute los comandos siguientes para crear una conexión entre el clúster de AKS y la base de datos SQL mediante Id. de carga de trabajo de Microsoft Entra con Service Connector. Para más información, consulte Creación de una conexión de servicio en AKS con Service Connector (versión preliminar).
# Register the Service Connector and Kubernetes Configuration resource providers
az provider register --namespace Microsoft.ServiceLinker --wait
az provider register --namespace Microsoft.KubernetesConfiguration --wait
# Install the Service Connector passwordless extension
az extension add --name serviceconnector-passwordless --upgrade --allow-preview true
# Retrieve the AKS cluster and Azure SQL Server resource IDs
export AKS_CLUSTER_RESOURCE_ID=$(az aks show \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--query id \
--output tsv)
export AZURE_SQL_SERVER_RESOURCE_ID=$(az sql server show \
--resource-group $RESOURCE_GROUP_NAME \
--name $SQL_SERVER_NAME \
--query id \
--output tsv)
# Create a user-assigned managed identity used for workload identity
export USER_ASSIGNED_IDENTITY_NAME=workload-identity-uami
az identity create \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME}
# Retrieve the user-assigned managed identity resource ID
export UAMI_RESOURCE_ID=$(az identity show \
--resource-group ${RESOURCE_GROUP_NAME} \
--name ${USER_ASSIGNED_IDENTITY_NAME} \
--query id \
--output tsv)
# Create a service connection between your AKS cluster and your SQL database using Microsoft Entra Workload ID
az aks connection create sql \
--connection akssqlconn \
--client-type java \
--source-id $AKS_CLUSTER_RESOURCE_ID \
--target-id $AZURE_SQL_SERVER_RESOURCE_ID/databases/$DB_NAME \
--workload-identity $UAMI_RESOURCE_ID
Nota:
Se recomienda usar Id. de carga de trabajo de Microsoft Entra para el acceso seguro a azure SQL Database sin usar la autenticación de SQL. Si necesita usar la autenticación de SQL, omita los pasos anteriores de esta sección y use el nombre de usuario y la contraseña para conectarse a Azure SQL Database.
Obtención de la cuenta de servcie y el secreto creados por Service Connector
Para autenticarse en Azure SQL Database, debe obtener la cuenta de servicio y el secreto creados por Service Connector. Siga la sección Actualización del contenedor. Tome la opción Crear directamente una implementación mediante el fragmento de código de ejemplo de YAML proporcionado y ejecute los pasos siguientes:
En las secciones resaltadas del ejemplo de YAML de implementación de Kubernetes, copie los
serviceAccountName
valores ysecretRef.name
, como se muestra en el ejemplo siguiente:serviceAccountName: <service-account-name> containers: - name: raw-linux envFrom: - secretRef: name: <secret-name>
Reemplace
<service-account-name>
y<secret-name>
por los valores que copió en el paso anterior para definir las siguientes variables de entorno:export SERVICE_ACCOUNT_NAME=<service-account-name> export SECRET_NAME=<secret-name>
Estos valores se usan en la sección siguiente para implementar la aplicación Liberty en el clúster de AKS.
Nota:
El secreto creado por Service Connector contiene , AZURE_SQL_CONNECTIONSTRING
que es una contraseña gratuita cadena de conexión a Azure SQL Database. Consulte el valor de ejemplo de autenticación de identidad administrada asignada por el usuario para obtener más información.
Instalación de Operator de Open Liberty
En esta sección, instalará el operador open Liberty en el clúster de AKS para hospedar la aplicación Liberty.
Instale el operador de Open Liberty ejecutando los siguientes comandos:
# Install cert-manager Operator
CERT_MANAGER_VERSION=v1.11.2
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.yaml
# Install Open Liberty Operator
export OPERATOR_VERSION=1.4.0
mkdir -p overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/olo-all-namespaces.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/cluster-roles.yaml -q -P ./overlays/watch-all-namespaces
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/overlays/watch-all-namespaces/kustomization.yaml -q -P ./overlays/watch-all-namespaces
mkdir base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/kustomization.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-crd.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-operator.yaml -q -P ./base
wget https://raw.githubusercontent.com/OpenLiberty/open-liberty-operator/main/deploy/releases/${OPERATOR_VERSION}/kustomize/base/open-liberty-roles.yaml -q -P ./base
kubectl create namespace open-liberty
kubectl apply --server-side -k overlays/watch-all-namespaces
Configuración y compilación de la imagen de aplicación
Para implementar y ejecutar la aplicación de Liberty en un clúster de AKS, incluya en un contenedor la aplicación como una imagen de Docker mediante las imágenes de contenedor de Open Liberty o las imágenes de contenedor de WebSphere Liberty.
Siga los pasos que aparecen en esta sección para implementar la aplicación de ejemplo en el entorno de ejecución de Liberty. Esos pasos usan Maven.
Extracción de la aplicación
Clone el código de ejemplo de esta guía. El ejemplo se encuentra en GitHub. Hay algunos ejemplos en el repositorio. En este artículo se usa el java-app
ejemplo. A continuación se muestran los archivos importantes.
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20241029
Si se ve un mensaje sobre estar en estado "HEAD desasociado", es seguro ignorar este mensaje. Solo significa que ha extraído una etiqueta del repositorio.
java-app
├─ src/main/
│ ├─ aks/
│ │ ├─ openlibertyapplication-passwordless-db.yaml
│ ├─ docker/
│ │ ├─ Dockerfile
│ │ ├─ Dockerfile-wlp
│ ├─ liberty/config/
│ │ ├─ server.xml
│ ├─ java/
│ ├─ resources/
│ ├─ webapp/
├─ pom.xml
├─ pom-azure-identity.xml
Los directorios java, resources y webapp contienen el código fuente de la aplicación de ejemplo. El código declara y usa un origen de datos denominado jdbc/JavaEECafeDB
.
En el directorio aks , el archivo openlibertyapplication-passwordless-db.yaml se usa para implementar la imagen de aplicación. En el directorio docker, hay dos archivos para crear la imagen de aplicación con Open Liberty o WebSphere Liberty.
En el directorio liberty/config, server.xml se usa para configurar la conexión a la base de datos para el clúster de Open Liberty y WebSphere Liberty. Define una variable azure.sql.connectionstring
que se usa para conectarse a Azure SQL Database.
El archivo pom.xml es el archivo del modelo de objetos de proyecto (POM) de Maven que contiene la información de configuración del proyecto. El archivo pom-azure-identity.xml declara azure-identity
dependencia, que se usa para autenticarse en los servicios de Azure mediante el identificador de Microsoft Entra.
Nota:
En este ejemplo se usa azure-identity
la biblioteca para autenticarse en Azure SQL Database mediante la autenticación de Microsoft Entra, que se recomienda para tener en cuenta las consideraciones de seguridad. Si necesita usar la autenticación de SQL en la aplicación Liberty, consulte Relational conexione de base de datos with JDBC (Conexione de base de datos relacional con JDBC) para obtener más información.
Compilación del proyecto
Ahora que ha recopilado las propiedades necesarias, puede compilar la aplicación. El archivo POM del proyecto lee muchas variables del entorno. Como parte de la compilación de Maven, estas variables se usan para rellenar los valores de los archivos YAML ubicados en src/main/aks. Si lo prefiere, puede hacer algo similar para la aplicación fuera de Maven.
cd $BASE_DIR/java-app
# The following variables are used for deployment file generation into target/
export LOGIN_SERVER=${LOGIN_SERVER}
export SC_SERVICE_ACCOUNT_NAME=${SERVICE_ACCOUNT_NAME}
export SC_SECRET_NAME=${SECRET_NAME}
mvn clean install
mvn dependency:copy-dependencies -f pom-azure-identity.xml -DoutputDirectory=target/liberty/wlp/usr/shared/resources
Prueba local del proyecto
Ahora puede ejecutar y probar el proyecto localmente antes de implementarlo en Azure. Para mayor comodidad, use liberty-maven-plugin
. Para más información sobre liberty-maven-plugin
, consulte Creación de una aplicación web con Maven. Para la aplicación, puede hacer algo similar mediante cualquier otro mecanismo, como el IDE local. También puede considerar el uso de la opción liberty:devc
destinada al desarrollo con contenedores. Puede obtener más información sobre liberty:devc
en la documentación de Liberty.
Nota:
Si seleccionó una implementación de base de datos "sin servidor", compruebe que la base de datos SQL no ha entrado en modo de pausa. Una manera de hacerlo es iniciar sesión en el editor de consultas de la base de datos como se describe en Inicio rápido: Uso del editor de consultas de Azure Portal (versión preliminar) para consultar Azure SQL Database.
Inicie la aplicación mediante
liberty:run
.cd $BASE_DIR/java-app # The value of environment variable AZURE_SQL_CONNECTIONSTRING is read by configuration variable `azure.sql.connectionstring` in server.xml export AZURE_SQL_CONNECTIONSTRING="jdbc:sqlserver://$SQL_SERVER_NAME.database.windows.net:1433;databaseName=$DB_NAME;authentication=ActiveDirectoryDefault" mvn liberty:run
Compruebe que la aplicación funciona según lo previsto. Si el resultado de la operación es satisfactorio, debería ver un mensaje similar a
[INFO] [AUDIT] CWWKZ0003I: The application javaee-cafe updated in 1.930 seconds.
en la salida del comando. Vaya ahttp://localhost:9080/
en el explorador para comprobar que la aplicación es accesible y que todas las funciones hacen su trabajo.Presione Ctrl+C para detener. Seleccione
Y
si está aksed para finalizar el trabajo por lotes.
Cuando haya terminado, elimine la regla de firewall que permite que la dirección IP local acceda a Azure SQL Database mediante el comando siguiente:
az sql server firewall-rule delete \
--resource-group $RESOURCE_GROUP_NAME \
--server $SQL_SERVER_NAME \
--name AllowLocalIP
Compilación de la imagen para la implementación de AKS
Ahora puede ejecutar el comando az acr build para compilar la imagen, como se muestra en el ejemplo siguiente:
cd $BASE_DIR/java-app/target
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
El az acr build
comando carga los artefactos especificados en el Dockerfile en la instancia de Container Registry, compila la imagen y la almacena en la instancia de Container Registry.
Implemente la aplicación en el clúster de AKS.
Siga estos pasos para implementar la aplicación de Liberty en el clúster de AKS.
Ejecute los comandos siguientes para aplicar el archivo de implementación:
cd $BASE_DIR/java-app/target # Apply deployment file kubectl apply -f openlibertyapplication-passwordless-db.yaml
Determine si la instancia de
OpenLibertyApplication
se crea mediante la ejecución del comando siguiente:kubectl get openlibertyapplication javaee-cafe-cluster
Debería ver una salida similar al ejemplo siguiente:
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY WARNING AGE javaee-cafe-cluster jiangma102924acr.azurecr.io/javaee-cafe:v1 True True True 57s
Para determinar si la implementación creada por el operador está lista, ejecute el siguiente comando:
kubectl get deployment javaee-cafe-cluster --watch
Debería ver una salida similar al ejemplo siguiente:
NAME READY UP-TO-DATE AVAILABLE AGE javaee-cafe-cluster 0/3 3 0 20s
Espere hasta ver
3/3
en la columnaREADY
y3
en la columnaAVAILABLE
y, luego, use Ctrl+C para detener el proceso de inspección dekubectl
.
Prueba de la aplicación
Cuando se ejecuta la aplicación, un servicio de equilibrador de carga de Kubernetes expone el front-end de la aplicación a Internet. Este proceso puede tardar en completarse.
Para supervisar el progreso, use el comando kubectl get service con el argumento --watch
, como se muestra en el ejemplo siguiente:
kubectl get service javaee-cafe-cluster --watch
Debería ver una salida similar al ejemplo siguiente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
javaee-cafe-cluster LoadBalancer 10.0.251.169 52.152.189.57 80:31732/TCP 68s
Cuando la dirección EXTERNAL-IP cambie de pendiente a una dirección IP pública real, use Ctrl+C para detener el proceso de inspección de kubectl
.
Si se pasa algún tiempo entre ejecutar los pasos de esta sección y el anterior, asegúrese de que la base de datos está activa, si es necesario. Consulte la nota anterior sobre la pausa de la base de datos.
Abra un explorador web en la dirección IP externa del servicio (52.152.189.57
en el ejemplo anterior) para ver la página principal de la aplicación. Si la página no se carga correctamente, esto se debe a que la aplicación se está iniciando. Puede esperar un tiempo y actualizar la página más adelante. Debería ver el nombre de pod de las réplicas de la aplicación en la parte superior izquierda de la página. Espere unos minutos y actualice la página para ver otro nombre de pod debido al equilibrio de carga proporcionado por el clúster de AKS.
Nota:
Actualmente, la aplicación no usa HTTPS. Se recomienda habilitar TLS con sus propios certificados. Para obtener más información, consulte Uso de TLS con un controlador de entrada en Azure Kubernetes Service (AKS).
Limpieza de recursos
Para evitar los cargos de Azure, se recomienda limpiar los recursos que no sean necesarios. Cuando ya no sea necesario el clúster, use el comando az group delete para quitar el grupo de recursos, el servicio de contenedor, el registro de contenedor, la base de datos y todos los recursos relacionados.
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Pasos siguientes
Puede obtener más información en las referencias que se usan en esta guía:
- Azure Kubernetes Service
- Tutorial: Conexión de una aplicación de AKS a Azure SQL Database (versión preliminar)
- Integración de Azure SQL Database con Service Connector
- Conexión mediante la autenticación de Microsoft Entra
- Open Liberty
- Operador de Open Liberty
- Configuración del servidor Open Liberty
- Complemento de Maven para Liberty
- Imágenes de contenedor de Open Liberty
- Imágenes de contenedor de WebSphere Liberty
Para incorporar Azure Cache for Redis en una aplicación de Java, consulte Uso de Azure Cache for Redis en Java con el cliente Redis de Redisson.
Si desea explorar las opciones para ejecutar los productos WebSphere en Azure, consulte ¿Cuáles son las soluciones para ejecutar la familia de productos WebSphere en Azure?