Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält schrittweise Anleitungen für die manuelle Bereitstellung von Open/WebSphere Liberty in Azure.
In diesem Artikel wird insbesondere erläutert, wie Sie die folgenden Aufgaben ausführen:
- Führen Sie Ihre Java-, Java Enterprise Edition (EE),Jakarta EE- oder MicroProfile-Anwendung auf der Open Liberty- oder WebSphere Liberty-Laufzeit aus.
- Erstellen Sie das Docker-Image der Anwendung mit
az acr build
unter Verwendung von Liberty-Container-Images. - Stellen Sie die containerisierte Anwendung mithilfe eines Liberty-Operators auf einem Azure Kubernetes Service (AKS)-Cluster bereit.
Ein Liberty-Operator vereinfacht die Bereitstellung und Verwaltung von Anwendungen, die auf Kubernetes-Clustern ausgeführt werden. Mit dem Open Liberty- oder WebSphere Liberty-Operator können Sie auch komplexere Vorgänge ausführen, wie z. B. das Sammeln von Ablaufverfolgungen und Sicherungskopien.
Eine automatisiertere Lösung, die Ihre Reise zu AKS mit einer Marketplace-Lösung beschleunigt, die im Azure-Portal verfügbar ist, finden Sie unter Bereitstellen einer Java-Anwendung mit Open Liberty/WebSphere Liberty auf einem Azure Kubernetes Service (AKS)-Cluster.
Weitere Informationen zu Open Liberty finden Sie auf der Open Liberty-Projektseite. Weitere Informationen zu IBM WebSphere Liberty finden Sie auf der WebSphere Liberty-Produktseite.
Dieser Artikel soll Ihnen helfen, schnell zur Bereitstellung zu gelangen. Bevor Sie in die Produktion gehen, sollten Sie Tuning Liberty erkunden.
Wenn Sie an Feedback oder daran interessiert sind, eng mit dem Entwicklungsteam, das die WebSphere-Lösungen für Azure entwickelt, an Ihren Migrationsszenarien zu arbeiten, füllen Sie diese kurze Umfrage zur WebSphere-Migration aus und geben Sie Ihre Kontaktinformationen an. Das Team aus Programmmanagern, Architekten und Technikern wird sich umgehend mit Ihnen in Verbindung setzen, um eine enge Zusammenarbeit zu initiieren.
Voraussetzungen
- Ein Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.
- Azure CLI Version 2.71.0+
- Java Standard Edition (SE), Version 17 – z. B. Eclipse Open J9.
- Maven Version 3.5.0+
- Einguss
- Die Rolle
Owner
oder die RollenContributor
undUser Access Administrator
im Azure-Abonnement. Sie können die Aufgabe überprüfen, indem Sie die Schritte in Auflisten von Azure-Rollenzuweisungen mithilfe des Azure-Portals befolgen.
Anmelden bei Azure
Wenn Sie dies noch nicht getan haben, führen Sie die folgenden Schritte aus, um sich bei Ihrem Azure-Abonnement anzumelden:
Öffnen Sie die Azure CLI oder PowerShell, und melden Sie sich dann mit
az login
. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Weitere Anmeldemöglichkeiten finden Sie unter Anmeldung bei Azure mit Azure CLI.Hinweis
Wenn Sie mehrere Azure-Mandanten mit Ihren Anmeldeinformationen verknüpft haben, müssen Sie angeben, bei welchem Mandanten Sie sich anmelden möchten. Sie können einen Mandanten mit der
--tenant
-Option angeben, z. B.az login --tenant contoso.onmicrosoft.com
.Finden Sie die installierte Version und die abhängigen Bibliotheken, die unter Verwendung von
az version
installiert sind.Führen Sie ein Upgrade auf die neueste Version mithilfe von
az upgrade
.
Hinweis
Wenn Sie die Azure CLI verwenden, führen Sie dies aus, wenn Sie aufgefordert werden, eine Azure CLI-Erweiterung zu installieren. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten von Erweiterungen mit der Azure CLI.
Sie können die meisten Azure CLI-Befehle in PowerShell wie in Bash ausführen. Es gibt nur einen Unterschied bei der Verwendung von Variablen. In den folgenden Abschnitten wird bei Bedarf in verschiedenen Registerkarten auf die Unterschiede eingegangen.
Erstellen einer Ressourcengruppe
Eine Azure-Ressourcengruppe ist eine logische Gruppe, in der Azure-Ressourcen bereitgestellt und verwaltet werden.
Erstellen Sie eine Ressourcengruppe mit dem Namen java-liberty-project
, indem Sie az group create
am Speicherort eastus2
verwenden. Diese Ressourcengruppe wird später zum Erstellen der Azure Container Registry-Instanz und des AKS-Clusters verwendet.
export RESOURCE_GROUP_NAME=java-liberty-project
az group create --name $RESOURCE_GROUP_NAME --location eastus2
Erstellen einer Containerregistrierungsinstanz
Verwenden Sie az acr create
, um die Containerregistrierungsinstanz zu erstellen. Im folgenden Beispiel wird eine Containerregistrierungsinstanz mit dem Namen erstellt <your-unique-ACR-name>
. Ersetzen Sie diesen Platzhalter durch einen Wert, der in Azure eindeutig ist.
Hinweis
In diesem Artikel wird der empfohlene kennwortlose Authentifizierungsmechanismus für die Azure-Containerregistrierung verwendet. Es ist immer noch möglich, einen Benutzernamen und ein Passwort mit docker login
zu verwenden, nachdem Sie az acr credential show
verwendet haben, um den Benutzernamen und das Passwort zu erhalten. Die Verwendung eines Benutzernamens und Kennworts ist jedoch weniger sicher als die kennwortlose Authentifizierung.
export REGISTRY_NAME=<your-unique-ACR-name>
az acr create \
--resource-group $RESOURCE_GROUP_NAME \
--name $REGISTRY_NAME \
--sku Basic
Nach kurzer Zeit sollte eine JSON-Ausgabe mit folgenden Zeilen angezeigt werden:
"provisioningState": "Succeeded",
"publicNetworkAccess": "Enabled",
"resourceGroup": "java-liberty-project",
Rufen Sie den Anmeldeservernamen für die Containerregistrierungsinstanz ab. Sie benötigen diesen Wert, wenn Sie das Anwendungsimage später im AKS-Cluster bereitstellen.
export LOGIN_SERVER=$(az acr show \
--name $REGISTRY_NAME \
--query 'loginServer' \
--output tsv)
Erstellen eines AKS-Clusters
Verwenden Sie az aks create
, um einen AKS-Cluster zu erstellen, wie im folgenden Beispiel gezeigt. In diesem Beispiel wird ein AKS-Cluster mit dem Namen myAKSCluster
und einem Knoten erstellt, und die Containerregistrierungsinstanz wird daran angefügt. Der Befehl dauert mehrere Minuten, bis er abgeschlossen ist.
export CLUSTER_NAME=myAKSCluster
az aks create \
--resource-group $RESOURCE_GROUP_NAME \
--name $CLUSTER_NAME \
--node-count 1 \
--node-vm-size Standard_DS2_V2 \
--generate-ssh-keys \
--enable-managed-identity \
--attach-acr $REGISTRY_NAME
Nach Abschluss des Befehls werden JSON-formatierte Informationen zum Cluster zurückgegeben, einschließlich der folgenden Ausgabe:
"nodeResourceGroup": "MC_java-liberty-project_myAKSCluster_eastus2",
"privateFqdn": null,
"provisioningState": "Succeeded",
"resourceGroup": "java-liberty-project",
Herstellen einer Verbindung mit dem AKS-Cluster
Führen Sie die folgenden Schritte aus, um Ihren Kubernetes-Cluster zu verwalten:
Installieren Sie den Kubernetes-Befehlszeilenclient
kubectl
mitaz aks install-cli
mithilfe des folgenden Beispiels:az aks install-cli
Verwenden Sie
az aks get-credentials
, umkubectl
mit Ihrem Kubernetes-Cluster zu verbinden. Mit diesem Befehl werden Anmeldeinformationen heruntergeladen und die Kubernetes CLI so konfiguriert, dass sie verwendet werden, wie im folgenden Beispiel gezeigt:Hinweis
Der Befehl verwendet den Standardspeicherort für die Kubernetes-Konfigurationsdatei( ~/.kube/config). Sie können einen anderen Speicherort für Ihre Kubernetes-Konfigurationsdatei mithilfe von
--file
.az aks get-credentials \ --resource-group $RESOURCE_GROUP_NAME \ --name $CLUSTER_NAME \ --overwrite-existing \ --admin
Überprüfen Sie die Verbindung zu Ihrem Cluster, indem Sie
kubectl get
verwenden, um eine Liste der Clusterknoten auszugeben, wie im folgenden Beispiel gezeigt.kubectl get nodes
In der folgenden Beispielausgabe wird der Knoten gezeigt, der in den vorherigen Schritten erstellt wurde. Stellen Sie sicher, dass der Status des Knotens lautet
Ready
:NAME STATUS ROLES AGE VERSION aks-nodepool1-xxxxxxxx-yyyyyyyyyy Ready <none> 76s v1.29.9
Erstellen einer Azure-SQL-Datenbank
Erstellen Sie eine einzelne Azure SQL-Datenbank für Ihre App mithilfe der folgenden Schritte:
Verwenden Sie die folgenden Befehle, um datenbankbezogene Umgebungsvariablen festzulegen. Ersetzen Sie sie
<your-unique-sql-server-name>
durch einen eindeutigen Namen für Ihren Azure SQL-Datenbank-Server.export SQL_SERVER_NAME=<your-unique-sql-server-name> export DB_NAME=demodb
Verwenden Sie die folgenden Befehle, um eine einzelne Datenbank zu erstellen und den aktuellen angemeldeten Benutzer als Microsoft Entra-Administrator festzulegen. Weitere Informationen finden Sie in der Schnellstartanleitung: Erstellen einer einzelnen Datenbank – Azure SQL-Datenbank.
export ENTRA_ADMIN_NAME=$(az account show \ --query user.name \ --output tsv) az sql server create \ --resource-group $RESOURCE_GROUP_NAME \ --name $SQL_SERVER_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 \ --name $DB_NAME \ --server $SQL_SERVER_NAME \ --edition GeneralPurpose \ --compute-model Serverless \ --family Gen5 \ --capacity 2
Hinweis
Sie erstellen einen Azure SQL-Server mit deaktivierter SQL-Authentifizierung für Sicherheitsaspekte. Nur Microsoft Entra-ID wird verwendet, um sich beim Server zu authentifizieren. Weitere Informationen zum Aktivieren der SQL-Authentifizierung finden Sie unter az sql server create
.
Erstellen einer Dienstverbindung in AKS mit Service Connector
Verwenden Sie die folgenden Befehle, um eine Verbindung zwischen dem AKS-Cluster und der SQL-Datenbank mithilfe der Microsoft Entra Workload ID mit Service Connector zu erstellen. Weitere Informationen finden Sie unter Erstellen einer Dienstverbindung in AKS mit Service Connector.
# 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
Problembehandlung bei Fehlermeldungen
Wenn der az aks connection create sql
Befehl eine Fehlermeldung erzeugt, suchen Sie die Fehlermeldung in der folgenden Liste, und verwenden Sie dann die Anweisungen, um das Problem zu beheben:
Dependency pyodbc can't be installed, please install it manually
Diese Fehlermeldung gibt an, dass das
pyodbc
Paket aufgrund von Berechtigungsproblemen nicht installiert werden kann. Beheben Sie das Problem mithilfe der folgenden Schritte:Suchen Sie den Speicherort von Python, der mit der Azure CLI funktioniert, indem Sie den folgenden Befehl ausführen:
az --version
Die Ausgabe sollte
Python location
enthalten, z.B.Python location '/opt/az/bin/python3'
.Kopieren Sie den
Python location
-Wert.Verwenden Sie den folgenden Befehl, um das
pyodbc
Paket imsudo
Modus zu installieren. Ersetzen Sie<python-location>
durch den Python-Speicherort, den Sie im vorherigen Schritt kopiert haben.sudo <python-location> -m pip install pyodbc
libodbc.so: Shared-Object-Datei kann nicht geöffnet werden: Keine solche Datei oder Verzeichnis
Installieren Sie odbc 17/18 für SQL Server manuell.
Diese Fehler deuten darauf hin, dass der
odbc
Treiber nicht installiert ist. Beheben Sie das Problem mithilfe der folgenden Schritte:Hinweis
Sie sollten die Microsoft Entra Workload-ID verwenden, um sicheren Zugriff auf Ihre Azure SQL-Datenbank ohne SQL-Authentifizierung zu erhalten. Wenn Sie die SQL-Authentifizierung verwenden müssen, ignorieren Sie die Schritte in diesem Abschnitt, und verwenden Sie den Benutzernamen und das Kennwort, um eine Verbindung mit der Azure SQL-Datenbank herzustellen.
Wenn Sie Linux verwenden, öffnen Sie den Microsoft ODBC-Treiber für SQL Server (Linux) installieren. Wenn Sie MacOS verwenden, öffnen Sie " Installieren des Microsoft ODBC-Treibers für SQL Server (macOS)".
Befolgen Sie die Anweisungen zum Installieren des Microsoft ODBC-Treibers (18 oder 17) für SQL Server.
Verwenden Sie erneut
az aks connection create sql
, um die Dienstverbindung zu erstellen, wie im folgenden Beispiel gezeigt: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
Abrufen des von Dienstconnector erstellten Dienstkontos und geheimen Schlüssels
Führen Sie die folgenden Schritte aus, um sich mit Azure SQL-Datenbank zu authentifizieren:
Rufen Sie das dienstkonto und den geheimen Schlüssel ab, der von Service Connector erstellt wurde, indem Sie die Anweisungen im Abschnitt " Aktualisieren Ihres Containers " des Lernprogramms befolgen: Verbinden einer AKS-App mit azure SQL-Datenbank. Verwenden Sie die Option, um eine Bereitstellung direkt mithilfe des bereitgestellten YAML-Beispielcodeausschnitts zu erstellen.
Hinweis
Der geheime Schlüssel, der von Service Connector erstellt wurde, enthält einen
AZURE_SQL_CONNECTIONSTRING
Wert, bei dem es sich um eine kennwortfreie Verbindungszeichenfolge mit der Azure SQL-Datenbank handelt. Weitere Informationen finden Sie im Beispielwert aus dem Abschnitt " Vom Benutzer zugewiesene verwaltete Identität " der Integration von Azure SQL-Datenbank in Service Connector.Kopieren Sie aus den hervorgehobenen Abschnitten in der Kubernetes-Bereitstellungs-YAML die Werte
serviceAccountName
undsecretRef.name
, wie im folgenden Beispiel dargestellt:serviceAccountName: <service-account-name> containers: - name: raw-linux envFrom: - secretRef: name: <secret-name>
Definieren Sie Umgebungsvariablen mithilfe der folgenden Befehle. Achten Sie darauf, die Werte mit
<service-account-name>
und<secret-name>
zu ersetzen, die Sie im vorherigen Schritt kopiert haben.export SERVICE_ACCOUNT_NAME=<service-account-name> export SECRET_NAME=<secret-name>
Diese Werte werden im nächsten Abschnitt verwendet, um die Liberty-Anwendung im AKS-Cluster bereitzustellen.
Installieren des Open Liberty-Operators
In diesem Abschnitt installieren Sie den Open Liberty Operator auf dem AKS-Cluster, um die Liberty-Anwendung zu hosten.
Installieren Sie den Open Liberty-Operator mithilfe der folgenden Befehle:
Hinweis
In diesem Leitfaden werden Sie aufgefordert, den Open Liberty Operator zu installieren. Informationen zur Verwendung des WebSphere Liberty Operators finden Sie unter Installing WebSphere Liberty operator with the Kubernetes CLI.
# Install cert-manager Operator
export CERT_MANAGER_VERSION=v1.11.2
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/${CERT_MANAGER_VERSION}/cert-manager.yaml
# Install the Open Liberty Operator
export OPERATOR_VERSION=1.4.2
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
# Remove the downloaded files
rm -rf overlays base
Konfigurieren und Erstellen des Anwendungsimages
Um Ihre Liberty-Anwendung im AKS-Cluster bereitzustellen und auszuführen, containern Sie Ihre Anwendung als Docker-Image mit Open Liberty Images oder WebSphere Liberty-Containerimages.
Führen Sie die Schritte in diesem Abschnitt aus, um die Beispielanwendung in der Liberty-Laufzeit zu implementieren. In diesen Schritten wird Maven verwendet.
Auschecken der Anwendung
Klonen Sie den Beispielcode für diese Anleitung mithilfe der folgenden Befehle. Das Beispiel befindet sich im Open Liberty/WebSphere Liberty auf Azure Kubernetes Service Samples GitHub-Repository, das einige Beispiele enthält. In diesem Artikel wird das java-app
Beispiel verwendet.
git clone https://github.com/Azure-Samples/open-liberty-on-aks.git
cd open-liberty-on-aks
export BASE_DIR=$PWD
git checkout 20250424
Wenn eine Meldung darüber angezeigt wird, dass der Zustand detached HEAD
lautet, kann diese Nachricht problemlos ignoriert werden. Sie bedeutet nur, dass Sie ein Tag ausgecheckt haben. Durch das Klonen des Repositorys wird die folgende Dateistruktur erstellt:
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
Die Verzeichnisse java, resources und webapp enthalten den Quellcode der Beispielanwendung. Der Code deklariert und verwendet eine Datenquelle mit dem Namen jdbc/JavaEECafeDB
.
Im aks-Verzeichnis wird die Datei openlibertyapplication-passwordless-db.yaml verwendet, um das Anwendungsimage bereitzustellen. Im Docker-Verzeichnis gibt es zwei Dateien, um das Anwendungsimage entweder mit Open Liberty oder WebSphere Liberty zu erstellen.
Im Verzeichnis "liberty/config " wird die server.xml Datei verwendet, um die Datenbankverbindung für den Open Liberty- und WebSphere Liberty-Cluster zu konfigurieren. Sie definiert eine Variable, die zum Herstellen einer azure.sql.connectionstring
Verbindung mit der Azure SQL-Datenbank verwendet wird.
Die datei pom.xml ist die Datei maven project object model (POM), die die Konfigurationsinformationen für das Projekt enthält. Die dateipom-azure-identity.xml deklariert die azure-identity
Abhängigkeit, die zum Authentifizieren bei Azure-Diensten mithilfe der Microsoft Entra-ID verwendet wird.
Hinweis
In diesem Beispiel wird die azure-identity
-Bibliothek verwendet, um die Azure SQL-Datenbank mittels Microsoft Entra-Authentifizierung zu verifizieren, was aus Sicherheitsgründen empfohlen wird. Weitere Informationen zur Verwendung der SQL-Authentifizierung in Ihrer Liberty-Anwendung finden Sie unter Relationale Datenbankverbindungen mit Java Database Connectivity (JDBC).
Erstellen des Projekts
Nachdem Sie nun die erforderlichen Eigenschaften gesammelt haben, erstellen Sie die Anwendung mithilfe der folgenden Befehle. Die POM-Datei für das Projekt liest viele Variablen aus der Umgebung. Im Rahmen des Maven-Builds werden diese Variablen verwendet, um Werte in den YAML-Dateien in src/main/aks aufzufüllen. Sie können etwas Ähnliches für Ihre Anwendung außerhalb von Maven tun, wenn Sie möchten.
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
Erstellen des Images für die AKS-Bereitstellung
Verwenden Sie az acr build
, um das Bild zu erstellen, wie im folgenden Beispiel gezeigt:
cd $BASE_DIR/java-app/target
az acr build \
--registry ${REGISTRY_NAME} \
--image javaee-cafe:v1 \
.
Mit az acr build
dem Befehl werden die in der Dockerfile-Datei angegebenen Artefakte in die Containerregistrierungsinstanz hochgeladen, das Image erstellt und in der Containerregistrierungsinstanz gespeichert.
Stellen Sie die Anwendung im AKS-Cluster bereit.
Verwenden Sie die folgenden Schritte, um die Liberty-Anwendung im AKS-Cluster bereitzustellen:
Wenden Sie die Bereitstellungsdatei mithilfe der folgenden Befehle an:
cd $BASE_DIR/java-app/target # Apply deployment file kubectl apply -f openlibertyapplication-passwordless-db.yaml
Ermitteln Sie, ob die
OpenLibertyApplication
Instanz mithilfe des folgenden Befehls erstellt wird:kubectl get openlibertyapplication javaee-cafe-cluster --watch
Die folgende Ausgabe ist typisch. Verwenden Sie STRG+C, um zu beenden.
NAME IMAGE EXPOSED RECONCILED RESOURCESREADY READY WARNING AGE javaee-cafe-cluster <registry-name>.azurecr.io/javaee-cafe:v1 True True True 57s
Ermitteln Sie, ob die vom Operator erstellte Bereitstellung mit dem folgenden Befehl bereit ist:
kubectl get deployment javaee-cafe-cluster --watch
Das folgende Ergebnis ist typisch:
NAME READY UP-TO-DATE AVAILABLE AGE javaee-cafe-cluster 0/3 3 0 20s
Warten Sie, bis Ihnen
3/3
unter der SpalteREADY
und3
unter der SpalteAVAILABLE
angezeigt werden, verwenden Sie dann Strg+C, um den Überwachungsprozesskubectl
zu beenden.
Testen der Anwendung
Wenn die Anwendung ausgeführt wird, macht ein Kubernetes-Lastenausgleichsdienst das Anwendungs-Front-End im Internet verfügbar. Dieser Vorgang kann einige Zeit in Anspruch nehmen.
Verwenden Sie kubectl get service
, um die externe IP-Adresse des Dienstes abzurufen, wenn er verfügbar ist, wie im folgenden Beispiel gezeigt:
export APP_URL=http://$(kubectl get service javaee-cafe-cluster -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
echo $APP_URL
Hinweis
Wenn keine gültige URL aus der Ausgabe angezeigt wird, warten Sie eine Weile, und führen Sie den Befehl erneut aus.
Öffnen Sie die URL in einem Webbrowser, und überprüfen Sie die Startseite der Anwendung. Wenn die Seite nicht ordnungsgemäß geladen wird, aktualisieren Sie die Seite später, nachdem die App gestartet wurde. Der Podname Ihrer Anwendungsreplikate sollte oben links auf der Seite angezeigt werden. Warten Sie ein paar Minuten, und aktualisieren Sie die Seite. Es wird aufgrund des vom AKS-Cluster bereitgestellten Lastenausgleichs ein anderer Podname angezeigt.
Hinweis
Derzeit verwendet die Anwendung kein HTTPS. Es wird empfohlen, Transport Layer Security (TLS) mit Ihren eigenen Zertifikaten zu aktivieren. Weitere Informationen finden Sie unter Verwenden von TLS mit einem Eingangs-Controller in Azure Kubernetes Service (AKS).
Bereinigen von Ressourcen
Zum Vermeiden von Azure-Gebühren sollten Sie nicht benötigte Ressourcen bereinigen. Wenn der Cluster nicht mehr benötigt wird, verwenden Sie az group delete
zum Entfernen der Ressourcengruppe, des Containerdienstes, der Containerregistrierung, der Datenbank und aller zugehörigen Ressourcen.
az group delete --name $RESOURCE_GROUP_NAME --yes --no-wait
Nächste Schritte
Weitere Informationen finden Sie in den folgenden Verweisen, die in diesem Handbuch verwendet werden:
- Was ist Azure Kubernetes Service (AKS)?
- Tutorial: Verbinden einer AKS-App mit Azure SQL-Datenbank
- Integrieren von Azure SQL-Datenbank in Service Connector
- Herstellen einer Verbindung mit der Microsoft Entra-Authentifizierung
- Offene Freiheit
- Open Liberty-Operator
- Übersicht über die Open Liberty Server-Konfiguration
- Liberty Maven-Plug-In
- Open Liberty Images
- WebSphere Liberty Container-Images
Informationen zum Integrieren von Azure Cache für Redis in eine Java-App finden Sie in der Schnellstartanleitung: Verwenden von Azure Cache für Redis in Java mit Redisson Redis-Client.
Informationen zu Optionen zum Ausführen von WebSphere-Produkten auf Azure finden Sie unter Welche Lösungen gibt es zum Ausführen der WebSphere-Produktfamilie auf Azure?